--- draft: false aliases: ["/ar/"] --- # رسائل الإيداع commits الاصطلاحية المتفق عليها في نظام التحكم في الإصدارات يعرض هذا المقال مواصفات لجعل رسائل الإيداع commit messages مقروءة للبشر ولبرامج الأتمتة على حد سواء. ## مقدمة رسائل الإيداع الاصطلاحية هي مواصفات يسيرة تلتزم بها الرسائل كي تحقق شروطها، إذ توفر مجموعةً من القواعد لإنشاء سجل رسائل إيداع واضحة وصريحة، مما يجعلها أسهل لكي تستخدمها أدوات الأتمتة مباشرة. هذا الاصطلاح متوافق مع [الإدارة الدلالية لنُسخ البرمجيات SemVer](https://semver.org/lang/ar)، عن طريق وصف المميزات features، والإصلاحات fixes، والتغييرات الجذرية breaking changes في رسائل الإيداع. يجب أن تكون هيكلية رسائل الإيداع كما يلي: ``` [optional scope]: [optional body] [optional footer(s)] ``` تحتوي رسالة الإيداع العناصر التالية في هيكليتها، وذلك لإيصال المعنى بدقة مع مستخدم المكتبة سواء كان بشريًا أو أداة برمجية: 1. **إصلاح `:fix`** رسالة إيداع من نوع `fix` تصلح أو ترقع patch الخطأ في الشيفرة البرمجية، وهذا مرتبط بمصطلح الترقيع [`PATCH`](http://semver.org/#summary) في إدارة النسخ الدلالية Semantic Versioning. 2. **ميزة `:feat`** رسالة إيداع من نوع `feat` تضيف ميزة جديدة للشيفرة البرمجية، وهذا مرتبط بمصطلح الترقيم البسيط [`MINOR`](http://semver.org/#summary) في إدارة النسخ الدلالية. 3. **تغيير جذري `:BREAKING CHANGE`** رسالة إيداع بتذييل `BREAKING CHANGE:` أو بإضافة `!` بعد كتابة النوع `type` أو النطاق `scope`، والتي تعرض تغييرًا جذريًا في الواجهة البرمجية. هذا مرتبط بمصطلح الترقيم الجذري [`MAJOR`](http://semver.org/#summary) في إدارة النسخ الدلالية. يمكن أن تكون `BREAKING CHANGE` جزءًا من أي نوع في رسائل الإيداع. 4. تعد الأنواع المختلفة عن `:fix` أو `:feat` مسموح بها، مثلًا، [commitlint/config-conventional@](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional) بناءً على [رسائل الإيداع الاصطلاحية في Angular](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines) التي تقترح هذه الأنواع: للبناء `:build` والعمل الروتيني `:chore`والتكامل المستمر`:ci`والتوثيقات `:docs`ومتعلقات التصميم `:style`وإعادة الهيكلية`:refactor`والأداء `:perf`والاختبار`:test` وغيرها. 5. قد تتبع التذييلات -بخلاف التغييرات الجذرية `