المساهمة في المشاريع مفتوحة المصدر هو شي جدا ممتاز للشخص اللي يبي يكتسب خبرة عملية جامدة، لأنها تخليك تتعامل مع اكثر من شي، مثل التعامل مع المساهمين الاخرين في المشروع، اتباع قوانين البرمجة الخاصة بالمشروع، والخ.
فبدايةً، في الغالب يكون فيه شخص في بداية رحلته لتعلم البرمجة ووصل الى مرحلة يبي يرد الجميل ويحاول يساهم في المشاريع اللي ممكن استفاد منها خلال رحلته حتى الآن، وهذا الشي جدا جميل ومطلوب بشكل عام، والمفروض انك ما تخجل او تخاف من المساهمة بالمشاريع هذي، خاصة ان لها عائد معرفي وعملي لك انت شخصيا، وعائد للمشروع نفسه، فالموضوع جيد من الناحيتين.
وكخطوة مبدئية بشكل عام الأفضل انك تبدأ بشي بسيط جدا في البداية، وقد يكون ببساطة تعديل اخطاء املائية في الكود او في الـREADME
فممكن تمشي في البداية تدور على repository تهمك انت شخصيا لأن هذا راح يعزز رغبتك بالمساهمة، كمثال، ممكن تبي تساهم في مشروع لرجال طيب يقولون انه معلم و قوي، اسمه ytdlp-gui، هذا مشروع سويته انا، وأرحب بالمساهمات من الجميع (اذا كانت المساهمة بالكود ممكن يكون فيه شوي استقعاد بس هذا الشي طبيعي)، طبعا المشروع مهب هو المهم بالسالفة، الأهم انك تلقى لك مشروع تحس انك تقدر تساهم فيه، وإذا كانت المساهمة في الكود فالأفضل انك تستفسر صاحب المشروع اذا وده بالشي اللي بتضيفه (سواء عن طريق issue او ايا كان)
وكمثال عملي بساهم في مشروع mohad12211 بإني اضيف له README فقط
ففي البداية يبيلك تروح على الـrepository وتسوي لها fork:

بعدين بس اضغط على "create fork":

الـfork بشكل عام مجرد ينسخ المشروع الى حسابك في github فبتلقاه في حسابك بالشكل هذا:
السهم رقم 1 يشير على الكلام اللي يوضح ان هذي الـrepository مأخوذة كـfork
السهم رقم 2 يشير الى ان سجل الـrepository كامل موجود
احتاج في البداية اني استنسخ المشروع على جهازي، كأي مشروع ثاني تاخذه من github عن طريق
git clone https://github.com/BKSalman/comp (لاحظ اني قاعد استنسخ الـrepository اللي على حسابي)
طبعا الـREADME اللي ابي اضيفه ممكن يكون ببساطة كالتالي:
# comp
A simple experimental compiler for C written in Rust
فتمشي على الخطوات المعتادة لـgit وتسوي git add + git commit + git push،
بكذا التغييرات راح تنرفع على الـrepository اللي في حسابك:
زي ما هو واضح بالصورة، مكتوب ان الـrepository اللي على حسابي متقدمة بـcommit واحد على الأصلية، فالخطوة الجاية هي اني اسوي pull request:

بيطلع لك مقارنة بين شغلك والموجود في الـrepository الأصلية:

وبعدها تضغط "Create pull request" وتكتب عنوان للـpull request ورسالة تشرح فيها التغيير،
بما ان تغييرنا مب كبير فصاحب الـrepository يقدر يشوفه ويفهم من نفسه فمب لازم تعليق

وبعدها بس تضغط "Create pull request" وبيدخلك على صفحة الـpull requests في الـrepository الأصلية:

والآن فقط تنتظر صاحب المشروع يرد عليك سواءً بالقبول او بطلب تعديلات، فأنت الآن تحت رحمته :)
فباختصار قد تنظر إلى الخطوات على انها تكون بالشكل هذا:
- تلقى مشروع يهمك شخصيا
- تخطط وش تبي تساهم فيه، ما يهم مدى صغر او كبر المساهمة، لأن 99% من المشاريع يرحبون بالمساهمات جميع
- إذا كانت المساهمة في الكود افضل انك تستفسر إذا هم يتفقون مع الإضافة اللي بتضيفها، وتأكد انك تمشي على اسلوب كتابتهم للكود (ايه، يفرق الشي هذا)
- إذا كان README او شي له علاقة بالـdocumentation غالبا وضعك في السليم، ما تحتاج تستأذن
- إذا كان فيه نقاط رفعها لك صاحب المشروع على انها تتعدل او انها غير صالحة للمشروع، فوقتها تتحاور معاه وتصحح الاخطاء اذا تواجدت (غالبا بيجيك شوي تهزيء خفيف بس مشيها، كلنا اصحاب وحبايب)
- حاول انك تتبع الإجراءات السليمة في الأمور المتعلقة بـgit والى ما ذلك
- بس :) (ادع ان صاحب المشروع ما يهزئك واجد)
(نشكر الاستاذ mohad12211 على "المساهمة" في هذي المدونة :) )
التعليقات