เรากำลังพยายามตัดสินใจเกี่ยวกับวิธีการกำหนดหมายเลขรุ่นสำหรับส่วนประกอบซอฟต์แวร์ที่ดีซึ่งขึ้นอยู่กับซึ่งกันและกัน
ให้เจาะจงยิ่งขึ้น:
องค์ประกอบซอฟต์แวร์ A เป็นเฟิร์มแวร์ที่ทำงานอยู่บนอุปกรณ์ฝังตัวและส่วนประกอบ B เป็นไดรเวอร์ที่เกี่ยวข้องสำหรับพีซีปกติ (เครื่อง Linux / Windows) พวกเขากำลังสื่อสารกันโดยใช้โปรโตคอลที่กำหนดเอง เนื่องจากผลิตภัณฑ์ของเรามีการกำหนดเป้าหมายที่นักพัฒนาเราจะเสนอทั้งสองเวอร์ชันที่เสถียรและไม่เสถียร (ทดลอง) ของส่วนประกอบทั้งสอง (เฟิร์มแวร์เป็นแบบโอเพ่นซอร์สในขณะที่ไดรเวอร์เป็นโอเพ่นซอร์ส) ปัญหาที่ใหญ่ที่สุดของเราคือวิธีจัดการกับการเปลี่ยนแปลง API ในโปรโตคอลการสื่อสาร
ในขณะที่เรากำลังใช้การตรวจสอบความเข้ากันได้ในไดรเวอร์ - มันจะตรวจสอบว่าเวอร์ชั่นของเฟิร์มแวร์นั้นเข้ากันได้กับเวอร์ชั่นของไดรเวอร์หรือไม่ - เราเริ่มพูดคุยเกี่ยวกับการกำหนดหมายเลขเวอร์ชันหลายวิธี
เราคิดวิธีแก้ปัญหาขึ้นมา แต่เราก็รู้สึกเหมือนการพลิกโฉมพวงมาลัย นั่นคือเหตุผลที่ฉันต้องการได้รับคำติชมจากชุมชนนักพัฒนาซอฟต์แวร์ / โปรแกรมเมอร์เนื่องจากเราคิดว่านี่เป็นปัญหาที่พบบ่อย
ดังนั้นนี่คือทางออกของเรา:
เราวางแผนที่จะติดตามหมายเลขรุ่นmajor.minor.patch ที่ใช้กันอย่างแพร่หลายและใช้เลขคู่รอง / คู่สำหรับรุ่นเสถียร / ไม่เสถียร หากเราแนะนำการเปลี่ยนแปลงใน API เราจะเพิ่มจำนวนรองลงมา
การประชุมนี้จะนำไปสู่สถานการณ์ตัวอย่างต่อไปนี้:
สาขาที่มั่นคงในปัจจุบันคือ 1.2.1 และไม่เสถียรคือ 1.3.7 ตอนนี้แพทช์ใหม่สำหรับการเปลี่ยนแปลงที่ไม่เสถียรของ API สิ่งที่จะทำให้หมายเลขรุ่นที่ไม่เสถียรใหม่กลายเป็น 1.5.0 ครั้งหนึ่งสาขาที่ไม่เสถียรถือว่าเสถียรแล้วสมมุติใน 1.5.3 เราจะปล่อยมันเป็น 1.4.0
ฉันยินดีที่จะตอบคำถามใด ๆ ที่เกี่ยวข้องด้านล่าง:
- คุณช่วยแนะนำวิธีปฏิบัติที่ดีที่สุดสำหรับการจัดการปัญหาที่อธิบายไว้ข้างต้นได้หรือไม่?
- คุณคิดว่าการประชุม "กำหนดเอง" ของเราดีหรือไม่?
- คุณต้องการเปลี่ยนแปลงอะไรบ้างกับการประชุมที่อธิบายไว้?