سياسة هندسة الإصدار
خمس سياسات كانونية لإدارة الإصدارات، ووسم الإصدارات، ودورات الإهمال، والتغييرات الكاسرة، وإجراءات التراجع.
تحكم خمس سياسات كيفية إصدار apothem.
1. الإصدار الدلالي
يُوزَّع المشروع وفق الإصدار الدلالي 2.0.
تأخذ أرقام الإصدار الشكل MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD].
| الترقية | المُحفِّزات |
|---|---|
| MAJOR | تغييرات كاسرة في مخططات المنتجات، أو معرّفات التفويض (CM-N / TM-N / CP-N)، أو عقود الخطافات |
| MINOR | قواعد جديدة، أو عمّال مفوَّضون، أو أوامر، أو مهارات، أو أحداث خطافات، أو امتدادات مخطط غير كاسرة |
| PATCH | توضيحات، وإضافات أنماط مضادة، وإصلاحات توثيق، وتعديلات لا تغيّر السلوك |
تستخدم وسوم المرشحين الصيغة vX.Y.Z-rc.N (مرشح الإصدار)
أو vX.Y.Z-alpha.N / vX.Y.Z-beta.N (وصول مبكر).
2. وسوم الإصدار
يضع كل إصدار وسم git موقَّعًا بالشكل vMAJOR.MINOR.PATCH
على main. يُحفِّز الوسم .github/workflows/release.yml الذي
يبني، ويوقّع، ويولّد SBOM وإثبات المنشأ SLSA-3، و
ينشر صفحة GitHub Release.
أعراف الوسم:
- الصيغة — بالضبط
vMAJOR.MINOR.PATCH. بلا بادئةrelease-، وبلا لاحقة-final. - التعليق التوضيحي — كل وسم هو وسم معلَّق (
git tag -a -s) يحمل ملخص ملاحظات الإصدار في رسالة الوسم. - التوقيع — كل وسم موقَّع بـ GPG. وينتج سير عمل الإصدار إضافةً إلى ذلك توقيع Sigstore اللامفتاحي بـ cosign على كل منتج، وبرهان منشأ الإصدار SLSA-3، وكلاهما مرفق بصفحة GitHub Release.
3. سياسة الإهمال
خط الدعم العام الحالي هو أحدث إصدار ثانوي صادر. وعندما يكون للمشروع عدة إصدارات ثانوية عامة، تكون مصفوفة الإصدارات المدعومة في SECURITY.md مصدر الحقيقة لأي نوافذ دعم إضافية مقتصرة على الإصلاحات الحرجة.
إيقاع الإهمال:
- الإعلان — يُعلَن عن أي رمز أو سلوك مُهمَل في
قسم
### DeprecatedمنCHANGELOG.mdالخاص بالإصدار الذي يهبط فيه الإهمال. وتعكس ملاحظات الإصدار إعلان الإهمال. - نافذة المهلة — تظل الرموز المُهمَلة متاحة لمدة دورة ثانوية كاملة على الأقل قبل الإزالة.
- الإزالة — تهبط الإزالة في ترقية
MAJOR. ويحمل كل رمز مُزال سطر### RemovedفيCHANGELOG.mdومدخل دليل ترحيل ضمن الأدلة الإرشادية.
4. سياسة التغييرات الكاسرة
تتطلب التغييرات الكاسرة:
- مشكلة RFC — تُفتَح بوسم المشكلة
rfcsتصف التغيير الكاسر، ومسار الترحيل، و استراتيجية التراجع. - نافذة تعليقات مدتها 30 يومًا — تظل الـ RFC مفتوحة لمدة لا تقل عن 30 يومًا قبل الدمج. وللمشرفين تمديد النافذة عندما تبرر الملاحظات ذلك.
- ترقية MAJOR — الإصدار الذي يهبط فيه التغيير الكاسر يرفع مكوّن MAJOR.
- دليل ترحيل — يُشحَن التغيير مع مدخل الأدلة الإرشادية يقود المشغّل عبر الترحيل.
5. سياسة التراجع
إذا أظهر إصدار ما انحدارًا يعيق التبنّي:
- التراجع — تُعاد إيداعات الالتزام المخالفة على
main. - إعادة الوسم بإصدار-زائد-واحد — يهبط إصدار متابعة بوصفه
vMAJOR.MINOR.PATCH+1يحمل التراجع إضافةً إلى أي إصلاحات تدريجية. ولا يُحذَف الإصدار المعيب السابق من GitHub Releases — بل يوثّق تعليق### YankedفيCHANGELOG.mdالموقف لتبقى عمليات البناء القابلة لإعادة الإنتاج مرتبطة بمرجع ثابت. - التواصل — يصحب التراجع إشعار security-advisories (عندما يكون متعلقًا بالأمن) أو منشور Discussions (عندما يكون متعلقًا بالموثوقية).
انظر أيضًا
- CHANGELOG.md — سجل الإصدارات الكانوني.
- SECURITY.md — مصفوفة الإصدارات المدعومة وقنوات الإبلاغ.
- cicd-pipeline.md — فئات فحوص CI العشر التي تُبوِّب كل إصدار.
- deployment-checklist.md — مسح الجاهزية للإنتاج لكل إصدار.
سجلّ المطابقة الخارجية — عند العمل على المشاريع المُضيفة
سجلّ التفويضات الخمسة عشر (M1–M15) الذي يحدّد متطلّبات المطابقة لجميع الآثار المُولَّدة في المشاريع المُضيفة، مع تخطيط متقاطع للتفويضات الداخلية للنظام البيئي.
سياسة الشارات
تحديد مصادر الشارات الديناميكية والثابتة لملف README، شاملةً حالة سير العمل الأصلية لـ GitHub، وJSON نقطة نهاية shields.io، وأشكال الشارات الثابتة.