Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development

كيف تساهم في مشروع مفتوح المصدر : مشروع Webmaker كمثال

by
Read Time:5 minsLanguages:

Arabic (العربية/عربي) translation by Abu Bakr Soliman (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

تعتبر المساهمة في مشروع مفتوح المصدر Open Source أمر له العديد من المزايا. فمساهمتك في مشروع ما, تمكنك من تعلم الطريقة الاحترافية في التطوير التي تعتمدها كبرى المنظمات. و مثل هذه المهارات تكون مفيدة و فعالة جداً للمجالات الوظيفية للعديد من الناس, و تساعدهم في تعلم أشياء ربما لا يتمكنوا من تعلمها خلال عملهم أو دراستهم.

يأتي هذا الدرس موجهاً للمطورين المبتدئين و أصحاب الخبرة المتوسطة, الراغبين في المشاركة في مشروع مفتوح المصدر. سأمثل الدرس من خلال الشرح على المشروع Webmaker المقدم من مؤسسة Mozilla. لتوضيح كيف يمكنك أن تساهم في مشروع مفتوح المصدر.

دراسة الحالة لمشروع: Mozilla Webmaker

خلال شرحنا للعملية الكاملة لكيفية المساهمة في المشروع, بدءاً من استيعاب الخطوط الأساسية للمساهمة بشكل عام, و إستخدام حسابك في GitHub و إستخدام تقنية الـ Git للتعامل الـ Bugzilla بفعالية. فإن هذا الدرس سيوضح لك كيف تدمج تعديلاتك Patches في الكود الأساسي للمشروع. سأستخدم للتوضيح نموذج لخطأ Bug بسيط قمت بالمساهمة باصلاحه من قبل. ذلك عندما بدأت من قبل بالمساهمة في المشاريع المفتوحة المصدر.

في البداية عليك ان تعثر على مستودع ملفات repository المشروع. كمثال, سنعمل على مكون الـ Profile Component الخاص بالـ Webmaker

https://github.com/mozilla/webmaker-profile-2

قم بتسجيل الدخول إلى حسابك في GitHub , و قم بطلب المساهمة Fork في المشروع. بعد ذلك سيصبح لديك مستودع قابل للمساهمة Forked repository مسجل تحت اسم المستخدم الخاص بك

Fork the projectFork the projectFork the project

مثال: حصلت أنا على المستودع الآتي:

https://github.com/tanay1337/webmaker-profile-2

يجب أن يكون لديك Git منصب على جهازك, ربما يمكنك قراءة هذا المقال حول ارشادات عن كيف تفعل ذلك.

في أسفل يمينك, ستلاحظ صندوق يشبه الصورة:

Clone the project locallyClone the project locallyClone the project locally

يمكنك إستخدام هذا الرابط لنسخ Clone مستودع الملفات الى جهازك. الآن شغل الـ Git في بيئة الأوامر command line و و أدخل الأمر التالي.

git clone https://github.com/tanay1337/webmaker-profile-2.git

هذا الأمر سيعمل على استيراد الأكواد الى جهازك تحت مجلد بعنوان webmaker-profile-2. كما يمكنك أن تعثر على الإرشادات العامة للمساهمة في ملف باسم CONTRIBUTING.md و خطوات التنصيب في ملف آخر باسم README.md. إحرص على قراءة هذين الملفين بعناية. حيث يمكنك أن تجد معلومات مهمة للمطورين.

الدخول الى BugZilla

الآن عليك أن تعثر على بعض الأخطاء Bugs السهلة لتبدأ معها. و لأي مشروع متعلق بمؤسسة Mozilla, يمكنك أن تستخدم Bugs Ahoy للعثور على أول أخطاء Bugs مبلغ عنها و تناسب مهاراتك. منظمة Mozilla تستخدم أيضاَ Bugzilla لتنظيم الأمور حول الأخطاء. مع الاستمرار بتناول طلبات الخصائص. يمكنك الولوج الى Bugzilla عبر إستخدامك لـ Persona . و فور عثورك على خطأ Bug, يجب أن تعلق عليه فوراً مبدياً إهتمامك بإصلاحه.

Request help for a bugRequest help for a bugRequest help for a bug

يمكنك أيضاً أن تطلب المساعدة للعثور على الملف المحدد مباشرة في الكود حيث يوجد الخطأ المقدم من مطوري Mozilla IRC. و حقيقة فإنهم مجموعة من الأشخاص اللطفاء الذين ستسعدهم مساعدتك لتقديم أول حلولك للأخطاء. و في حالة عدم وجود اي شخص منهم متاح للتحدث مباشرة online , حاول أن تضيف علامة بعنوان أحتاج معلومات needinfo موجهة للمستشار المسئول عن الخطأ, و هو سيساعدك لاحقاً.

Adding needinfo flagsAdding needinfo flagsAdding needinfo flags

أحفظ التعديلات الى نسخة الملفات المحلية

الآن, افترض أنك قمت بحل الخطأ و أحدثت التعديلات المطلوبة في نسخة الملفات المحلية الموجودة لديك, و تحتاج لاستعراض الملفات التي قمت بالفعل بتعديلها على جهازك بإستخدام نظام التحكم بالاصدارات Version Control System. فقط قم بكتابة الأمر التالي تحت المجلد webmaker-profile-2

git status

سيمنحك الأمر تفاصيل عن الملفات المعدلة و كذلك الملفات الجديدة التي أضيفت إلى مستودع الملفات. إذا كنت بالفعل راضي عن تعديلاتك في الملفات, قم بترحيل الملفات المعدلة أو الجديدة الى منطقة الاستعداد staging area.

git add names_of_files

و إذا كان كل شئ يسير على ما يرام, قم بإعتماد تعديلاتك.

git commit -m "Your message here"

إمسح سجل الإعتمادات, و ساهم بتعديلاتك

كن متأكد من ان رسالة الاعتماد commit لا تحوي أي مسافات غير ضرورية أو سطور جديدة. ربما يمكنك مراجعة هذا المثال الجيد حول كيفية كتابة رسالة الاعتماد, فتكون مثل الرسالة "Fixing Bug 1040556" و لأسباب سأشرحها لك لاحقاً في هذا المقال, فإن القائمين على المعاينة يفضلون لو أن لديك اعتماد وحيد في كل طلب تعديل pull request. لذلك, إذا كنت قد أنجزت أكثر من إعتماد للأكواد على جهازك, قم بإعادة تأسيسهم عبر الأمر.

git rebase -i HEAD~2

الأمر السابق يفترض أن لديك إعتمادين اثنين, و الأمر -i هو علامة إعادة التأسيس للإعتمادين. سوف يظهر لك الإعتمادين مع رسالة كل منهما, مع كلمة إستباقية بعنوان pick. فقط قد بإزالة الكلمة pick و ضع مكانها الكلمة squash في واحد من الإعتمادين, و ها أنت تسير على الطريق الصحيح. في الشاشة التالية للأمر سترى كيف يحدث دمج رسائل الاعتمادين معاً.

و تهانينا, لقد قمت بإعادة تأسيس الإعتمادات لديك. و لم يتبق لك إلا أن تدفع بمساهماتك و تشاركها الى المستودع على GitHub.

git push

أو لو أنك قد قمت من قبل بالدفع بإعتماد مسبق ثم قمت بعدئذ بإعادة التأسيس للإعتمادات, جرب هذا الأمر.

git push -f

انشئ طلب تعديل

الآن قم بفتح مستودع الملفات الخاص بك على الانترنت, و أضغط على الزرار بعنوان Pull Requests و اطرح طلب تعديل جديد.

تلقائياً, سيستخدم رسالة الاعتماد ليملأ عنوان طلب التعديل pull request و من ثم يعرض لك الاختلافات بين التعديل و الكود الأصلي (في الصورة بالأسفل, ستجده يعرض الاختلافات الخاصة بطلب التعديل الخاص بي)

Reviewing the diff at GithubReviewing the diff at GithubReviewing the diff at Github

تهانينا, قمت بالفعل بأول طلب تعديل لك. لكنك تحتاج أيضاً لإنجاز بعض المهام الأخرى. أنسخ رابط طلب التعديل و افتح موضوع الخطأ Bug الخاصة بك على مشروع Bugzilla. إضغط على رابط اضافة ملحق Add an attachment و ألصق رابط طلب التعديل. قم بتحديد صندوق العلامة Check Box و الذي بعنوان patch و أضف علامة مراجعة للمراجع المسؤول.

Adding an attachmentAdding an attachmentAdding an attachment

بإفتراض أن تعديلك patch كان صحيحاً, سيقوم المراجع بدمج طلبك إلى المستودع الرئيسي للكود, و الخطأ سيتم حله تلقائياً عبر روبوت الـ GitHub في Bugzilla (و هذا يحدث فقط لو أن الاعتماد commit و طلب التعديل pull request يحملان في العنوان رقم الخطأ)

Github robot closing a bugGithub robot closing a bugGithub robot closing a bug

و ليس هناك أجمل من أن ترى الكود الخاص بك و قد تم دمجه في الكود الرئيسي و تم إعتماده بالفعل في الموقع الرئيسي الذي يستخدمه الملايين من المستخدمين.

Merged pull requestMerged pull requestMerged pull request

أتمنى أن تكون قادر على إتباع الخطوات لتبدأ في تقديم أول حلولك للأخطاء في مشروع Webmaker أو أي مشروع آخر مشابه من المشاريع مفتوحة المصدر.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.