มันขึ้นอยู่กับโครงการ บางโครงการไม่ปล่อยรุ่น 1.0 ด้วยซ้ำ
นักพัฒนาของ MAME ไม่ได้ตั้งใจที่จะปล่อยโปรแกรมจำลองรุ่น 1.0 ข้อโต้แย้งคือมันจะไม่ "เสร็จสิ้น" อย่างแท้จริงเพราะจะมีเกมอาร์เคดมากขึ้นเสมอ เวอร์ชัน 0.99 นั้นตามมาด้วยเวอร์ชัน 0.100 (รุ่นรอง 100> 99) ในแฟชั่นที่คล้ายกัน Xfire 1.99 มีผู้ติดตาม 1.100 หลังจาก 6 ปีของการพัฒนา eMule ยังไม่ถึงเวอร์ชัน 0.50 ซอฟต์แวร์เวอร์ชันที่ Wikipedia
หนึ่งในวิธีที่นิยมใช้เลขรุ่น (ที่ผมได้เริ่มต้นที่จะใช้) เป็นความหมายของรุ่น
ภายใต้โครงร่างนี้หมายเลขรุ่นและวิธีที่พวกเขาเปลี่ยนสื่อความหมายเกี่ยวกับรหัสอ้างอิงและสิ่งที่ได้รับการแก้ไขจากรุ่นหนึ่งเป็นรุ่นถัดไป
คำพูดบางคำเสนอแนวคิดเพิ่มเติมเกี่ยวกับวิธีการทำงานและ / หรือตอบคำถามของคุณ:
ฉันจะรู้ได้อย่างไรว่าจะปล่อย 1.0.0 เมื่อไหร่?
หากซอฟต์แวร์ของคุณมีการใช้งานจริงอาจเป็น 1.0.0 แล้ว หากคุณมี API ที่เสถียรที่ผู้ใช้ต้องพึ่งพาคุณควรเป็น 1.0.0 หากคุณกังวลมากเกี่ยวกับความเข้ากันได้ย้อนหลังคุณน่าจะเป็น 1.0.0 อยู่แล้ว
สิ่งนี้ไม่ทำให้เกิดการพัฒนาอย่างรวดเร็วและการวนซ้ำอย่างรวดเร็วหรือไม่
รุ่นใหญ่ศูนย์คือทั้งหมดที่เกี่ยวกับการพัฒนาอย่างรวดเร็ว หากคุณเปลี่ยน API ทุกวันคุณควรอยู่ในเวอร์ชัน 0.xx หรือสาขาการพัฒนาแยกต่างหากซึ่งทำงานในเวอร์ชันหลักถัดไป
หากการเปลี่ยนแปลงที่เข้ากันไม่ได้น้อยที่สุดไปสู่ API สาธารณะต้องมีการชนรุ่นใหญ่ฉันจะไม่ลงเอยที่รุ่น 42.0.0 อย่างรวดเร็วหรือไม่
นี่คือคำถามของการพัฒนาที่รับผิดชอบและการมองการณ์ไกล ไม่ควรมีการเปลี่ยนแปลงที่เข้ากันไม่ได้กับซอฟต์แวร์ที่มีโค้ดที่ต้องพึ่งพาจำนวนมาก ค่าใช้จ่ายที่ต้องเกิดขึ้นในการอัพเกรดอาจมีนัยสำคัญ การต้องชนรุ่นหลัก ๆ เพื่อปล่อยการเปลี่ยนแปลงที่เข้ากันไม่ได้หมายความว่าคุณจะต้องคำนึงถึงผลกระทบของการเปลี่ยนแปลงของคุณและประเมินอัตราส่วนต้นทุน / ผลประโยชน์ที่เกี่ยวข้อง
นอกจากนี้ยังมีกฎว่าด้วยการระบุรุ่น "alpha," "beta," ฯลฯ ตรวจสอบรายละเอียดที่http://semver.org/
[แก้ไข] โครงร่างการกำหนดหมายเลขรุ่นที่น่าสนใจอีกอย่างหนึ่งคือMongoDB ที่ใช้ :
MongoDB ใช้รุ่นเลขคี่สำหรับการพัฒนารุ่น
มีตัวเลข 3 ตัวในเวอร์ชั่น MongoDB: ABC
- A เป็นเวอร์ชันหลัก สิ่งนี้จะไม่ค่อยเปลี่ยนแปลงและบ่งบอกถึงการเปลี่ยนแปลงครั้งใหญ่มาก
- B คือหมายเลขรุ่น ซึ่งจะรวมถึงการเปลี่ยนแปลงจำนวนมากรวมถึงคุณสมบัติและสิ่งต่าง ๆ ที่อาจทำลายความเข้ากันได้ย้อนหลัง แม้แต่ Bs จะเป็นกิ่งที่มีเสถียรภาพและ Bs แปลก ๆ ก็คือการพัฒนา
- C คือหมายเลขการแก้ไขและจะใช้สำหรับข้อบกพร่องและปัญหาด้านความปลอดภัย
ตัวอย่างเช่น:
- 1.0.0: GA รุ่นแรก
- 1.0.x: แก้ไขข้อบกพร่องเป็น 1.0.x - ขอแนะนำให้อัปเกรดมีความเสี่ยงน้อยมาก
- 1.1.x: การเปิดตัวการพัฒนา ซึ่งจะรวมถึงคุณสมบัติใหม่ที่ยังไม่เสร็จสมบูรณ์และอยู่ระหว่างดำเนินการ บางสิ่งอาจแตกต่างจาก 1.0
- 1.2.x: การเปิดตัว GA ครั้งที่สอง นี่จะเป็นสุดยอดของการเปิดตัว 1.1.x