ถ้าคลาสสิกความหมายเวอร์ชันโครงการ "MAJOR.MINOR.PATCH" ทำให้รู้สึกขึ้นอยู่กับที่คุณปรับใช้และโดยเฉพาะอย่างยิ่งเมื่อใดและอย่างไรที่คุณมักจะใช้กับผู้ใช้ ชุดรูปแบบมีประโยชน์มากที่สุดถ้าคุณทำงานกับรุ่นเสถียร "4.5" ซึ่งคุณเริ่มต้นด้วย 4.5.0 เวอร์ชัน 4.5.1, 4.5.2 และอื่น ๆ จะมีเพียงการแก้ไขข้อบกพร่องในขณะที่คุณทำงานในเวอร์ชัน 4.6 ภายในแล้ว
ตัวอย่างเช่นหากคุณให้ "สาขาที่มั่นคง" แก่ผู้ใช้ของคุณให้เป็นเวอร์ชัน 4.5.0 สำหรับการปรับใช้เริ่มต้นและ 4.5.1, 4.5.2 เมื่อใดก็ตามที่คุณปล่อยแพตช์ ในการพัฒนาแบบ "ว่องไว" ภายในและการปรับใช้แบบ mid-sprint คุณสามารถมีเวอร์ชัน 4.6 แล้วเรียกมันว่า "รุ่นเบต้า" เมื่อใดก็ตามที่คุณปรับใช้เป็น mid-sprint ให้เพิ่มหมายเลขบิลด์ที่สร้างโดยอัตโนมัติเช่น "4.6.beta build 123" เมื่อการวิ่งของคุณสิ้นสุดให้กำหนด "4.6.0" และเปลี่ยนหมายเลขรุ่นสำหรับการวิ่งครั้งต่อไปเป็นการภายใน "4.7" การเริ่มต้นด้วย ".0" เป็นเพียงการประชุมคุณสามารถใช้ ".0" สำหรับการติดแท็กรุ่นเบต้าและเริ่มต้นด้วย ". 1" สำหรับผู้ใช้ปลายทางของคุณ IMHO คำว่า "เบต้า" มีความหมายมากกว่าและบอกทุกคนว่าการวิ่ง "ยังไม่เสร็จ"
หากคุณปล่อยบันทึกการเปลี่ยนแปลงของผู้ใช้ปลายทางโดยสมบูรณ์กับรุ่นเบต้าแต่ละรุ่นจะขึ้นอยู่กับคุณ แต่อย่างน้อยตอนท้ายของการวิ่งการบันทึกการเปลี่ยนแปลงควรจะเสร็จสิ้นและเมื่อใดก็ตามที่คุณให้ข้อผิดพลาดแก่ผู้ใช้คุณควรอัพเดต เอกสารประวัติ
คุณจะพบกลยุทธ์ในการปล่อยสาขาที่แยกจากกันสองสาขาสาขา "เสถียร" หนึ่งสาขาที่มีหมายเลขรุ่นความหมายและ "สาขาการพัฒนา" ที่ทำเครื่องหมายด้วยหมายเลขบิลด์หรือสิ่งที่คล้ายกันในผลิตภัณฑ์โอเพ่นซอร์สมากมายเช่น Inkscape, Firefox หรือ 7-zip
อย่างไรก็ตามหากคุณไม่ได้ทำงานกับสาขาที่มีเสถียรภาพและการพัฒนาแยกต่างหากและปล่อยรุ่นใหม่ให้กับผู้ใช้ปลายทางรายวันคุณควรเพิ่มหมายเลขเวอร์ชันทุกวัน สำหรับกรณีดังกล่าวหมายเลขรุ่น "4.5.1", "4.5.2", ... อาจแสดงถึงการปรับใช้แต่ละรายการของคุณและไม่ได้ระบุความแตกต่างระหว่างการแก้ไขข้อบกพร่องและการเปลี่ยนแปลงอื่น ๆ อาจเป็นไปได้ว่ามันไม่ใช่แค่ "semantic versioning" แบบคลาสสิกอีกต่อไป ในสถานการณ์นี้คุณสามารถปรับใช้เวอร์ชัน 4.5, 4.6, 4.7, 4.8 ซึ่งไม่แตกต่างอย่างแท้จริง
เกี่ยวกับคำถามของคุณเกี่ยวกับรายการในการเปลี่ยนแปลงของคุณ: IMHO เมื่อผู้ใช้ปลายทางมองเห็นสิ่งที่มีค่าในรายการการเปลี่ยนแปลงทันทีที่คุณปรับใช้การเปลี่ยนแปลง ตัวอย่างเช่นหากคุณใช้สลับคุณสมบัติและทำการเปลี่ยนแปลงคุณสมบัติบางอย่างที่ยังไม่เปิดใช้งานกับผู้ใช้นั่นจะไม่ได้อยู่ในรายการเปลี่ยนแปลง หากคุณทำการเปลี่ยนสถานะใหม่เท่านั้นโดยไม่มีการเปลี่ยนแปลงผู้ใช้ที่มองเห็นได้นั่นไม่ได้อยู่ในการเปลี่ยนแปลง หากคุณแก้ไขข้อผิดพลาดซึ่งอาจส่งผลกระทบต่อผู้ใช้บางรายนั่นเป็นของ changelog - และควรมีการกล่าวถึงในเวลาเดียวกันเมื่อคุณปรับใช้ bugfix และไม่สำคัญว่าคุณจะปล่อยรายวันรายเดือนหรือรายปี