تجربتي الأولى في عالم Open Source

٢٩ سبتمبر ٢٠٢٤

البداية كانت عندما عقد مجتمعنا لقاء حول مهارات النجاح الوظيفي مع 💻 م. كريم عايش، وذكر أهمية المشاركة في الـ Open Source لتحسين فرص التوظيف تخريج جديد.

بعدها شاهدت 🎥 بودكاست حول المشاركة في الـ Open Source، صراحة البودكاست عبارة عن كراش كورس، عن نفسي حضرته مرتين 🎧.

ثم قبل البدء في البحث عن issue بدأت بوضع معايير لل Issue التي أرغب بالمشاركة فيها:

1️⃣ بسيطة وسريعة التنفيذ ✅ : وذلك بسبب الظروف الراهنة ورغبتي في البداية على التركيز على التعرف على خطوات المشاركة وأشوف كيف الدنيا ماشية.

2️⃣ يكون الـ repo عليه نجوم (stars) ⭐.

ثم بدأت البحث عن issue وفي النهاية وجدت 🐞 issue عبارة عن bug بسيطة حيث كان الـ logo في الـ footer عند حجم معين من الشاشات يصبح له cutoff.

فطلبت من الـ maintainer أني أريد العمل عليها وعمل لي assign 📩.

فبدأت بالعمل عليها 👨‍💻 وسلّمتها ✅ وتم قبولها 🎉.

هنا بإختصار ولكن سنتعرف على تفاصيل أكثر مع الدروس المستفادة

✍️ الدروس المستفادة

1️⃣ كيفية البحث عن issue

كثير من maintainers يضعون labels معينة على issues لتسهيل على المساهمين الجدد في الوصول لأول مشاركة لهم، مثل:

good first issue

beginner-friendly

first-timers only

help wanted

كيف ممكن نبحث عن هذه issues ؟

🔹الطريقة الأولى عن طريق github ذات نفسه تدخل على search bar وتبحث عن اسم issue

ثم تبدأ تفلتر النتائج

1️⃣ من قائمة language تختار اللغة التي تريدها

2️⃣ تختار issues وليس code

3️⃣ ثم من قائمة Advanced تختار label وتكتب أحد ال labels السابقة، إذا كان label فيها مسافات ضعها داخل ""

يكون search bar كالآتي مثلاً Search text language:JavaScript label:"good first issue"

👈 إذا كنت تريد تصفية النتائج حسب repo stars، أدخل على advanced search

صراحة هذه الطريقة ممتازة في حالة كنت تبحث عن issue معينة لأنك هنا تبحث بالاسم

💡ملاحظة مهمة

عندما تبحث في GitHub، سواء على issue موجودة أو على repos أنصحك بعمل sort حسب recently updated 🕒. لماذا؟

ستحصل بذلك على repos المتفاعلة ويتم الرد عليك بسرعة 💬.

🔹الطريقة الثانية من خلال مواقع متخصصة

هناك مواقع جاهزة لمساعدتك في الحصول على هذه issues، وأفضلهم بالنسبة لي هذا الموقع: 🔗 goodfirstissues.com فيه فلاتر كثيرة وشعرت أنه يحتوي على issues أكثر من غيره 😅.

من هذا الموقع حصلت على المشاركة الأولى لي 😘

2️⃣ عندما تبحث، افتح كل issues سواء كانت مغلقة أو مفتوحة لماذا؟ هذا يساعدك على معرفة المشاكل التي واجهت الـ repo، فتتعلم كيفية حلها 🔨، مما يزيد من مهاراتك البرمجية 💪 وأيضاً قد تتكرر هذه issue في repos أخرى 🧐، فتعمل issue هناك وتحصل على أول فرصة مشاركة.

3️⃣ يفضل عندما تطلب من maintainer أن يعمل لك assign، أن تشرح له توقعاتك لأسباب المشكلة من نظرتك الأولى، ووضح كيف ممكن تقوم بحلها ✍️.

4️⃣ اقرأ ال guide contribution جيداً قبل البدء في حل المشكلة

5️⃣ إذا حصلت على الـ issue، ابدأ بالعمل عليها مباشرة، لأنه ممكن يسبقك شخص آخر وينهيها 🔄. في حالتي لاحظت issue جديدة وأنا أعمل على ال issue الأولى، فقمت بإبلاغ ال maintainer بذلك، فقال لي انشئ issue جديدة ، وعمل لي assign، ولكن بسسب الظروف الراهنة تأخرت عليه ثم بعد ذلك وجدت شخص آخر قد حل المشكلة

6️⃣ قد تواجه أشياء جديدة لم تعرفها من قبل، في حالتي كان المشروع يعتمد على Docker 🐋 ولم أكن أستخدمه سابقاً، فبدأت أتعلم كيف أتعامل معه 📚.

7️⃣ إذا أرسلت PR وتم مراجعته لكن كان به مشاكل، فقط قم بالتعديل على fork الخاص بك 🛠️ دون إنشاء PR جديد.

8️⃣ عند عمل commit، إذا كان يرفض ذلك بسبب فشل في test لأشياء غير متعلقة بالمشكلة التي تحلها فضع --no-verify آخر أمر ال commit في حالتي كان يرفض commit بسبب فشل في api مع أن المشكلة في UI

9️⃣ إذا فقدت issue أو تم رفض الـ PR، لا تقلق 🚶‍♂️. الهدف هو التعلم والمشاركة 🔄. أحياناً فقدان issue يكون في مصلحتك في حالتي عندما فقدت ال issue الثانية، كانت في مصلحتي لأنها كانت محتاجة نوعاً ما وقت وأيضاًوالشخص الذي أخذ issue مر في مشاكل، أنا مريت بها أيضاً مما ساعدني على تفاديها بسرعة

تصنيفات