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 ล่วงหน้า:
- Panupong (panupong.p@bgrimmpower.com) — ผู้อนุมัติสุดท้ายเสมอ (ดู Contact & Changelog)
- ทีม/โปรเจกต์ที่ 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, แจ้งล่วงหน้าตามขั้นตอนด้านบน)