مقدمة
قبل أن تتعمق في التطوير، نأمل أن تستوعب الأمور التالية:- يُطوَّر 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
أسئلة وأجوبة
كيف أعثر على معرّف الإيداع (commit hash) للنسخة المجتمعية من Overleaf X.0.0؟
كيف أعثر على معرّف الإيداع (commit hash) للنسخة المجتمعية من Overleaf X.0.0؟
أولًا، عليك سحب صورة Docker وتشغيل الأمر التالي لفحص التسميات (labels) في صورة Docker هذه:بعد ذلك يمكنك التحقق مما إذا كان الإيداع (b0d05c0) موجودًا في الفرع master في المصدر الأصلي.
bash
لماذا يتطابق معرّف الإيداع في صورة النسخة المجتمعية بين 6.0.0 و6.0.1؟
لماذا يتطابق معرّف الإيداع في صورة النسخة المجتمعية بين 6.0.0 و6.0.1؟
هذا سلوك متوقع. فالإصدار 6.0.1 إصدار تصحيحي بسيط مبني فوق صورة 6.0.0. إذ تُطبَّق التغييرات عبر ترقيع (patching) صورة 6.0.0 الحالية، بدلًا من إعادة بناء الصورة من إيداع جديد. لذلك يكون معرّف الإيداع داخل الصورة متطابقًا بين 6.0.0 و6.0.1.للاطلاع على معلومات مفصلة، راجع hotfix.

