آموزش زبان انگلیسی (دورهٔ ۹۰ درسی) · درس ۸۷ از ۹۰

متن‌باز به انگلیسی؛ issue، PR و فرهنگِ کامیونیتی

⚡ پاسخ کوتاه

متن‌باز، اولین میدانِ بین‌المللیِ توست: قاعده‌ها آویخته‌اند (CONTRIBUTING.md بخوان!), issueی خوب، مسئله+بازسازی+نسخه است, و PRی خوب، کوچک+توضیح‌دار+صبور. جملهٔ طلایی: "Happy to adjust — this is my first contribution here." متن‌باز، گفتارِ داوطلبانه با غریبه‌های مهربانِ مشغول است.

درس ۸۷ از ۹۰ — متن‌باز به انگلیسی؛ issue، PR و فرهنگِ کامیونیتی

متن‌باز، برای مهندسِ فارسی‌زبان، فرصتِ بی‌نظیری است: رزومهٔ بین‌المللی، تمرینِ زبانیِ واقعی (با 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 را می‌سازد.

First time contributing here — let me know if I'm missing any conventions. I'd like to take a shot at the docs rewrite for the CLI section; I'm a daily user, and the current examples tripped me up on my first day. Happy to adjust the scope however fits the roadmap.اولین مشارکتم این‌جاست — اگه قراردادی رو از قلم انداختم بگید. دوست دارم روی بازنویسیِ داکِ بخشِ CLI کار کنم؛ کاربرِ روزانه‌ام و مثال‌های فعلی روزِ اول لالاییم کرد. با کمالِ میل دامنه رو هر جور که با رودمپ بخونه تنظیم می‌کنم.

گفتگو: issue، PR و یک مرجِ خوش‌یمن

Maintainer: The PR looks solid, but we prefer tests in a separate file. — You: Makes sense — moved, and pushed. Happy to adjust anything else that doesn't match the house style.نگه‌دارنده: PR محکمه، ولی تست‌ها رو تو فایلِ جدا می‌پسندیم. — تو: منطقیه — منتقل و پوش شد. هر چیزِ دیگه‌ای هم که با سبکِ خونه جور نبود، با کمالِ میل اصلاح می‌کنم.
Maintainer: Merged. Thanks for the clean contribution — and for reading the contributing guide first! — You: It's a good guide! Honestly, the "small PR" section saved us both a review round.نگه‌دارنده: مرج شد. ممنون بابت مشارکتِ تمیز — و اینکه اول CONTRIBUTING رو خوندی! — تو: راهنمای خوبیه! راستش بخشِ «PR کوچک» یه دورِ ریلویو رو از هر دومان گرفت.
You: If the docs rewrite sounds useful, I'll open an issue this weekend to scope it — no rush. — Maintainer: Yes please — docs contributions are our favorite kind of surprise.تو: اگه بازنویسیِ داک به‌دردبخور به نظر میاد، آخرِ هفته برای تعیینِ دامنه‌ش issue می‌زنم — عجله‌ای نیست. — نگه‌دارنده: لطفاً — مشارکتِ داکی، محبوب‌ترین سورپرایزِ ماست.

اشتباه‌های رایجِ فارسی‌زبان‌ها در همین درس

این بخش را با یک قرارداد بخوان: هر ❌ یعنی «مغزِ فارسی‌زبانت این را می‌سازد و طبیعی است»، و هر ✅ یعنی «این همان چیزی است که گیرندهٔ انگلیسی‌زبان می‌شنود». خطاها اثرِ مستقیمِ ترجمهٔ ذهنیِ فارسی به انگلیسی‌اند؛ با هر جفت بلند تکرار کن تا شکلِ درست در گوشت نشست کند.

❌ When will you fix this bug? It is very important for us.❌ روتینِ فارسیِ پشتیبانی مستقیم ترجمه می‌شود: «کی درستش می‌کنید؟ برایِ ما مهم است.» اما متن‌باز داوطلبانه است؛ نگه‌دارنده پیمانکارِ تو نیست. جملهٔ تقاضا، issue را در صفِ سرد می‌خواباند؛ جملهٔ داوطلب، درِ مرج را باز می‌کند.
✅ Not sure if this is a bug or intended behavior — happy to close if it's a duplicate. If it's in scope, I'd like to take a shot at a fix.✅ شکل درست را دو بار بلند بگو؛ حالا یک بار در یک جملهٔ خودت.
❌ I prepared one big PR: 3000 lines — new feature, docs, and refactor all together.❌ ذهنِ ما «کارِ بزرگ، PRِ بزرگ» را نشانِ جدیت می‌داند؛ فرهنگِ متن‌باز برعکس می‌خواند: PRِ کوچک هدیه است، PRِ غول‌آسا بارِ ریلویو. کسی که سه‌هزار خط می‌فرستد، عملاً «بعداً نگاه می‌کنم» خریده است.
✅ I've split the work into three small PRs — the docs fix first, then the feature, then the refactor.✅ شکل درست را دو بار بلند بگو؛ حالا یک بار در یک جملهٔ خودت.
❌ Sorry for my bad English and sorry if my question bothers you.❌ عذرخواهیِ زنجیره‌ای از ادبِ فارسی می‌آید اما سیگنالِ بی‌اعتمادی می‌فرستد و سؤال را بی‌وزن می‌کند. سنجاقِ درست فقط یک جمله است: اعلامِ تازگی + دعوت به اصلاح — صداقتِ حرفه‌ای، نه خودکمتی.
✅ First time contributing here — let me know if I'm missing any conventions. Happy to adjust anything.✅ شکل درست را دو بار بلند بگو؛ حالا یک بار در یک جملهٔ خودت.

تمرین‌های این درس — چهار قدم، بی‌عجله

تمرینِ این درس، نوشتن مثل داوطلبِ محترمِ متن‌باز است؛ هر چهار را اول خودت بنویس، بعد پاسخ را باز کن.

  1. اولین کامنتِ issue یا PR را بنویس: اعلامِ اولین مشارکت + دعوت به اصلاحِ قراردادها.
  2. زبانِ تقاضا را به زبانِ داوطلب بازنویسی کن: «Please fix this bug soon, it is urgent for us.»
  3. نگه‌دارنده می‌گوید: «We prefer tests in a separate file.» — جوابِ استاندارد را بده.
  4. PRِ دو‌هزارخطی‌ات هفته‌ها بی‌جواب مانده. پیامِ بازساختار را بنویس.

پاسخ تمرین‌ها — اول خودت جواب بده، بعد باز کن

پاسخ تمرین ۱
"First time contributing here — let me know if I'm missing any conventions. I'd like to take a shot at fixing the CLI docs; happy to adjust the scope to fit the roadmap." سنجاقِ طلایی: تازگی + پیشنهاد + انعطاف؛ نصفِ اعتمادِ نگه‌دارنده همین‌جا ساخته می‌شود.
پاسخ تمرین ۲
"Not sure if this is intended behavior — here's a minimal repro. If it's a real bug, I'd be happy to take a shot at the fix." تقاضا تبدیل می‌شود به مشاهدهٔ دقیق + دستِ کمکی؛ در متن‌باز داوطلب اول می‌نشیند و متقاضی آخر — همین ترتیب، نتیجه را عوض می‌کند.
پاسخ تمرین ۳
"Makes sense — moved and pushed. Happy to adjust anything else that doesn't match the house style." سه حرکتِ کوتاه: پذیرش، گزارشِ انجام، بازبودنِ ادامه — بدونِ دفاع از خود و بدونِ عذرخواهیِ اضافه.
پاسخ تمرین ۴
"This grew bigger than any review should be — I'm splitting it into three small PRs (docs, fix, refactor) so each can land on its own. Closing for now; the smaller ones follow today." کوچک‌سازیِ داوطلبانه، امتیاز است نه عقب‌نشینی؛ نگه‌دارنده‌ها این پیام را نشانهٔ حرفه‌ای‌بودن می‌خوانند.

چالشِ امروز

🎯 این هفته در یک پروژهٔ متن‌بازی که واقعاً استفاده می‌کنی، یک issue کوچکِ داکی یا تایپویی پیدا کن و با همان جملهٔ «First time contributing here…» کامنت بگذار — اولین مشارکت هرقدر کوچک، همان‌قدر واقعی است.

نکات مکالمهٔ واقعی که کتاب‌ها کم می‌گویند

  • CONTRIBUTING را قبل از کد بخوان — ده دقیقه آیین‌خوانی، یک هفته ریلویو می‌خرد — و جمله‌اش را در PR بگو؛ نگه‌دارنده می‌بیند و اعتماد می‌کند.
  • first time contributing را سنجاق کن — اعلامِ تازگی + پرسیدنِ قرارداد — عذرخواهی نه، صادقانه‌کاریِ حرفه‌ای؛ لحنِ کلِ گفتگو را نرم می‌کند.
  • داک، دروازهٔ مرج — اولین مشارکتِ جدی‌ات را داکی بگذار — سریع‌ترین مرج، بی‌ترین بحث، و اسمت در contributors.
🔑 جمع‌بندی این درس

متن‌باز = CONTRIBUTING بخوان + issueی رفتاری با رپرو و جست‌وجوی قبلی + پیش‌موافقت برای PRهای غیرِساده + PRِ کوچکِ توضیح‌دار + bumpِ نرم و ردِ سبک‌قلب + کمک در issueهای دیگران (Reproduced on…) + داک‌نویسی به‌عنوان دروازهٔ مرج. لحنِ همیشگی: داوطلبِ مهربان با غریبه‌های مشغول — و همین، رزومهٔ جهانی‌ات را خط‌به‌خط می‌سازد.

پرسش‌های رایج

maintainer با من تند برخورد کرد!
سه واقعیت: نگه‌دارندهٔ متن‌باز معمولاً خسته و بی‌پول است، تندی‌اش اغلب به کدِ توست نه به تو، و هر پروژهٔ بزرگ، صد «کمکی» ناشی در ماه جابه‌جا می‌کند. پاسخِ حرفه‌ای: فقط محتوا را جواب بده، نه لحن را: **"Fair points — I've split the PR and answered the comments inline. Thanks for taking the time."** (نکته‌های درستی بودن — PR رو Split کردم و کامنت‌ها رو خط‌به‌خط جواب دادم. ممنون که وقت گذاشتید.) اگر لحنِ تند به الگوی تهاجمی/شخصی رسید، همان آیینِ درس ۵۶ (ریلویوی تند) — و در متن‌باز، فاصله‌گیریِ محترمانه هم حق است: PR را ببند و به پروژهٔ مهربان‌تر برو. کامیونیتی درازمدت، به رفتارِ تو ادامه می‌دهد نه به تحملِ تندِ بی‌حرفه.
برای رزومه، کدام پروژه‌ها؟ از کجا شروع کنم؟
دو معیارِ انتخاب: **ابزاری که واقعاً استفاده می‌کنی** (زمینه و انگیزه‌اش واقعی می‌شود) و **کامیونیتی‌ای که فعال اما نه غرق** است (issueها جواب می‌گیرند اما صف ماهانه نیست). شروعِ عملیِ امروزی: یک good first issue در ابزارِ روزمره‌ات (CLI، کتابخانهٔ API, اکستنشنِ ادیتور), یا خودت «دروازه» بساز: داکِ ترجمه، مثالِ گام‌به‌گام، تستِ خواب‌آلود. سه ماهِ پایدارِ صدخط مشارکت، در لینکداین از سه گواهینامهٔ دورهٔ الکی سنگین‌تر است — و مصاحبه‌گرهای فنی، دقیقاً همین را می‌پرسند: "Tell me about your open-source contribution."

انگلیسی را همین امروز در گوشی‌ات تمرین کن

واژه‌های این درس را هر جا که دیدی با منوی «ذخیره در آپ‌ورد» به فلش‌کارت‌هایت اضافه کن؛ الگوریتم مرور فاصله‌دار سرِ موعد یادآوری‌شان می‌کند، تلفظ‌شان را می‌شنوی و در مکالمهٔ هوش مصنوعی همان‌جا که لازم است استفاده‌شان می‌کنی.