متنباز به انگلیسی؛ issue، PR و فرهنگِ کامیونیتی
متنباز، اولین میدانِ بینالمللیِ توست: قاعدهها آویختهاند (CONTRIBUTING.md بخوان!), issueی خوب، مسئله+بازسازی+نسخه است, و PRی خوب، کوچک+توضیحدار+صبور. جملهٔ طلایی: "Happy to adjust — this is my first contribution here." متنباز، گفتارِ داوطلبانه با غریبههای مهربانِ مشغول است.
متنباز، برای مهندسِ فارسیزبان، فرصتِ بینظیری است: رزومهٔ بینالمللی، تمرینِ زبانیِ واقعی (با maintainers از ده کشور) و شبکه — همه در بستری که هیچکس از لهجهات چیزی نمیخواهد، فقط از «قانوندانیات». این درس، آییننامهٔ رفتار را میدهد: از issueی اول تا PRی مرجشده.
نکتهٔ راهبردی: اولین مشارکت را «good first issue» انتخاب کن و کوچک نگهاش دار — داکنویسی و تستِ شکسته، دو دروازهٔ طلایی ورودند.
Issue؛ گزارشی که maintainers دوستش دارند
قالبِ issueی خوب (همان فرمولِ درس ۵۷ + آیینِ متنباز): عنوانِ رفتاری: "Crash on empty input when using --json flag" نهِ «HELP!!». بدنه: What happened / What I expected / Steps to reproduce / Environment (نسخهها) / منطقِ تلاش ("I checked the docs and the existing issues — closest is #432 but different because…"). و پیش از فرستادن: جستوجوی issueهای موجود — در کامیونیتیهای بزرگ، issueی تکراری، اولین سیگنالِ «قوانین نخوانده» است. جملهٔ آغازِ issue: "Not sure if this is a bug or intended behavior — happy to close if it's a duplicate." (نمیدونم باگه یا رفتارِ موردنظره — اگه تکراریه با کمالِ میل میبندمش.) — همین یک خط، لحنِ کلِ گفتگو را حرفهای میکند.
PR؛ کوچک، توضیحدار، صبور
پنج آیینِ PRی متنباز: ۱) پیش از کد، بپرس: برای هر چیزی غیرِ trivial، اول issue بزن: "I'd like to take a shot at this — does the approach sound right?" (دوست دارم روشنش کنم — رویکرد درست به نظر میاد؟) — کدِ هفتهکارِ تو بدونِ موافقتِ قبلی، بهندرت مرج میشود. ۲) کوچک بمان: PRی ۴۰خطی مرج میشود؛ ۴۰۰خطی قبر میشود. ۳) توضیحِ What/Why بنویس (قالبِ درس ۵۴). ۴) تست و CHANGELOG اگر پروژه میخواهد. ۵) صبور و سبکقلب باش: reviewهای متنباز کندند؛ پیامِ دو-هفتهایِ مؤدبانه: "Gentle bump — still happy to work on this if there's interest :)" (یادآوریِ نرم — هنوز با کمالِ میل ادامه میدم اگه استقبال هست :) و اگر رد شد با نکته: "That makes sense — thanks for the explanation. Closing for now, but I learned something useful for next time." — ردِ محترمانه در متنباز، پایانِ مکالمه است نه پایانِ رابطه.
کامیونیتی و ثبتِ حضور؛ از consumer تا contributor
نردبانِ حضور: مصرفکننده ← گزارشدهنده ← fixer ← فاعلِ فنی. دو اقدامِ ثبتِ حضور که کمتر کسی میکند: ۱) issueهای دیگران را کمک کن — اگر رپرویسی کردی: "Reproduced on 2.3.1, Ubuntu 24 — added my trace below." (روی ۲/۳/۱ و اوبونتو ۲۴ بازسازی شد — ترسم پایینه.) — این یک خط، برای maintainer طلاست و برای تو، عضویت. ۲) داک بنویس: داکِ متنباز همیشه گرسنه است؛ PRِ داکِ بهبودیافته، سریعترین مرجِ دنیاست و اسمت را در contributors مینشاند. و در تعامل: آیینِ خودت را با امضای گرم بچسبان: "Thanks for maintaining this — it saves our team hours every week." (ممنون که نگهش میداری — هر هفته ساعتها به تیمِ ما میبخشه.) — maintainers با انگیزهٔ همین جملهها زنده میمانند؛ تو هم با همین جملهها، شناخته میشوی.
گرامرِ عمیقتر: زبانِ محترمانهٔ متنباز — مؤدبانههای داوطلبانه
متنباز، زبانِ «داوطلبِ محترم» دارد: I'd like to take a shot at this (دوست دارم روشش کار کنم — نهِ «I will do it» — تواضعِ مشارکت), Happy to adjust (با کمالِ میل اصلاح میکنم — جوابِ استانداردِ کامنتِ ریلویو), Not sure if this is a bug or intended behavior — happy to close if it's a duplicate (نمیدانم باگه یا عمدی — اگر تکراریه با کمالِ میل میبندمش). و سنجاقِ اول: "First time contributing here — let me know if I'm missing conventions" (اولین مشارکتم اینجاست — اگر قراردادی را از قلم انداختم بگویید) — همین یک جمله، نصفِ قضاوتِ مثبتِ maintainer را میسازد.
گفتگو: issue، PR و یک مرجِ خوشیمن
اشتباههای رایجِ فارسیزبانها در همین درس
این بخش را با یک قرارداد بخوان: هر ❌ یعنی «مغزِ فارسیزبانت این را میسازد و طبیعی است»، و هر ✅ یعنی «این همان چیزی است که گیرندهٔ انگلیسیزبان میشنود». خطاها اثرِ مستقیمِ ترجمهٔ ذهنیِ فارسی به انگلیسیاند؛ با هر جفت بلند تکرار کن تا شکلِ درست در گوشت نشست کند.
تمرینهای این درس — چهار قدم، بیعجله
تمرینِ این درس، نوشتن مثل داوطلبِ محترمِ متنباز است؛ هر چهار را اول خودت بنویس، بعد پاسخ را باز کن.
- اولین کامنتِ issue یا PR را بنویس: اعلامِ اولین مشارکت + دعوت به اصلاحِ قراردادها.
- زبانِ تقاضا را به زبانِ داوطلب بازنویسی کن: «Please fix this bug soon, it is urgent for us.»
- نگهدارنده میگوید: «We prefer tests in a separate file.» — جوابِ استاندارد را بده.
- PRِ دوهزارخطیات هفتهها بیجواب مانده. پیامِ بازساختار را بنویس.
پاسخ تمرینها — اول خودت جواب بده، بعد باز کن
پاسخ تمرین ۱
پاسخ تمرین ۲
پاسخ تمرین ۳
پاسخ تمرین ۴
چالشِ امروز
🎯 این هفته در یک پروژهٔ متنبازی که واقعاً استفاده میکنی، یک issue کوچکِ داکی یا تایپویی پیدا کن و با همان جملهٔ «First time contributing here…» کامنت بگذار — اولین مشارکت هرقدر کوچک، همانقدر واقعی است.
نکات مکالمهٔ واقعی که کتابها کم میگویند
- CONTRIBUTING را قبل از کد بخوان — ده دقیقه آیینخوانی، یک هفته ریلویو میخرد — و جملهاش را در PR بگو؛ نگهدارنده میبیند و اعتماد میکند.
- first time contributing را سنجاق کن — اعلامِ تازگی + پرسیدنِ قرارداد — عذرخواهی نه، صادقانهکاریِ حرفهای؛ لحنِ کلِ گفتگو را نرم میکند.
- داک، دروازهٔ مرج — اولین مشارکتِ جدیات را داکی بگذار — سریعترین مرج، بیترین بحث، و اسمت در contributors.
متنباز = CONTRIBUTING بخوان + issueی رفتاری با رپرو و جستوجوی قبلی + پیشموافقت برای PRهای غیرِساده + PRِ کوچکِ توضیحدار + bumpِ نرم و ردِ سبکقلب + کمک در issueهای دیگران (Reproduced on…) + داکنویسی بهعنوان دروازهٔ مرج. لحنِ همیشگی: داوطلبِ مهربان با غریبههای مشغول — و همین، رزومهٔ جهانیات را خطبهخط میسازد.