🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute از مدل انتشار چرخههای موازی استفاده میکند: یک شاخهٔ اختصاصی release/vX.Y.Z
برای چرخهٔ فعال، main برای خط منتشرشده و یک تگ تغییرناپذیر
vX.Y.Z هنگام انتشار آن چرخه. مشاهدهٔ ثبت شدن کامیتها هم در release/* و هم در
main طبیعی است — این موضوع ناشی از اشتباه نیست.
جزئیات ویژهٔ نگهدارندگان در CLAUDE.md (قانون سختگیرانهٔ شمارهٔ ۲۱) و
RELEASE_CHECKLIST.md آمده است. این صفحه خلاصهای عمومی
برای مشارکتکنندگان است.
| مرجع | نقش |
|---|---|
release/vX.Y.Z |
چرخهٔ فعال — توسعهٔ روزمره و ادغام PRها برای آن نسخه |
main |
خط منتشرشده — هنگام انتشار، چرخه را از طریق squash-merge دریافت میکند |
vX.Y.Z (تگ) |
نشانگر انتشار — اشارهگری تغییرناپذیر به «آنچه منتشر شده است» که هنگام انتشار ایجاد میشود |
flowchart LR
A["شاخهٔ feat/fix"] --> B["PR → release/vX.Y.Z"]
B --> C["نوک release/vX.Y.Z"]
C --> D["PR انتشار با squash-merge → main"]
D --> E["تگ vX.Y.Z"]
C --> F["چرخهٔ بعدی: ایجاد release/vX+1 از نوک منجمدشده"]
شاخهٔ فعال release/vX.Y.Z را هدف قرار دهید — نه main را.
- بالاترین شاخهٔ باز
release/v*را پیدا کنید (نمونه در زمان نگارش:release/v3.8.49). - شاخهٔ خود را از نوک آن ایجاد کنید (
git fetchو سپس checkout یا rebase روی آن). - PR را با base = همان
release/vX.Y.Zباز کنید.
main شاخهٔ یکپارچهسازی روزمره نیست. PRهایی که به مقصد main
باز میشوند، معمولاً پیش از ادغام باید به شاخهٔ دیگری هدایت شوند.
هنگامی که یک انتشار در حال تطبیق نهایی است، یک issue نشانگر با برچسب release-freeze
باز میشود. این کار توسعه را متوقف نمیکند:
- شاخهٔ منجمدشدهٔ
release/vX.Y.Zبرای آن انتشار در اختیار مسئول انتشار است. - چرخهٔ بعدی، یعنی
release/vX+1، از نوک منجمدشده ایجاد میشود تا مشارکتکنندگان بتوانند به ثبت تغییرات خود ادامه دهند. - PRهای بازی که همچنان شاخهٔ منجمدشده را هدف قرار دادهاند، باید به شاخهٔ فعال
release/v*(بالاترین نسخه) هدایت مجدد شوند.
پیش از اینکه فرض کنید شاخهٔ موردنظر شما قابل ادغام است، وجود توقف موقت باز را بررسی کنید:
gh issue list --repo diegosouzapw/OmniRoute --label release-freeze --state openسازوکار ادغام (برچسب queue توسط مالک → Mergify) در
MERGE_TRAIN.md مستند شده است.
| مصنوع | طول عمر | هدف |
|---|---|---|
release/vX.Y.Z |
چرخهٔ در حال انجام | PRهای بازبینیشده را جمعآوری میکند، وضعیت سبز CI را حفظ میکند و شاخهٔ پایهٔ PRها است |
تگ vX.Y.Z |
همیشگی | بیتهای دقیقی را که در npm / GitHub Releases منتشر شدهاند، مشخص میکند |
شاخه کارگاه است؛ تگ بستهٔ مهرومومشده. پس از squash-merge در
main، چرخهٔ بعدی روی release/vX+1 ادامه پیدا میکند، بدون اینکه منتظر تکمیل
PR انتشار قبلی بماند.
- CONTRIBUTING.md — راهاندازی، آزمونها و چکلیست PR
- RELEASE_CHECKLIST.md — اعتبارسنجی پیش از انتشار
- MERGE_TRAIN.md — صف ادغام و قطار جایگزین
- RELEASE_GREEN.md — سبز نگهداشتن نوک شاخهٔ انتشار