Kami mencoba memutuskan cara yang baik untuk melakukan penomoran versi untuk komponen perangkat lunak, yang saling tergantung.
Mari kita lebih spesifik:
Komponen perangkat lunak A adalah firmware yang berjalan pada perangkat tertanam dan komponen B adalah driver masing-masing untuk PC normal (Linux / mesin Windows). Mereka berkomunikasi satu sama lain menggunakan protokol khusus. Karena, produk kami juga ditargetkan untuk pengembang, kami akan menawarkan versi kedua komponen yang stabil dan tidak stabil (firmware adalah sumber tertutup, sedangkan pengandar adalah sumber terbuka). Kesulitan terbesar kami adalah bagaimana menangani perubahan API dalam protokol komunikasi.
Sementara kami menerapkan pemeriksaan kompatibilitas pada driver - memeriksa apakah versi firmware kompatibel dengan versi driver - kami mulai membahas berbagai cara penomoran versi.
Kami datang dengan satu solusi, tetapi kami juga merasa ingin menciptakan kembali roda. Itulah mengapa saya ingin mendapatkan umpan balik dari komunitas programmer / pengembang perangkat lunak, karena kami pikir ini adalah masalah umum.
Jadi, inilah solusi kami:
Kami berencana untuk mengikuti penomoran versi major.minor.patch yang banyak digunakan dan menggunakan angka minor genap untuk versi stabil / tidak stabil. Jika kami memperkenalkan perubahan pada API, kami akan menambah angka minor.
Konvensi ini akan mengarah pada contoh situasi berikut:
Cabang stabil saat ini adalah 1.2.1 dan tidak stabil adalah 1.3.7. Sekarang, tambalan baru untuk perubahan API yang tidak stabil, apa yang akan menyebabkan nomor versi yang tidak stabil menjadi 1.5.0. Setelah, cabang yang tidak stabil dianggap stabil, katakanlah di 1.5.3, kami akan merilisnya sebagai 1.4.0.
Saya akan senang tentang jawaban atas pertanyaan terkait di bawah ini:
- Bisakah Anda menyarankan praktik terbaik untuk menangani masalah yang dijelaskan di atas?
- Apakah menurut Anda konvensi "kebiasaan" kami itu baik?
- Perubahan apa yang akan Anda terapkan pada konvensi yang dijelaskan?