Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 11 KB

BRANCHING_MODEL.md

File metadata and controls

81 lines (59 loc) · 11 KB

Branching & Release Model (ខ្មែរ)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇮🇳 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 ដែលមិនអាចកែប្រែបាន នៅពេលវដ្តនោះត្រូវបានចេញផ្សាយ។ ការឃើញ commit ចូលទៅក្នុង release/* និង ក្នុង main គឺជាអ្វីដែលបានរំពឹងទុក — មិនមែនជាការភាន់ច្រឡំទេ។

ព័ត៌មានលម្អិតសម្រាប់អ្នកថែទាំមាននៅក្នុង CLAUDE.md (វិធានតឹងរឹង #21) និង RELEASE_CHECKLIST.md។ ទំព័រនេះគឺជាសេចក្តីសង្ខេបសាធារណៈ សម្រាប់អ្នកចូលរួមចំណែក។

ទិដ្ឋភាពសង្ខេប

Ref តួនាទី
release/vX.Y.Z វដ្តសកម្ម — ការអភិវឌ្ឍប្រចាំថ្ងៃ និងការ merge 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. បើក PR ដោយកំណត់ base = release/vX.Y.Z នោះ។

main មិនមែនជាសាខាសមាហរណកម្មប្រចាំថ្ងៃទេ។ PR ដែលបើកប្រឆាំងនឹង main ជាទូទៅត្រូវកំណត់គោលដៅឡើងវិញមុនពេល merge។

ការបង្កកការចេញផ្សាយ (វដ្តស្របគ្នា)

នៅពេលការចេញផ្សាយកំពុងត្រូវបានផ្ទៀងផ្ទាត់ នឹងមានការបើក issue សម្គាល់មួយដែលមានស្លាក release-freeze។ វា មិនបញ្ឈប់ការអភិវឌ្ឍទេ៖

  • release/vX.Y.Z ដែលបានបង្កក ស្ថិតក្រោមការគ្រប់គ្រងរបស់ប្រធានការចេញផ្សាយសម្រាប់ការដាក់ឱ្យប្រើនោះ។
  • release/vX+1 របស់វដ្តបន្ទាប់ត្រូវបានបង្កើតពីចុងសាខាដែលបានបង្កក ដើម្បីឱ្យអ្នកចូលរួមចំណែកអាចបន្ត បញ្ចូលការងារ។
  • PR ដែលនៅតែកំណត់គោលដៅទៅសាខាដែលបានបង្កក គួរត្រូវបាន កំណត់គោលដៅឡើងវិញ ទៅសាខា release/v* ដែលសកម្ម (ខ្ពស់បំផុត)។

ពិនិត្យមើលថាតើមានការបង្កកដែលបើកឬអត់ មុននឹងសន្មត់ថាសាខាដែលអ្នកចង់បានអាច merge បាន៖

gh issue list --repo diegosouzapw/OmniRoute --label release-freeze --state open

យន្តការ merge (ស្លាក queue របស់ម្ចាស់ → Mergify) ត្រូវបានចងក្រងជាឯកសារនៅក្នុង MERGE_TRAIN.md។

ហេតុអ្វីត្រូវមានទាំងសាខា និងស្លាក?

វត្ថុបង្កើត រយៈពេលប្រើប្រាស់ គោលបំណង
release/vX.Y.Z វដ្តកំពុងដំណើរការ ប្រមូល PR ដែលបានពិនិត្យ រក្សាស្ថានភាព CI ឱ្យជោគជ័យ និងជាមូលដ្ឋានរបស់ PR
ស្លាក vX.Y.Z ជារៀងរហូត សម្គាល់ bits ជាក់លាក់ដែលបានចេញផ្សាយទៅ npm / GitHub Releases

សាខាគឺជាកន្លែងធ្វើការ; ស្លាកគឺជាកញ្ចប់ដែលបានបិទជិត។ បន្ទាប់ពី squash-merge ទៅ main វដ្តបន្ទាប់បន្តនៅលើ release/vX+1 ដោយមិនចាំបាច់រង់ចាំឱ្យ PR នៃការចេញផ្សាយមុនបញ្ចប់ទេ។

ឯកសារពាក់ព័ន្ធ

  • CONTRIBUTING.md — ការដំឡើង ការធ្វើតេស្ត បញ្ជីត្រួតពិនិត្យ PR
  • RELEASE_CHECKLIST.md — ការផ្ទៀងផ្ទាត់មុនដាក់ឱ្យប្រើ
  • MERGE_TRAIN.md — ជួរ merge និងដំណើរការបម្រុង
  • RELEASE_GREEN.md — ការរក្សាចុងសាខាចេញផ្សាយឱ្យមានស្ថានភាពជោគជ័យ