🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 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 (কঠোর নিয়ম #21) এবং
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)। - base = সেই
release/vX.Y.Zদিয়ে PR খুলুন।
main দৈনন্দিন ইন্টিগ্রেশন ব্রাঞ্চ নয়। main-এর বিপরীতে খোলা PR-গুলোর
সাধারণত মার্জ করার আগে লক্ষ্য পরিবর্তন করতে হয়।
কোনো রিলিজ সমন্বয় করার সময় 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-এর base হিসেবে কাজ করে |
ট্যাগ vX.Y.Z |
চিরস্থায়ী | npm / GitHub Releases-এ প্রকাশিত সুনির্দিষ্ট বিটগুলো চিহ্নিত করে |
ব্রাঞ্চটি হলো কর্মশালা; ট্যাগটি হলো সিল করা প্যাকেজ। main-এ squash-merge করার পর,
আগের রিলিজ PR শেষ হওয়ার অপেক্ষা না করেই পরবর্তী চক্র release/vX+1-এ চলতে থাকে।
- CONTRIBUTING.md — সেটআপ, পরীক্ষা, PR চেকলিস্ট
- RELEASE_CHECKLIST.md — প্রকাশের আগের যাচাই
- MERGE_TRAIN.md — মার্জ কিউ এবং বিকল্প ট্রেন
- RELEASE_GREEN.md — রিলিজের সর্বশেষ প্রান্তকে সবুজ রাখা