لغات البرمجة

دليل Semantic Versioning: SemVer

لغة البرمجة المعنية في الوصف هي Semantic Versioning أو SemVer، وهي ليست بالضرورة لغة برمجة تقليدية بل هي مجرد طريقة لتسمية وترقيم الإصدارات في مشاريع البرمجيات والمكتبات. تمثل Semantic Versioning أحد أهم وأوسع الطرق انتشارًا لتسمية الإصدارات في مجال تطوير البرمجيات.

وتستخدم Semantic Versioning تسلسلًا من ثلاثة أرقام (Major.Minor.Patch)، بالإضافة إلى علامة مسبقة للإصدار القبلي (prerelease tag) وعلامة بناء اختيارية (build meta tag). في هذا النظام، يتم استخدام مستوى المخاطرة والوظائف كمقاييس للأهمية. تشير التغييرات الكبيرة إلى زيادة الرقم الرئيسي (مخاطرة عالية)، بينما يزيد الرقم الفرعي للإصدار عند إضافة ميزات جديدة غير مخربة (مخاطرة متوسطة)، ويزيد الرقم التصحيحي عند إجراء أي تغييرات غير مخربة أخرى (مخاطرة منخفضة). ويشير وجود علامة الإصدار القبلي (-alpha، -beta) إلى مخاطرة كبيرة، وكذلك الرقم الرئيسي صفر (0.y.z)، الذي يُستخدم للإشارة إلى أن العمل قيد التقدم وقد يحتوي على أي مستوى من التغييرات القابلة للكسر بشكل محتمل (أعلى مستوى للمخاطرة).

أُطلقت Semantic Versioning في عام 2011، ويعتبر Tom Preston-Werner من مبتكريها. يمكن العثور على مزيد من المعلومات حول Semantic Versioning على موقعها الرسمي: https://semver.org/. تحتوي المواصفة الخاصة بـ Semantic Versioning على مستودع GitHub يحتوي على 116 مشكلة مفتوحة، وقد تم إنشاء أول مساهمة في هذا المستودع في عام 2011.

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