Birbirine bağlı olan yazılım bileşenleri için sürüm numaralandırması yapmanın iyi bir yoluna karar vermeye çalışıyoruz.
Daha spesifik olalım:
Yazılım bileşeni A, yerleşik bir aygıtta çalışan bir bellenimdir ve bileşen B, normal bir PC (Linux / Windows makinesi) için ilgili sürücüsüdür. Özel bir protokol kullanarak birbirleriyle iletişim kuruyorlar. Ürünümüz aynı zamanda geliştiricileri de hedef aldığından, her iki bileşenin de kararlı ve dengesiz (deneysel) sürümlerini sunacağız (ürün yazılımı açık kaynak iken, ürün yazılımı kapalı kaynaktır). En büyük zorluğumuz iletişim protokolündeki API değişikliklerinin nasıl ele alınacağıdır.
Sürücüde bir uyumluluk denetimi uygularken - bellenim sürümünün sürücü sürümüyle uyumlu olup olmadığını kontrol eder - sürüm numaralandırmanın birden çok yolunu tartışmaya başladık.
Tek bir çözüm bulduk, ama tekerleği yeniden icat etmek gibi hissettik. Bu yüzden programcı / yazılım geliştirici topluluğundan bazı geri bildirimler almak istiyorum, çünkü bunun ortak bir sorun olduğunu düşünüyoruz.
İşte çözümümüz:
Yaygın olarak kullanılan major.minor.patch sürüm numaralandırmasını izlemeyi ve kararlı / kararsız sürümler için çift / tek küçük sayıları kullanmayı planlıyoruz . API'da değişiklikler yaparsak küçük sayıyı artıracağız.
Bu sözleşme aşağıdaki örnek duruma yol açacaktır:
Mevcut kararlı dal 1.2.1 ve kararsız 1.3.7'dir. Şimdi, kararsız için yeni bir yama API'yi değiştirir, bu da yeni kararsız sürüm numarasının 1.5.0 olmasına neden olur. Bir kez, kararsız dal stabil olarak kabul edilir, diyelim ki 1.5.3'te 1.4.0 olarak serbest bırakacağız.
Aşağıdaki ilgili soruların cevaplarından memnun olurum:
- Yukarıda açıklanan sorunları ele almak için en iyi uygulamayı önerebilir misiniz?
- "Özel" sözleşmemizin iyi olduğunu düşünüyor musunuz?
- Açıklanan sözleşmede hangi değişiklikleri uygularsınız?