إطلاق مشروع جانبي لا يعني التخلي عن أفضل ممارسات إدارة الإصدارات. تعرف على الترقيم الدلالي (SemVer) لتنظيم كودك، وبناء الثقة مع المستخدمين، وأتمتة عمليات الإطلاق.

مقدمة: فوضى التسميات العشوائية في المشاريع الجانبية

تبدأ معظم المشاريع الجانبية بفكرة بسيطة وحماس كبير، حيث يركز المطور بالكامل على كتابة الكود وإطلاق الميزات بسرعة. ولكن مع مرور الوقت وتراكم التحديثات، يجد المطور نفسه غارقاً في فوضى تسمية ملفات الإصدارات وتتبع التغييرات. تظهر هنا أسماء غريبة للملفات والنسخ مثل 'النسخة النهائية' أو 'تعديل أخير جداً'، مما يجعل تتبع الأخطاء كابوساً حقيقياً.

هذه الفوضى لا تؤثر فقط على تنظيمك الشخصي للمشروع، بل تؤثر أيضاً على أي مستخدم أو مطور آخر يحاول استخدام كودك أو الاعتماد عليه. لحسن الحظ، هناك نظام عالمي متفق عليه يحل هذه المشكلة بذكاء وبساطة، وهو نظام الترقيم الدلالي (Semantic Versioning). تبني هذا النظام يمنح مشروعك الجانبي طابعاً احترافياً منذ اليوم الأول ويحميك من الصداع المستقبلي.

ما هو الترقيم الدلالي (SemVer) وكيف يعمل؟

يعتمد الترقيم الدلالي على صيغة رقمية بسيطة تتكون من ثلاثة أرقام رئيسية تفصل بينها نقاط، وتكتب على النحو التالي: MAJOR.MINOR.PATCH (رئيسي.فرعي.إصلاحي). يحمل كل رقم من هذه الأرقام دلالة محددة تخبر المستخدمين بطبيعة التغييرات التي طرأت على الكود دون الحاجة لقراءة تفاصيل التغييرات بالكامل.

الرقم الأول (MAJOR) يشير إلى التغييرات الجذرية غير المتوافقة مع الإصدارات السابقة، مما يعني أن المستخدم قد يحتاج لتعديل كوده ليعمل المشروع بشكل صحيح. الرقم الثاني (MINOR) يعبر عن إضافة ميزات جديدة ومفيدة ولكنها متوافقة تماماً مع ما قبلها. أما الرقم الثالث (PATCH) فهو مخصص لإصلاح الأخطاء البرمجية الطفيفة وتحسين الأداء دون تغيير في طريقة عمل البرمجية.

لماذا تحتاج المشاريع الجانبية إلى هذا النظام؟

قد يعتقد البعض أن الترقيم الدلالي مخصص فقط للشركات الكبرى أو المشاريع مفتوحة المصدر الضخمة، لكن هذا الاعتقاد خاطئ تماماً. حتى لو كنت المطور الوحيد لمشروعك الجانبي، فإن الالتزام بنظام SemVer يساعدك على التفكير بوعي أكبر في تصميم واجهات البرمجة (APIs) وفصل الميزات.

بالإضافة إلى ذلك، عندما تقرر العودة إلى مشروعك الجانبي بعد فترة انقطاع طويلة، ستعرف بدقة من خلال رقم الإصدار مدى استقرار الكود وحجم التغييرات التي قمت بها. كما يسهل هذا النظام عملية دمج مشروعك مع أدوات التطوير الأخرى وإدارة المكتبات الخارجية التي تعتمد عليها برمجيتك بسلاسة.

قواعد عملية لزيادة أرقام الإصدارات بثقة

لتطبيق الترقيم الدلالي بنجاح، يجب أن تضع قواعد واضحة لعملية الترقية وتلتزم بها بدقة في كل مرة تدفع فيها كوداً جديداً. إذا قمت بإصلاح ثغرة أمنية أو تعديل خطأ إملائي في واجهة المستخدم، قم بزيادة الرقم الثالث (PATCH) فقط ليصبح إصدارك مثلاً 1.0.1.

أما إذا قمت بإضافة صفحة جديدة أو ميزة بحث متطورة لا تؤثر على عمل الميزات القديمة، يحين وقت ترقية الرقم الثاني (MINOR) ليصبح الإصدار 1.1.0. التغييرات الجذرية التي تتطلب إعادة تهيئة أو تحذف دوال قديمة تستدعي ترقية الرقم الأول (MAJOR) فوراً ليصبح الإصدار 2.0.0، لتنبيه الجميع بوجود تغييرات هيكلية.

أتمتة الترقيم الدلالي في سير عملك

القيام بعملية الترقيم يدوياً قد يكون مملاً وعرضة للأخطاء البشرية، وهنا يأتي دور الأتمتة لتوفير الوقت والجهد. يمكنك استخدام أسلوب 'الالتزامات التقليدية' (Conventional Commits) في نظام Git، حيث تكتب رسائل الالتزام بصيغة معينة تفهمها الأدوات التلقائية.

باستخدام أدوات مثل Semantic Release مدمجة مع GitHub Actions، يمكنك جعل النظام يقرأ رسائل الالتزام ويقوم تلقائياً بتحديد رقم الإصدار الجديد، وتحديث ملف التغييرات (Changelog)، ونشر النسخة الجديدة دون أي تدخل يدوي منك. هذه الخطوة تنقل مشروعك الجانبي إلى مستوى احترافي يضاهي كبرى المشاريع التقنية.

جدول مقارنة

المكون

متى يتم زيادته

مثال عملي على التغيير

التوافقية مع الإصدارات السابقة

رئيسي (MAJOR)

عند إجراء تغييرات جذرية غير متوافقة

إعادة بناء قاعدة البيانات أو حذف نقطة نهاية عامة

غير متوافق مع ما قبله

فرعي (MINOR)

عند إضافة ميزات جديدة متوافقة

إضافة حقل اختياري جديد في نموذج التسجيل

متوافق تماماً مع ما قبله

إصلاحي (PATCH)

عند إصلاح أخطاء برمجية طفيفة

تصحيح خطأ إملائي أو حل مشكلة تسريب الذاكرة

متوافق تماماً مع ما قبله

أسئلة شائعة

هل يجب أن أبدأ مشروعي بالإصدار 0.1.0 أم 1.0.0؟

من الشائع جداً البدء بالإصدار 0.1.0 خلال مرحلة التطوير الأولي والتجريب المستمر. بمجرد أن يصبح مشروعك مستقراً وجاهزاً للاستخدام الفعلي من قبل الآخرين، يفضل ترقيته مباشرة إلى الإصدار 1.0.0 للإشارة إلى نضج المنتج واستقراره.

ماذا لو أطلقت بالخطأ تغييراً جذرياً في إصدار فرعي (Minor)؟

لا تقم أبداً بتعديل الإصدار الذي تم نشره بالفعل لأن ذلك يسبب ارتباكاً كبيراً. الحل الصحيح هو إطلاق إصدار رئيسي (Major) جديد فوراً يحتوي على التغيير، أو إطلاق إصدار فرعي جديد يتراجع عن التغيير الجذري مع توثيق الخطأ بوضوح للمستخدمين.

هل ينطبق الترقيم الدلالي على تطبيقات الويب والخدمات السحابية (SaaS)؟

نعم، بالتأكيد. على الرغم من أن تطبيقات الويب تعتمد غالباً على النشر المستمر، إلا أن ترقيم واجهات البرمجة (APIs) الداخلية، والخدمات المصغرة، وحزم الواجهة الأمامية يساعد فريق العمل في تتبع التغييرات وتنسيق عمليات النشر وتفادي تعارض الكود.

التعليقات

كن أول من يعلّق.