การจัดการ versioning services - konlawatit/SWDEV-BBP-PLUS GitHub Wiki
เลข version นั้นจะประกอบไปด้วย 3 ส่วนหลัก
-
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 -
Minor อยู่ตรงกลาง เลขจะเปลี่ยนเมื่อ software ของเรามีการเพิ่ม feature ใหม่ จากตัวอย่างเดิมนะครับ software a version 1.0.0 มี function getName() อยู่ โดยทีนี้เราอยากจะเพิ่ม function getLastName() เข้าไปด้วย เราก็ต้องเปลี่ยนเลข version เป็น 1.1.0 ครับ อีกกรณีที่เราอาจจะเพิ่มเลขส่วนของ Minor ได้ก็คือ software ของเรามีการพัฒนาหรือปรับปรุงในส่วนที่เป็น private function (ไม่ได้อยู่ใน api และไม่อนุณาตให้ software ภายนอกเรียกใช้)
-
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