Bizim üst düzey mimarlar birine bir teklif inşa sistemi (Gradle / Artifactory / Jenkins / şef) anlatırken, o da bana bir yorum yaptı bunu çeşit tartmak-in gerçekten katılmıyorum, ama tecrübeli yeterince etmek değilim.
Bu proje, diğer ekipler tarafından yeniden kullanılacak bir eser olarak bir Java kütüphanesi (JAR) oluşturur. Sürüm için, aşağıdakilerin anlamsal yaklaşımını kullanmak istiyorum:
<major>.<minor>.<patch>
Nerede patch
, hata / acil düzeltmeleri gösterir minor
geriye doğru uyumlu bültenleri gösterir ve major
API ve / veya geriye doğru uyumsuz değişikliklerin ya masif refactorings gösterir.
Teslimat buraya geldiğinde istediğim şey: geliştirici bazı kodlar işliyor; Bu bir QA / TEST ortamına bir yapı tetikler. Bazı testler yapıldı (bazıları otomatik, bazıları manuel). Tüm testler geçerse, o zaman bir üretim kurumu JAR’ı şirket içi depoda yayınlar. Bu noktada JAR düzgün bir şekilde sürümlendirilmeli ve benim düşüncem build.number
, otomatik olarak oluşturulan ve CI aracımızın yama numarası olarak davranması için sağlananı kullanmaktı .
Böylece, versiyonlama aslında olacaktır:
<major>.<minor>.<build.number>
Yine, build.number
CI aracı tarafından sağlananlar.
Mimar, CI yapı numarasını kullanmanın anlamsal sürümün "kötüye kullanılması" olduğunu söyleyerek bunu reddetti.
Sorum şu: bu doğru mu ve öyleyse neden? Ve değilse, neden olmasın?