قبل ساعتين
مقدمة
المساهمة في مشروع مفتوح المصدر تعلمك أشياء لا تعلمها المشاريع الشخصية: قراءة كود كبير كتبه غيرك، والعمل وفق معايير فريق، وتلقي المراجعة. وهي سجل علني لعملك. البداية تبدو مخيفة، لكن الطريق واضح إن اتبعت الخطوات.
أهداف التعلم
- اختيار مشروع ومهمة مناسبة للبداية.
- قراءة دليل المساهمة وقواعد السلوك.
- العمل بـ Fork وفرع ومزامنة مع المستودع الأصلي.
- كتابة طلب دمج واضح والتعامل مع المراجعة.
1. اختيار المشروع
ابدأ بمشروع تستخدمه فعلاً (مكتبة، أداة، إضافة محرر)؛ ستفهم المشكلة ودافعك أقوى. علامات مشروع مرحِّب:
- نشاط حديث (commits وردود على Issues).
- ملف
CONTRIBUTING.mdوقواعد سلوك. - وسوم مثل
good first issueأوhelp wanted.
2. المساهمات ليست كوداً فقط
- تصحيح أو توضيح التوثيق.
- ترجمة التوثيق إلى العربية (بالتنسيق مع المشرفين).
- إعادة إنتاج خطأ مُبلغ عنه وإضافة خطوات واضحة.
- كتابة اختبار لحالة غير مغطاة.
هذه مساهمات قيمة وطريقة ممتازة لتتعلم المشروع.
3. قبل أن تكتب سطراً
- اقرأ
CONTRIBUTING.mdكاملاً. - علّق على الـ Issue واسأل إن كان أحد يعمل عليه، واطرح طريقتك المقترحة للتغييرات غير البسيطة. هذا يوفر عليك عملاً قد يُرفض لأنه لا يناسب اتجاه المشروع.
4. سير العمل
# 1) اعمل Fork من واجهة GitHub ثم:
git clone https://github.com/<you>/project.git
cd project
git remote add upstream https://github.com/<owner>/project.git
# 2) فرع للمهمة من أحدث نسخة
git fetch upstream
git switch -c fix/typo-install-docs upstream/main
# 3) عدّل، شغّل الاختبارات والتدقيق كما يطلب المشروع
npm test && npm run lint
# 4) commit ودفع
git commit -m "docs: توضيح خطوة التثبيت على Windows"
git push -u origin fix/typo-install-docs
ثم افتح طلب الدمج من فرعك إلى main في المستودع الأصلي.
5. طلب دمج يسهل قبوله
- صغير ومركّز: تغيير واحد. طلب من 30 سطراً يُراجع اليوم؛ طلب من 3000 قد ينتظر شهوراً.
- العنوان والوصف: ماذا يغير ولماذا، ورابط الـ Issue (
Fixes #123). - كيف اختبرته: الأوامر والنتائج، ولقطات للتغييرات المرئية.
- اتبع أسلوب الكود الموجود، لا أسلوبك المفضل.
6. التعامل مع المراجعة
- المراجعة على الكود لا عليك. اشكر المراجع وناقش بموضوعية.
- إن لم تفهم طلباً فاسأل.
- ادفع التعديلات في الفرع نفسه؛ يتحدث الطلب تلقائياً.
- المشرفون متطوعون غالباً؛ إن تأخر الرد أسبوعاً، ذكّر بلطف مرة واحدة.
7. المزامنة مع الأصل
git fetch upstream
git rebase upstream/main # على فرعك الخاص فقط
git push --force-with-lease # آمن نسبياً لفرعك الشخصي
تمرين عملي
- اختر مكتبة تستخدمها وابحث عن
good first issue. - اقرأ دليل المساهمة وعلّق على Issue تنوي العمل عليه.
- افتح طلب دمج صغيراً (حتى تصحيح توثيق)، واكتب وصفاً بالأقسام أعلاه.
- شارك تجربتك في قسم المشاريع بعرب كود: ماذا تعلمت؟ ما الذي كان صعباً؟
أخطاء شائعة
- العمل أسابيع على ميزة كبيرة دون سؤال المشرفين أولاً.
- طلب دمج يخلط تنسيق ملفات كثيرة مع إصلاح صغير.
- تجاهل فشل الفحوص التلقائية.
- الرد الدفاعي على المراجعة.
الخلاصة
ابدأ بمشروع تستخدمه ومهمة صغيرة، اقرأ قواعده واسأل قبل التغييرات الكبيرة، اعمل بفرع نظيف، واكتب طلب دمج صغيراً موثقاً، وتعامل مع المراجعة كفرصة تعلم.
مصادر مقترحة
- opensource.guide (دليل GitHub للمصادر المفتوحة).
- موقع goodfirstissue.dev.
- توثيق GitHub: «Contributing to a project».