Öncelikle, Laravel’in versiyonlama sürecinde tarih formatlı versiyonlamayı seçmesi gerektiği üzerine daha önce bir eleştiride bulunduğumu hatırlıyorum. Bu yazıyı yazma sebebim, Livewire‘nin henüz yayımlanmamış bir ana sürümle uyumlu bir güncelleme yapacağından dolayıdır.
Semantic versioning
Semantic versioning
Semantic versiyonlamanın ana amacı, bağımlılık yönetimini öngörülebilir kılmaktır.
Bir noktalar üçlü olarak ayrılmıştır: major, minor ve patch. Soldan sağa doğru bu sayıların anlamı, sırasıyla major, minor ve patch’tır.
Geriye uyumsuz değişiklikler olduğunda major numara değişikliği yapılmalıdır. Ancak aynı zamanda birden fazla özellik veya değişiklik eklendiğinde de bu değişiklik yapılabilir.
The Laravel situation
The Laravel situation
GitHub üzerindeki commit’ler ve bir Laravel News blogu üzerinden incelediğimizde, en büyük değişikliğin isteğe bağlı olarak attribute kullanımı olduğudur. Eklenecek birçok attribute olmasına rağmen, bu gerçekten büyük bir güncellemeyi gerektiriyor mu?
PHP sürümünün minimum 8.2’den 8.3’e yükseltilmesini, major bir değişiklik nedenidir diye düşünebilirsiniz. Ancak json_validate gibi bir 8.3 özelliğine baktığımda, kullanılan Symfony polyfill’in 12. sürümde mevcut olduğunu görüyorum. Dolayısıyla, major versiyon yükseltmesine gerek yok.
Why do they keep on using arbitrary semantic versioning?
Why do they keep on using arbitrary semantic versioning?
Çünkü bu toplulukta bir gelenek haline gelmiş?
Eğer sayıları yıl, ay ve gün olarak kullanıyorlarsa, herhangi bir yan etkisi yoktur. Tek bir günde birden fazla sürüm oluşturmak için patch kısmına zamanı bile ekleyebilirler. Bu, geriye uyumsuz değişikliklerin yılda bir kez gerçekleşebileceği anlamına gelir. Ben, tarih bazlı versiyonlamanın belirliliğinden hoşlanıyorum, çünkü sürümün uygulamadaki ne kadar eski olduğunu görebiliyoruz. Bu, bazı gözleri açabilir.
Yıllardır semantic versioning’i yanlış mı yapıyoruz? Bir projenin başlangıcında geriye uyumsuz sürümler arasında daha yakın zamanlar olabilir. Bu aşamada keyfi numaralandırma tercih edilebilir. Proje olgunlaştığında ise tarih/takvim versiyonlamasına geçiş yapılması gerektiğini düşünüyorum.
Not: Yazının eleştiriden farkındalığa geçiş yaptığını belirtmek istedim, ama başlığı izlenme sayıları için aynı tuttuğumu söylemem gerek.
Kaynak: Orijinal Makale


