ดูเหมือนว่าคุณกำลังผ่านการประชุมปกติเพียงเพื่อหลีกเลี่ยงค่าใช้จ่ายในกระบวนการ / การตรวจสอบ นั่น ... นัดฉันเกี่ยวกับ
สิ่งที่คุณกำลังทำคือการสร้างหมายเลขรุ่นพิเศษ (หลัก PCI รองของคุณ) อย่างมีประสิทธิภาพเพื่อย้ายคุณลักษณะ / หมายเลขรุ่นรองกลับไปที่เดิมเพื่อไม่ให้เกิดเกณฑ์การตรวจสอบภายในของคุณอีกต่อไป
ยังไงก็ตามขอให้คุณตั้งคำถามเกี่ยวกับการกำหนดเวอร์ชัน semantic, ข้อมูลจำเพาะสำหรับ Semantic Versioning states:
รับหมายเลขเวอร์ชัน MAJOR.MINOR.PATCH เพิ่มค่า:
- รุ่น MAJOR เมื่อคุณทำการเปลี่ยนแปลง API ที่เข้ากันไม่ได้
- รุ่นรองเมื่อคุณเพิ่มฟังก์ชันการทำงานในลักษณะที่เข้ากันได้ย้อนหลังและ
- รุ่น PATCH เมื่อคุณทำการแก้ไขข้อบกพร่องที่เข้ากันได้ย้อนหลัง
- ฉลากเพิ่มเติมสำหรับรุ่นก่อนวางจำหน่ายและการสร้างเมตาดาต้าที่มีอยู่เป็นส่วนขยายไปยังรูปแบบ MAJOR.MINOR.PATCH
เน้นการขุด
ดังนั้นคำถามคือคุณใช้อักขระตัวที่สี่สำหรับข้อมูลเมตา pre-release / build หรือไม่ หรือว่าเป็นอีกรุ่นหนึ่งที่บ่งบอกว่าคุณกำลังปล่อยออกมา?
หาก "ใช่" สเปคของการกำหนดเวอร์ชันแบบ semantic จะอนุญาต หาก "ไม่ใช่" คุณจะไม่ติดตามเวอร์ชันเชิงความหมายในทางเทคนิค
และในฐานะที่เป็นคำถามที่อยู่ในระดับที่สูงขึ้นและมีเหตุผลมากขึ้น
ไม่ว่าคุณจะต้องการติดตามอย่างจริงจังหรือไม่เป็นการตัดสินใจของคุณและทีมของคุณ จุดประสงค์ของการกำหนดเวอร์ชันแบบ semantic คือช่วยในเรื่องความเข้ากันได้ของ API:
การแก้ไขข้อบกพร่องไม่ส่งผลกระทบต่อ API ที่เพิ่มขึ้นของเวอร์ชันแพตช์, การเพิ่ม / เปลี่ยน API ที่เข้ากันได้แบบย้อนหลังนั้นเป็นการเพิ่มรุ่นรอง, และการเปลี่ยนแปลง API ที่เข้ากันไม่ได้ย้อนหลังเป็นการเพิ่มรุ่นหลัก
ฉันเรียกระบบนี้ว่า "Semantic Versioning" ภายใต้โครงร่างนี้หมายเลขรุ่นและวิธีที่พวกเขาเปลี่ยนสื่อความหมายเกี่ยวกับรหัสอ้างอิงและสิ่งที่ได้รับการแก้ไขจากรุ่นหนึ่งเป็นรุ่นถัดไป
เป็นระบบที่ช่วยให้ชัดเจนยิ่งขึ้นเมื่อการกำหนดเวอร์ชันมีผลต่อผู้ใช้ดาวน์สตรีมของ API
ตราบใดที่ API ของคุณมีความชัดเจนในทำนองเดียวกันก็ไม่ใช่เรื่องใหญ่ในแบบที่คุณเลือก การกำหนดเวอร์ชันความหมายเกิดขึ้นตรงไปตรงมาเช่นถ้าฉันใช้ 3.4.2 และจำเป็นต้องอัปเกรดเป็น 3.4.10 ฉันรู้ว่าฉันสามารถทำได้โดยไม่ทำลายอะไรเลย หากเวอร์ชันใหม่คือ 3.5.1 ฉันรู้ว่ามันเข้ากันได้ย้อนหลัง และฉันรู้ว่ารุ่น 4.0.1 จะเป็นการเปลี่ยนแปลงที่ไม่ดี
นั่นเป็นส่วนหนึ่งของความหมายของหมายเลขรุ่นทั้งหมด
@enderland ใช่โดยทั่วไป MAJOR (PCI) .MINOR (PCI) .FEATURE.HOTFIX + BUILD โดยพื้นฐานแล้วเราได้รับอนุญาตให้เปลี่ยนองค์ประกอบที่ 3 และ 4 โดยไม่ต้องมี PCI (และต่อมา PCI ทับซ้อนที่ บริษัท ) ที่เกี่ยวข้อง สำหรับฉันแล้วรู้สึกว่านี่เป็นสิ่งที่ถูกประดิษฐ์ขึ้นมาเล็กน้อยฉันไม่แน่ใจว่าพวกเขาได้รับความชอบธรรมในวิธีที่พวกเขาจัดการหมายเลขรุ่น แต่ฉันไม่รู้เพียงพอเกี่ยวกับ PCI และกระบวนการตรวจสอบที่จะพูดเป็นอย่างอื่น
ตกลงนี่เป็นเรื่องปกติ คุณมีระบบที่เหมาะกับคุณและตรงตามความต้องการของคุณ นั่นคือประเด็นของการกำหนดเวอร์ชัน
หาก API ของคุณเป็นแบบส่วนตัว (หันหน้าเข้าหาภายในเท่านั้น) จริงๆแล้วมันไม่สำคัญว่าคุณจะใช้เวอร์ชั่นใดตราบใดที่มันสมเหตุสมผลสำหรับคุณและทุกคนที่ใช้มัน การกำหนดเวอร์ชันในรูปแบบมาตรฐานเป็นเรื่องสำคัญเมื่อคุณมีผู้บริโภคจำนวนมากของ API ของคุณที่ต้องรู้ว่า "เวอร์ชันนี้มีความหมายว่าอย่างไร"
การมีระบบกำหนดเวอร์ชันโดยพลการจะสร้างความสับสนให้กับผู้ที่เคยชินกับระบบอื่นเช่นการกำหนดเวอร์ชันเชิงความหมาย แต่ถ้าไม่มีใครใช้ระบบเวอร์ชันของคุณจริงๆยกเว้นคนที่สร้างมัน - มันไม่สำคัญเลย