Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 10.6 KB

BRANCHING_MODEL.md

File metadata and controls

79 lines (57 loc) · 10.6 KB

Branching & Release Model (বাংলা)

🌐 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 তৈরি"]
Loading

আমার PR-এর লক্ষ্য কোনটি হওয়া উচিত?

সক্রিয় release/vX.Y.Z ব্রাঞ্চকে লক্ষ্য করুন — main-কে নয়।

  1. সর্বোচ্চ খোলা release/v* ব্রাঞ্চটি খুঁজুন (লেখার সময়কার উদাহরণ: release/v3.8.49)।
  2. সেই সর্বশেষ প্রান্ত থেকে ব্রাঞ্চ তৈরি করুন (git fetch + checkout / তার ওপর rebase)।
  3. 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 — রিলিজের সর্বশেষ প্রান্তকে সবুজ রাখা