ไม่มีชื่อบทความ
ประโยคที่ว่า
"ถ้ามี breaking change ให้ใส่
!เช่น:"
หมายถึงว่า ถ้า commit นั้นมีการเปลี่ยนแปลงที่ “ทำให้ code ที่เคยใช้ได้ในเวอร์ชันก่อนหน้า ใช้ไม่ได้อีก” (เรียกว่า breaking change)
ให้ใส่เครื่องหมาย ! ไว้ ก่อน : ใน commit message เพื่อ แจ้งเตือนอัตโนมัติ ว่านี่คือจุดสำคัญมาก
✅ ตัวอย่างการใส่ !
refactor(packages/ui)!: เปลี่ยนชื่อคอมโพเนนต์ Button → GohigButton
!= แจ้งว่า breaking change- เช่น โค้ดเก่าที่ใช้
<Button />จะพังในเวอร์ชันนี้
🔥 ทำไมต้องใส่ !
ใช้ร่วมกับ semantic release หรือ release tools ที่จะ:
- bump major version (v2 → v3)
- generate changelog พร้อม
BREAKING CHANGE:section
เป็นการช่วยเตือนผู้ใช้ library ว่าอาจต้องแก้โค้ด
🧠 เงื่อนไขของ breaking change
| สถานการณ์ | ถือว่า breaking ไหม |
|---|---|
| เปลี่ยนชื่อ function | ✅ ใช่ |
| ลบ argument | ✅ ใช่ |
| เปลี่ยน return type | ✅ ใช่ |
| เพิ่ม argument ที่ไม่มี default | ✅ ใช่ |
| เพิ่มฟีเจอร์ใหม่ แต่ไม่กระทบของเก่า | ❌ ไม่ใช่ |
| เพิ่ม option ใหม่ใน config ที่มี default | ❌ ไม่ใช่ |
🗒 เพิ่มเติม
ถ้าคุณใช้ Conventional Commits และใส่ ! แล้ว
สามารถเพิ่มรายละเอียดใน body ได้แบบนี้:
feat(packages/api)!: เปลี่ยน API endpoint จาก /v1 → /v2
BREAKING CHANGE: endpoint เดิม /v1/users ถูกลบ ต้องใช้ /v2/users แทน
สรุป:
!คือสัญญาณเตือนว่า "ระวัง พังได้นะ"- ใช้เฉพาะกับ commit ที่ อาจทำให้โค้ดของผู้ใช้พัง
- ไม่ควรใช้พร่ำเพรื่อ แต่ต้องใช้เมื่อถึงเวลา
อยากให้เพิ่มตัวอย่าง commit ที่มี BREAKING CHANGE: แบบเต็มไหม?