N

Nokfa Docs

ไม่มีชื่อบทความ

ประโยคที่ว่า

"ถ้ามี 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: แบบเต็มไหม?