Sepertinya Anda melewati konvensi normal hanya untuk menghindari proses overhead / audit. Itu ... menurut saya memprihatinkan.
Apa yang Anda lakukan adalah secara efektif membuat nomor versi tambahan (digit PCI kecil Anda) agak sengaja untuk memindahkan fitur / nomor versi minor Anda kembali ke suatu tempat, untuk tidak lagi memicu kriteria audit internal Anda.
Bagaimanapun, sampai ke pertanyaan Anda tentang versi semantik, spesifikasi untuk status Semantic Versioning :
Diberi nomor versi MAJOR.MINOR.PATCH, menambah:
- Versi utama ketika Anda membuat perubahan API yang tidak kompatibel,
- Versi MINOR saat Anda menambahkan fungsionalitas dengan cara yang kompatibel ke belakang, dan
- Versi PATCH saat Anda membuat perbaikan bug yang kompatibel dengan mundur.
- Label tambahan untuk pra-rilis dan metadata bangun tersedia sebagai ekstensi ke format MAJOR.MINOR.PATCH .
Tekankan milikku.
Jadi pertanyaannya adalah, apakah Anda menggunakan karakter keempat untuk metadata pra-rilis / bangun? Atau apakah ini pada dasarnya indikasi versi lain yang Anda rilis?
Jika "ya", maka spesifikasi versi semantik mengizinkannya. Jika "tidak" maka secara teknis Anda tidak mengikuti versi semantik.
Dan sebagai pertanyaan sampingan level yang lebih tinggi dan lebih bisa diperdebatkan, apakah itu benar-benar penting?
Apakah Anda ingin secara kaku mengikutinya atau tidak adalah keputusan yang harus Anda dan tim Anda buat. Tujuan pembuatan versi semantik adalah untuk membantu kompatibilitas API:
Perbaikan bug yang tidak memengaruhi penambahan API pada versi patch, penambahan / perubahan API yang kompatibel menambah versi minor, dan perubahan API yang tidak kompatibel yang mundur menambah versi utama.
Saya menyebut sistem ini "Versi Semantik." Di bawah skema ini, nomor versi dan cara perubahannya menyampaikan makna tentang kode yang mendasarinya dan apa yang telah dimodifikasi dari satu versi ke versi berikutnya.
Ini adalah sistem yang membantu membuatnya lebih jelas ketika versi memengaruhi pengguna hilir API.
Selama API Anda sama jelasnya, itu bukan masalah besar yang Anda pilih. Versi semantik secara langsung, misalnya jika saya menggunakan 3.4.2 dan perlu meningkatkan ke 3.4.10 Saya tahu saya bisa melakukannya tanpa merusak apa pun. Jika versi baru 3.5.1 saya tahu itu kompatibel ke belakang. Dan saya tahu versi 4.0.1 akan menjadi perubahan besar.
Itu semua adalah bagian dari apa yang dimaksud dengan nomor versi.
@enderland Ya pada dasarnya. MAJOR (PCI) .MINOR (PCI) .FATURE.HOTFIX + BUILD. Kami pada dasarnya hanya diizinkan untuk mengubah komponen ke-3 dan ke-4 tanpa melibatkan PCI (dan selanjutnya tuan PCI di perusahaan) yang terlibat. Bagi saya rasanya seperti ini sedikit dibuat-buat, saya tidak yakin mereka dibenarkan dalam cara mereka mengelola nomor versi, tetapi saya tidak cukup tahu tentang PCI dan proses audit untuk mengatakan sebaliknya.
Ok, ini baik-baik saja. Anda memiliki sistem yang berfungsi untuk Anda dan memenuhi kebutuhan Anda. Itulah gunanya versi.
Jika API Anda bersifat pribadi (hanya menghadap ke dalam), benar-benar tidak masalah bagaimana versi Anda selama itu masuk akal bagi Anda dan semua orang yang menggunakannya. Di mana versi dalam format standar penting adalah ketika Anda memiliki banyak konsumen lain dari API Anda yang perlu tahu "apa arti versi ini?"
Memiliki sistem versi yang sewenang-wenang akan membingungkan orang-orang yang terbiasa dengan sistem lain, seperti versi semantik. Tetapi jika tidak ada yang benar-benar menggunakan sistem versi Anda kecuali orang yang membuatnya - itu tidak masalah.