Dalam http://semver.org/ — yang menurut persepsi saya tampaknya merupakan konvensi yang paling banyak digunakan dalam pembuatan versi — disarankan untuk menambah nomor versi utama ketika perubahan yang memecah / memodifikasi API diperkenalkan.
Ada dua skenario terkait yang saya tidak melihat bagaimana menerapkan pedoman ini:
- Bagaimana jika kode saya tidak menawarkan API apa pun? Bagaimana saya harus membuat versi kode saya?
- Bagaimana jika kode saya mulai menawarkan API pada tahap akhir pengembangannya?
semantic-versioning
Mario
sumber
sumber
Jawaban:
Semver sebagian besar khawatir tentang versi perpustakaan dan paket dengan cara yang menghindari neraka ketergantungan, dalam berbagai inkarnasinya. Namun, ide di balik Semver dapat diperluas ke semua jenis program - setiap kode memiliki beberapa jenis antarmuka pengguna, atau itu sangat tidak berguna.
Menggunakan contoh perangkat lunak konsumen, seperti pengolah kata:
Namun, banyak masalah yang coba dipecahkan Semver tidak ada di luar area manajemen ketergantungan. Dalam aplikasi konsumen, versi ini tidak hanya versi, tetapi juga aset pemasaran.
Firefox dan Chrome merilis versi baru secara relatif sering, dan menambah nomor versi utama mereka di setiap rilis. Ini menghasilkan angka versi yang sangat tinggi (keduanya saat ini berusia 30-an). Peramban dengan nomor versi yang lebih tinggi harus lebih baik daripada peramban dengan nomor versi yang lebih rendah, bukan?
Nomor versi utama sistem operasi Apple OS X telah menjadi bagian dari namanya (X adalah 10 dalam angka Romawi), menjadikan nomor versi minor nomor versi utama yang efektif.
Sistem operasi Ubuntu menggunakan skema versi year.month.patchlevel. Ini membuatnya mudah untuk mengingat berapa umur OS Anda, tetapi membuatnya jauh lebih sulit untuk mengetahui versi mana yang kompatibel, dan berapa lama dukungan untuk setiap versi berlangsung.
Kernel Linux menabrak nomor versi dari 2.6.39 ke 3.0.0, karena
39
semakin besar, dan untuk memperingati ulang tahun ke 20 Linux.Sistem pengaturan huruf TeX Donald Knuth yang legendaris menggunakan nomor versi yang, pada versi 3, konvergen ke π dengan menambahkan digit lain pada setiap rilis: 3.14159265…. Ini menandakan bagaimana sistem semakin mendekati kesempurnaan. Demikian pula, sistem Metafont konvergen ke e : 2.7182818….
Jadi, banyak aplikasi yang tidak terlayani dengan baik oleh Semver. Pilih skema versi yang bagus untuk pengguna Anda (terlepas dari apakah pengguna ini sesama programmer atau konsumen), dan tetap konsisten.
sumber