Skip to main content

Versioning

Semantic Versioning​

tokens/bgrimm.tokens.json มีเลขเวอร์ชันของตัวเองใน meta.version (semver — MAJOR.MINOR.PATCH):

ระดับเมื่อไหร่
MAJORลบ/เปลี่ยนชื่อ token ที่มีอยู่แล้ว, เปลี่ยนความหมายของ token เดิม (breaking change)
MINORเพิ่ม token ใหม่โดยไม่กระทบของเดิม (เช่น เพิ่มสี accent ใหม่)
PATCHแก้ค่าเล็กน้อยที่ไม่เปลี่ยนโครงสร้าง (เช่นปรับ hex ให้ตรง Pantone มากขึ้น)

Breaking Change ต้องแจ้งใครก่อน Merge​

ก่อน merge MAJOR change เข้า main ต้องแจ้งทุกทีมที่ consume token ล่วงหน้า:

  1. Panupong (panupong.p@bgrimmpower.com) — ผู้อนุมัติสุดท้ายเสมอ (ดู Contact & Changelog)
  2. ทีม/โปรเจกต์ที่ import bgrimm.tokens.json เข้า Tailwind/MUI/Figma โดยตรง — เพราะ token ที่ถูกลบ/เปลี่ยนชื่อจะทำให้ build โปรเจกต์นั้นพังหรือหน้าตาเพี้ยนแบบเงียบๆ (silent breakage)

Deprecation Policy​

  • Token เก่าที่จะถูกแทนที่ ให้ คงไว้อย่างน้อย 1 MINOR version ก่อนลบจริงใน MAJOR ถัดไป — ทำเครื่องหมายด้วย field "deprecated": true และชี้ทางไปยัง token ใหม่ในหมายเหตุ
  • ห้ามลบ token แล้วเพิ่มชื่อใหม่ในเวอร์ชันเดียวกันโดยไม่มีช่วง deprecated คั่น — โปรเจกต์ที่ pin เวอร์ชันเก่าไว้จะพังทันทีตอนอัปเดต
  • เมื่อ token ถูกลบจริง ให้บันทึกไว้ใน Changelog พร้อมเวอร์ชันที่ลบและ token ทดแทน

ตัวอย่างเส้นทางเปลี่ยนแปลงที่ปลอดภัย​

v1.0.0  เพิ่ม color.primary-light  (MINOR, ไม่กระทบใคร)
v1.1.0 ต้องการเปลี่ยนชื่อ color.primary-light → color.primary-soft
→ เพิ่ม color.primary-soft ใหม่ + mark color.primary-light เป็น deprecated (MINOR)
v2.0.0 ลบ color.primary-light ที่ deprecated แล้วจริง (MAJOR, แจ้งล่วงหน้าตามขั้นตอนด้านบน)