จำนวนมากของการปรับปรุงซอฟต์แวร์ทำตามรูปแบบของ v0.1 เพื่อ v0.2 เพื่อv2.6.5.6 "อัพเดต" ของซอฟต์แวร์เหล่านี้มีความหมายอย่างไร มีมาตรฐานอุตสาหกรรมเสมอหรือโปรแกรมเมอร์ทำยก update # หรือเพิ่มทศนิยมเพิ่มเติมหรือไม่
จำนวนมากของการปรับปรุงซอฟต์แวร์ทำตามรูปแบบของ v0.1 เพื่อ v0.2 เพื่อv2.6.5.6 "อัพเดต" ของซอฟต์แวร์เหล่านี้มีความหมายอย่างไร มีมาตรฐานอุตสาหกรรมเสมอหรือโปรแกรมเมอร์ทำยก update # หรือเพิ่มทศนิยมเพิ่มเติมหรือไม่
คำตอบ:
เช่นเดียวกับฌอนกล่าวว่าไม่มีมาตรฐานจริงๆ บริษัท บางแห่งมีแนวปฏิบัติเกี่ยวกับการกำหนดรุ่นที่ดีกว่า บริษัท อื่น ๆ (ฉันจัดการกับผู้ขายที่ข้ามหมายเลขรุ่นใหญ่และ บริษัท อื่น ๆ ที่ติดอยู่ใน xy รุ่นเดียวกันหลายรุ่นในภายหลัง)
ต้องบอกว่านักประดิษฐ์ Gravatars และผู้ร่วมก่อตั้งของ GitHub ( Tom Preston-Werner ) ได้เขียนเอกสารสำหรับ ' Semantic Versioning ' ซึ่งมีค่ามากกว่าการอ่าน
นี่คือข้อยกเว้นของบทนำ:
เพื่อเป็นการแก้ปัญหานี้ฉันขอเสนอกฎและข้อกำหนดง่ายๆที่กำหนดวิธีการกำหนดและเพิ่มหมายเลขเวอร์ชัน เพื่อให้ระบบนี้ใช้งานได้คุณต้องประกาศ API สาธารณะก่อน ซึ่งอาจประกอบด้วยเอกสารประกอบหรือถูกบังคับใช้โดยรหัสเอง เป็นสิ่งสำคัญที่ API นี้ต้องชัดเจนและแม่นยำ เมื่อคุณระบุ API สาธารณะของคุณแล้วคุณจะสามารถสื่อสารการเปลี่ยนแปลงนั้นด้วยการเพิ่มเฉพาะรุ่นหมายเลขของคุณ พิจารณารูปแบบเวอร์ชันของ XYZ (Major.Minor.Patch) การแก้ไขข้อบกพร่องไม่ส่งผลกระทบต่อ API ที่เพิ่มขึ้นของเวอร์ชันแพตช์, การเพิ่ม / แก้ไข API ที่เข้ากันได้แบบย้อนหลังนั้นเป็นการเพิ่มรุ่นรอง, และการเปลี่ยนแปลง API ที่เข้ากันไม่ได้ย้อนหลังเป็นการเพิ่มรุ่นหลัก
ฉันเรียกระบบนี้ว่า "Semantic Versioning" ภายใต้โครงร่างนี้หมายเลขรุ่นและวิธีที่พวกเขาเปลี่ยนสื่อความหมายเกี่ยวกับรหัสอ้างอิงและสิ่งที่ได้รับการแก้ไขจากรุ่นหนึ่งเป็นรุ่นถัดไป
ด้วยตัวเลข 4 หลักมันมักจะเป็น MajorV.MinorV.PatchNum.BuildNum อย่างน้อยที่สุดที่ฉันทำงาน
โดยส่วนตัวฉันชอบรูปแบบการกำหนดเวอร์ชันของ Ubuntu - ทำให้ชีวิตง่ายขึ้นมาก
รุ่นสั้นคือไม่มีมาตรฐานและ บริษัท ทำสิ่งที่พวกเขาต้องการ โดยพื้นฐานแล้วยิ่งคุณมีจำนวนมากเท่าไหร่จำนวนการเปลี่ยนแปลงแต่ละครั้งก็น้อยลงเท่านั้น โดยทั่วไปแล้วคุณจะเห็นเวอร์ชัน xy อย่างน้อยซึ่งการเปลี่ยนแปลงของ xa ใน x หมายถึงรุ่นใหญ่ (การปรับปรุงที่สำคัญ / การเปิดตัวคุณลักษณะ) และ y หมายถึงการเผยแพร่เล็กน้อย (tweaks ที่สำคัญหรือการแก้ไขข้อบกพร่อง) ทศนิยมมากขึ้นหลังจากที่ทั้งสองอาจหมายถึงสิ่งที่แตกต่างกันภายใน บริษัท แม้ว่ามักจะหมุนรอบเนื้อหาเล็ก ๆ น้อย ๆ สร้างหรือแพทช์ที่เป็นตัวแทนของการแก้ไขที่รวดเร็วและมีขนาดเล็กลง
Wikipedia มีบทความที่ครอบคลุมเนื้อหานี้โดยละเอียดยิ่งขึ้น
วัตถุประสงค์ของหมายเลขรุ่นคือการให้การอ้างอิงสำหรับรายงานปัญหา ข้อกำหนดเพียงอย่างเดียวคือทุกรุ่นมีหมายเลขรุ่นที่ไม่ซ้ำกัน ตัวเลขบางตัวได้แรงหนุนจากการตลาดตัวเลขที่ใหญ่กว่านั้นง่ายกว่าที่จะขายและตัวเลขพลังงานเช่น 10 (ตัวเลขโรมัน X) นั้นติดหูจริงๆ บางคนใช้การเปลี่ยนแปลงของการกำหนดเวอร์ชันความหมาย:
MAJOR.MINOR.MICRO.BUILD
หลายกลุ่มวางหมายเลข BUILD ในรุ่นของพวกเขา มันมักจะมีประโยชน์เฉพาะระหว่างการทดสอบและกลุ่มการพัฒนา
บางกลุ่มเพิ่มซีแมนทิกส์เพิ่มเติมเช่นการเพิ่มขึ้นเล็กน้อยของเลขคี่สำหรับการสร้างแบบทดลองและการเพิ่มขึ้นเล็กน้อยของเลขไมเนอร์สำหรับการผลิตออกมา ( เคอร์เนล Linuxใช้วิธีการนี้)
บรรทัดล่างคือว่าไม่มีมาตรฐานนอกเหนือจากรุ่นที่ใหม่กว่าใช้หมายเลขรุ่นที่สูงกว่าและแต่ละหมายเลขรุ่นไม่ซ้ำกัน