การจัดการ versioning services - konlawatit/SWDEV-BBP-PLUS GitHub Wiki

เลข version นั้นจะประกอบไปด้วย 3 ส่วนหลัก

  1. Major
    อยู่หน้าสุด เลขจะเปลี่ยนเมื่อ software ของเรามีการเปลี่ยนแปลงที่ทำให้ software ซึ่งอาจทำให้ software มีปัญหาได้ ตัวอย่างคือ software ตัวหนึ่งชื่อว่า a แล้วใน a version 1.0.0 เนี่ย มี function ชื่อว่า getName() เอาไว้ให้เรียกใช้ แต่พอซักพักเราอยาก update version ใหม่ที่เปลี่ยนชื่อ function จาก getName() เป็น get_name() คือถ้าคนที่เคยเรียกใช้ software version 1.0.0 ของเรา เขา update เป็น version ใหม่เลยทันที ตรงที่เคยเรียก function getName() นี่จะพังทันทีครับ เพราะมันไม่มี function ชื่อนี้แล้ว มันเปลี่ยนชื่อไปเป็น get_name() แล้ว ประมาณนี้ กรณีนี้เลข version หลังจากที่เรา update ต้องเป็น 2.0.0

  2. Minor อยู่ตรงกลาง เลขจะเปลี่ยนเมื่อ software ของเรามีการเพิ่ม feature ใหม่ จากตัวอย่างเดิมนะครับ software a version 1.0.0 มี function getName() อยู่ โดยทีนี้เราอยากจะเพิ่ม function getLastName() เข้าไปด้วย เราก็ต้องเปลี่ยนเลข version เป็น 1.1.0 ครับ อีกกรณีที่เราอาจจะเพิ่มเลขส่วนของ Minor ได้ก็คือ software ของเรามีการพัฒนาหรือปรับปรุงในส่วนที่เป็น private function (ไม่ได้อยู่ใน api และไม่อนุณาตให้ software ภายนอกเรียกใช้)

  3. Patch อยู่หลังสุด เลขจะเปลี่ยนเมื่อเรามีการแก้บัค สมมุติว่า a version 1.0.0 function getName() มีบัคอยู่ เราแก้บัคส่วนนี้เสร็จ เราต้องเปลี่ยนเลข version เป็น 1.0.1

กฎย่อยอื่น ๆ ที่สำคัญ

  • ถ้าเลข Minor เปลี่ยน เลข Patch ต้องถูก reset เป็น 0
  • ถ้าเลข Major เปลี่ยน เลข Minor และเลข Patch ต้องถูก reset เป็น 0
  • public version เลขจะเริ่มที่ 1.0.0 (public version คือ version ที่เราเอาให้คนอื่นใช้งานจริงครับ ถ้าก่อนหน้าที่เราจะเอาไปให้คนอื่นใช้งานจริงได้จะเรียกว่า pre-release version)
  • pre-release version เลขจะเริ่มที่ 0.1.0