Chúng tôi đang cố gắng quyết định một cách tốt để đánh số phiên bản cho các thành phần phần mềm, tùy thuộc vào nhau.
Hãy cụ thể hơn:
Thành phần phần mềm A là phần sụn chạy trên thiết bị nhúng và thành phần B là trình điều khiển tương ứng cho một PC bình thường (máy Linux / Windows). Họ đang giao tiếp với nhau bằng một giao thức tùy chỉnh. Vì sản phẩm của chúng tôi cũng nhắm đến các nhà phát triển, chúng tôi sẽ cung cấp các phiên bản ổn định và không ổn định (thử nghiệm) của cả hai thành phần (phần sụn là nguồn đóng, trong khi trình điều khiển là nguồn mở). Khó khăn lớn nhất của chúng tôi là làm thế nào để xử lý các thay đổi API trong giao thức truyền thông.
Trong khi chúng tôi đang thực hiện kiểm tra khả năng tương thích trong trình điều khiển - nó sẽ kiểm tra xem phiên bản phần sụn có tương thích với phiên bản của trình điều khiển hay không - chúng tôi bắt đầu thảo luận về nhiều cách đánh số phiên bản.
Chúng tôi đã đưa ra một giải pháp, nhưng chúng tôi cũng cảm thấy muốn sáng tạo lại bánh xe. Đó là lý do tại sao tôi muốn nhận được một số phản hồi từ cộng đồng lập trình viên / nhà phát triển phần mềm, vì chúng tôi nghĩ rằng đây là một vấn đề phổ biến.
Vì vậy, đây là giải pháp của chúng tôi:
Chúng tôi dự định theo dõi cách đánh số phiên bản Major.minor.patch được sử dụng rộng rãi và sử dụng các số phụ chẵn / lẻ cho các phiên bản ổn định / không ổn định. Nếu chúng tôi giới thiệu các thay đổi trong API, chúng tôi sẽ tăng số lượng nhỏ.
Quy ước này sẽ dẫn đến tình huống ví dụ sau:
Chi nhánh ổn định hiện tại là 1.2.1 và không ổn định là 1.3.7. Bây giờ, một bản vá mới cho sự không ổn định thay đổi API, điều gì sẽ khiến số phiên bản không ổn định mới trở thành 1.5.0. Một khi, nhánh không ổn định được coi là ổn định, giả sử trong 1.5.3, chúng tôi sẽ phát hành nó là 1.4.0.
Tôi sẽ rất vui về câu trả lời cho bất kỳ câu hỏi liên quan nào dưới đây:
- Bạn có thể đề xuất một thực tiễn tốt nhất để xử lý các vấn đề được mô tả ở trên?
- Bạn có nghĩ rằng quy ước "tùy chỉnh" của chúng tôi là tốt?
- Những thay đổi bạn sẽ áp dụng cho quy ước được mô tả?