|
27 | 27 | - الإصدارات تضمن أن جميع البيئات(local, CI, production) تستخدم ذات الكود. |
28 | 28 | - الإصدارات تسهل التشاركية بين المطورين وتزيل التشتت بين النسخ العشوائية من ذات المنتج. |
29 | 29 | ## المنهجيات والقواعد المتبعة في تحديد الإصدارات |
30 | | -هناك الكثير من المنهجيات الطرق المتبعة لإدارة إصدارات البرمجيات وجميعها تدور حول تنظيم العمل على الإصدارت ووضع قواعد وتعليمات واضحة لأجل ذلك والحول دون وصول البرمجية إلى مرحلة من التعقيد يكون إخراج إصدار جديد بها صعب أو شبه مستحيل، وقد يقوم المطور أو فريق التطوير في وضع قواعدهم الخاصة بإدارة إصدارت البرمجية التي يتم العمل عليها، لكن هناك منهجية شهيرة جدا وذات قواعد واضحة وبسيطة وهي منهجية [الإصدارت الدلالية](# Semantic Versioning) `Semantic Versioning` وهي التي سيدور الشرح عنها في هذا المقال. |
| 30 | +هناك الكثير من المنهجيات الطرق المتبعة لإدارة إصدارات البرمجيات وجميعها تدور حول تنظيم العمل على الإصدارت ووضع قواعد وتعليمات واضحة لأجل ذلك والحول دون وصول البرمجية إلى مرحلة من التعقيد يكون إخراج إصدار جديد بها صعب أو شبه مستحيل، وقد يقوم المطور أو فريق التطوير في وضع قواعدهم الخاصة بإدارة إصدارت البرمجية التي يتم العمل عليها، لكن هناك منهجية شهيرة جدا وذات قواعد واضحة وبسيطة وهي منهجية [الإصدارت الدلالية](# Semantic Versioning) `Semantic Versioning` وهي التي سيدور الشرح عنها في هذا المقال. |
| 31 | + |
| 32 | + |
31 | 33 | ⚠️ **عدم إستخدم آلية أو إستراتيجية واضحة في إدارة الإصدارات يؤدي إلى مشاكل ومعوقات يصعب حلها وتزيد بزيادة تعقيد المشروع.** |
32 | 34 |
|
33 | 35 | ## ما الإصدارت الدلالية `Semantic Versioning (SemVer)` ؟ وما طريقتها في إدارة الإصدارات؟ |
|
47 | 49 | فمن خلال هذه المعايير يمكن لأي شخص توقع التغييرات الآتية مع الإصدار الجديد من خلال ملاحظة أماكن الأرقام المُتغيرة في الإصدار. |
48 | 50 |
|
49 | 51 |
|
50 | | -🟢 **يمكن الإنتقال إلى [[#مثال تفصيلي مع الشرح النظري والتطبيق العملي]] لكي تتضح الصورة أكثر ثم تواصل القراءة لاحقا من هنا**. |
| 52 | +🟢 **يمكنك الإنتقال إلى [المثال التفصيلي](#مثال-تفصيلي-مع-الشرح-النظري-والتطبيق-العملي) لكي تتضح الصورة أكثر ثم تواصل القراءة لاحقا من هنا**. |
51 | 53 |
|
52 | 54 | ## أتمتة الإصدارات بإستخدام `semantic-release` |
53 | 55 | يمكن القيام بأتمتة الإصدارات التي تتبع منهجية الإصدارات الدلالية بإستخدام المكتبة [`semantic-release`](https://semantic-release.gitbook.io/) |
@@ -200,6 +202,7 @@ BREAKING CHANGE: إزالة الطريقة القديمة لإرسال الإي |
200 | 202 | "debug": false |
201 | 203 | } |
202 | 204 | ``` |
| 205 | + |
203 | 206 | **📌 للإستزادة والتوسع في إعدادت `semantic-release` راجع هذه [الصفحة](https://semantic-release.gitbook.io/semantic-release/usage/configuration)** |
204 | 207 | 2. تشغيل `semantic-release` كجزء من عملية الدمج المستمر(Continuous Integration) |
205 | 208 | - حيث نقوم في الدمج المستمر(gitlab ci/cd, github workflow...) بتثبيت إعتماديات الـ`semantic-release` ثم نقوم بتشغيل الأمر الخاص به، مثلا: |
@@ -497,4 +500,4 @@ export function subtract(a, b) { |
497 | 500 | | **2.0.0** | كبير MAJOR | تغيير جذري: إعادة تسمية `subtract` إلى `minus` | |
498 | 501 | | **1.2.1** | إصلاحي PATCH | إصلاح في الإصدار القديم (1.x) | |
499 | 502 | ### سجل التغييرات |
500 | | -جميع التغييرات التي تمت تجدها [هنا](https://github.com/O2sa/semantic-release-demo/blob/main/CHANGELOG.md).شرح مفصل على الإصدارت وآلية أتمتتها |
| 503 | +جميع التغييرات التي تمت تجدها [هنا](https://github.com/O2sa/semantic-release-demo/blob/main/CHANGELOG.md). |
0 commit comments