البدء¶
المكونات الرئيسية¶
عند العمل مع Odoo.sh، من المهم فهم المكوّنات الرئيسية المعنية:
على الرغم من أنها جميعًا مترابطة، إلا أن لكل منها دورًا مميزًا في تطوير تطبيقات Odoo ونشرها. وتشكل معًا مسارًا متكاملاً من تطوير الكود إلى الاستخدام التجاري الفعلي.
مستودع GitHub¶
مستودع GitHub يشبه مجلدًا على جهاز الكمبيوتر يحتوي على جميع الملفات والمجلدات الخاصة بمشروع معين. والفرق هو أنه مخزّن على GitHub ويمكن الوصول إليه وتعديله من قبل عدة أشخاص على أجهزة كمبيوتر مختلفة.
بعبارة أخرى، مستودع GitHub هو مكان يمكنك فيه تخزين ملفات مشروعك ومشاركتها مع الآخرين، حتى يتمكنوا من التعاون معك، وإجراء تعديلات، والمساهمة في مشروعك. كما يتتبع جميع التغييرات التي تطرأ على مشروعك بمرور الوقت، بحيث يمكنك بسهولة العودة إلى نسخة سابقة عند الحاجة.
بالإضافة إلى ذلك، يوفر GitHub العديد من الميزات لمساعدتك في إدارة مشروعك، مثل تتبع المشكلات، وطلبات السحب، ومراجعات الكود. إنه أداة قوية لإدارة مشاريع البرمجيات والتعاون فيها، ويستخدمه المطورون على نطاق واسع حول العالم. وهو مساحة خاضعة للتحكم بالإصدارات يُخزَّن فيها الكود المصدري لتطبيقات Odoo. يتتبع كل تغيير، ويدعم التعاون، ويمكن أن يكون عامًا أو خاصًا.
مشروع Odoo.sh¶
مشروع Odoo.sh هو منصة كخدمة (PaaS) تتكامل مع GitHub وتتيح تطويرًا واختبارًا ونشرًا مبسطًا لتطبيقات Odoo. ويتضمن أدوات مثل النسخ الاحتياطي التلقائي، وبيئات الاختبار المرحلي، وخطوط التكامل المستمر.
قاعدة بيانات Odoo¶
تُخزّن قاعدة بيانات Odoo جميع البيانات التشغيلية التي تستخدمها تطبيقات Odoo وتولّدها، مثل السجلات التجارية، والإعدادات، وبيانات المستخدمين.
أنواع المستخدمين¶
يتضمن Odoo.sh أنواعًا مختلفة من المستخدمين، كل منهم له دور محدد في دورة حياة المشروع:
مستخدمو GitHub: المطورون الذين لديهم صلاحية وصول إلى مستودع GitHub المرتبط بمشروع Odoo.sh. الوصول إلى المستودع لا يجعل الشخص تلقائيًا متعاونًا في مشروع Odoo.sh.
المتعاونون في Odoo.sh: الأفراد الذين يديرون مشروع Odoo.sh. يجب ربط كل متعاون بمستخدم GitHub. ومع ذلك، فإن المتعاونين ليسوا نفس مستخدمي قاعدة البيانات.
مستخدمو قاعدة البيانات: المستخدمون النهائيون لقاعدة بيانات Odoo المنشورة. يتفاعلون مع النظام الفعلي لكنهم لا يشاركون في التطوير أو إدارة المشروع.
مفاهيم تقنية¶
عند العمل مع Odoo.sh، من المهم أيضاً فهم عدة مفاهيم تقنية:
تفريع مستودع¶
تفريع مستودع على GitHub يعني إنشاء نسخة من مستودع شخص آخر في حسابك الخاص. يتيح لك ذلك إجراء تغييرات على المستودع دون التأثير على النسخة الأصلية.
عند تفريع مستودع، تُنشئ نسخة خاصة بك من المستودع، تتضمن جميع الملفات والمجلدات الموجودة في المستودع الأصلي. يمكنك بعد ذلك إجراء تغييرات على الملفات في نسختك من المستودع وإرسال commit بها، تماماً كما تفعل مع أي مستودع آخر.
تكمن فائدة تفريع مستودع في إمكانية إجراء تغييرات على الكود دون التأثير على النسخة الأصلية، وهو أمر مفيد عندما تريد تجربة ميزات جديدة أو إصلاح أخطاء في كود شخص آخر. يمكنك أيضاً استخدام المستودع المفرَّع كنقطة انطلاق لمشروعك، وإجراء التغييرات حسب الحاجة.
بعد إجراء التغييرات على المستودع المفرَّع، يمكنك تقديم طلب سحب (pull request) إلى مالك المستودع الأصلي، تطلب فيه دمج تغييراتك في مستودعه. هذا نهج شائع في المشاريع مفتوحة المصدر لقبول مساهمات المطورين الآخرين، ويمكن أن يكون وسيلة رائعة للمشاركة في المجتمع وتحسين مهاراتك في البرمجة.
رفع commit¶
عند إجراء تغييرات على ملف واحد أو عدة ملفات في مستودع Git على جهازك المحلي، تُعتبر هذه التغييرات غير محفوظة (uncommitted). بعبارة أخرى، يعلم Git أن تغييرات قد أُجريت، لكنها لم تُحفظ أو تُسجَّل رسمياً بعد.
لحفظ هذه التغييرات وإضافتها إلى مستودع Git، تحتاج إلى إنشاء commit. الـ commit هو لقطة للتغييرات التي أجريتها على الملفات في لحظة زمنية محددة. يسجل ما هي التغييرات التي أُجريت، ومن أجراها، ومتى.
بعد إنشاء commit، يمكنك رفعه (push) إلى مستودع بعيد، مثل مستودع مستضاف على GitHub. رفع commit يعني إرسال التغييرات التي أجريتها في الـ commit من مستودعك المحلي إلى المستودع البعيد حتى يتمكن الآخرون من رؤيتها واستخدامها.
باختصار، رفع commit يعني إرسال التغييرات التي أجريتها على الملفات في مستودع Git الخاص بك من جهازك المحلي إلى مستودع بعيد. إنها وسيلة لمشاركة تغييراتك مع الآخرين والتعاون في مشروع.
دمج فرع¶
دمج فرع في فرع آخر هو عملية جمع التغييرات التي أُجريت في أحد الفروع مع الفرع الآخر. على سبيل المثال، لنفترض أنك أنشأت فرعاً جديداً باسم feature-branch للعمل على ميزة جديدة لمشروعك. بعد الانتهاء من إجراء التغييرات على هذا الفرع، يمكنك دمج هذه التغييرات في الفرع الرئيسي (الذي يُسمى غالباً master أو main).
عند دمج فرع، يفحص Git التغييرات في كلا الفرعين ويحاول جمعها. وإذا كانت هناك أي تعارضات بين التغييرات التي أُجريت في الفرعين، سيطلب منك Git حلها قبل إتمام الدمج (من ناحية الكود).