Skip to main content

مقدمة

قبل أن تتعمق في التطوير، نأمل أن تستوعب الأمور التالية:
  • يُطوَّر Overleaf رسميًا في مستودع داخلي، وتُنشر النسخة المجتمعية (Community Edition) في overleaf/overleaf. ويتولى روبوت نسخ (copybot) مزامنة الشيفرة بين المستودعين الداخلي والعام.
  • يُعد Ayaka-notes/overleaf-pro نسخة متفرعة (fork) من Overleaf المجتمعي، ونأمل أن يستمر هذا المشروع على المدى الطويل، لذا يُرجى اتباع القواعد قبل تقديم أي مساهمات.

قواعد الإيداع (Commit)

  • يُرجى عدم إجراء تعديلات واسعة على شيفرة Overleaf الحالية. ركّز أكبر قدر ممكن من الوظائف في المجلد services/web/modules. سيقلل هذا من عبء العمل علينا عند دمج الشيفرة وتحديثها لاحقًا.
  • البرمجة التلقائية بمساعدة الذكاء الاصطناعي (Vibe coding) طريقة سهلة فعلًا، لكنها قد تُحدث فوضى في مشروعنا بسهولة وتجعله غير قابل للصيانة لاحقًا، لذا يُرجى استخدامها بحذر.
  • يُرجى عدم إضافة أي محتوى متعلق بالترجمة أثناء التطوير؛ واستخدم الترجمات الموجودة كلما أمكن ذلك.
  • تجنّب إضافة متغيرات بيئة جديدة ما لم يكن ذلك ضروريًا للغاية. وإن لزم الأمر، فاحرص على أن تكون متسقة قدر الإمكان مع تلك الموجودة في Overleaf toolkit أو في docs.overleaf.com.

قواعد الفروع

نستخدم الفروع التالية لتطوير overleaf-pro:
  • main: يُستخدم هذا الفرع فقط لمزامنة الشيفرة من المصدر الأصلي، لذا يُرجى عدم إيداع أي تغييرات خارجية فيه. في هذا الفرع، نضع بعض الوسوم مثل ce-v[X.x.x]، والتي تشير إلى أن هذا يقابل v[X.x.x] في النسخة المجتمعية الرسمية من Overleaf. ملاحظة: هذا الوسم غير قابل للتغيير!
  • server-pro: هذا الفرع هو الفرع الافتراضي للتطوير اليومي.
  • feature-X: يُستخدم هذا الفرع لتطوير ميزة محددة.
  • release-vX.0.0: الفرع المخصص للإصدار، وسنجري فيه بعض الإصلاحات العاجلة (hot-fix) قبل الإصدار.

قواعد الفروع في Overleaf Pro

GitHub Action

تتولى GitHub Action عمليات التكامل والنشر المستمرين (CI/CD) تلقائيًا، وتشمل:
  • التحديث الليلي للفرع main
  • بناء صورة Docker للتطوير
  • إصدار صورة Docker

أسئلة وأجوبة

أولًا، عليك سحب صورة Docker وتشغيل الأمر التالي لفحص التسميات (labels) في صورة Docker هذه:
bash
بعد ذلك يمكنك التحقق مما إذا كان الإيداع (b0d05c0) موجودًا في الفرع master في المصدر الأصلي.
هذا سلوك متوقع. فالإصدار 6.0.1 إصدار تصحيحي بسيط مبني فوق صورة 6.0.0. إذ تُطبَّق التغييرات عبر ترقيع (patching) صورة 6.0.0 الحالية، بدلًا من إعادة بناء الصورة من إيداع جديد. لذلك يكون معرّف الإيداع داخل الصورة متطابقًا بين 6.0.0 و6.0.1.للاطلاع على معلومات مفصلة، راجع hotfix.
آخر تعديل في ٤ أكتوبر ٢٠٢٦