กระบวนการออกรุ่น · Release process

View raw
On this page

กระบวนการนี้สรุปจากการออกรุ่นจริง v0.1.0–v0.3.0 (ดู SUBSYSTEM-HISTORY.md) และใช้ Semantic Versioning + Keep a Changelog

รูปแบบ branch และ commit#

  • งานแต่ละชุดทำบน feature branch: feat/ui-framework (v0.2.0), feat/cloudflare-production (v0.3.0), feat/terminal-theme (v0.4–v0.5)
  • commit แบบ Conventional Commits: feat:, fix:, style:, docs:, test:, build:, chore(deps):, chore(release):/release:, refactor:
  • แยก commit ตามเหตุผล (เช่น deps → tokens → components → tests → docs) เพื่อให้ review และ revert ได้ทีละส่วน
  • merge เข้า main แบบ merge commit (--no-ff) เช่น 1c5aca8, 510048b แล้วติด tag ที่ merge commit

ขั้นตอนออกรุ่น#

  1. ตรวจครบ: npm run lint && npm run typecheck && npm test && npm run docs:check && npm run cf:build
  2. ทดสอบในเบราว์เซอร์ บน npm run preview และเก็บภาพหน้าจอใน screenshots/v<x.y>/
  3. CHANGELOG: ย้ายรายการจาก [Unreleased] ไปหัวข้อ [x.y.z] - YYYY-MM-DD แยก Added / Changed / Fixed / Removed และอัปเดตลิงก์เปรียบเทียบท้ายไฟล์
  4. version: แก้ "version" ใน package.json (และ lockfile ด้วย npm install --package-lock-only)
  5. เอกสาร: อัปเดต README (ภาพหน้าจอ), DEPLOY.md (สถานะ), SUBSYSTEM-HISTORY.md (แถวใหม่ต่อ subsystem), platform-manifest.json ถ้า subsystem/คำสั่ง/env เปลี่ยน
  6. commit chore(release): x.y.z
  7. ขออนุมัติ merge เข้า main จากเจ้าของ แล้ว git merge --no-ff + git tag -a vX.Y.Z -m "<สรุป>"
  8. deploy (ถ้าได้รับอนุมัติแยก) ตาม deploy-cloudflare.md บันทึก version id
  9. push (ถ้าได้รับอนุมัติแยก) git push origin main --tags

สิ่งที่ต้องได้รับอนุมัติจากมนุษย์เสมอ#

merge เข้า main, deploy, push, การผูกโดเมน, การลบ resource ใด ๆ, การเปลี่ยน layout/โครงสร้างหน้า การอนุมัติหนึ่งเรื่องไม่ครอบคลุมเรื่องอื่น (เช่น อนุมัติ deploy ไม่ได้แปลว่าอนุมัติ push)

สถานะปัจจุบัน#

  • main = v0.5.0 (tag v0.5.0 บน release commit หลัง merge 61445c5 ของ feat/terminal-theme) ต่อด้วย v0.5.1 (โดเมน devstack.bid) และ deploy เป็น production ที่ https://devstack.bid แล้ว
  • v0.4 ไม่ถูกออกเป็นรุ่นแยก เพราะ v0.5 แทนที่ดีไซน์ v0.4 ทั้งหมด
  • deploy v0.3.0 เดิม (agen-sdk-work.workers.dev) ยังเปิดอยู่และไม่ถูกแก้ไข

Hotfix#

แตก branch จาก tag ล่าสุดที่ deploy (git switch -c fix/<เรื่อง> v0.5.0), แก้ + test, ออก v0.5.1 ตามขั้นตอนเดียวกัน แล้ว merge กลับเข้า feature branch ที่ค้างอยู่ ถ้าเร่งด่วนมากให้ rollback ก่อนแล้วค่อยแก้

Source: docs/contributing/release-process.md · /docs/contributing/release-process.md