Yazılım Sürümünü Daha Anlaşılır Hale Getirmek: Semantic Versioning Rehberi
Semactic versioning (SemVer) yani semantik versiyonlama konusunda kısa ve kolay anlaşılır bir rehber hazırlamak istedim, bunu öğrenmek için doğru yerdesiniz. Gelin başlayalım.
Yazılım geliştirirken ürün sürümünün yönetimi git gide karmaşık bir hale gelebilir. Geliştirme aşaması bittiğinde ürün sorunsuz, kusursuz, tüm durumlara ve uzun yıllar kullanıma uygun çalışmaz. Bir bina inşa etmeye benzer. Yayınlanan güncellemelerle hatalar giderilebilir, ürüne yeni özellikler eklenebilir veya performans iyileştirmeleri yapılabilir. Ancak yapılan değişikliklerin, yazılımı geliştiren geliştiriciler tarafından doğru şekilde anlaşılması önemlidir.
Bu sorunları çözmek adına standartlaştırmalar ortaya çıkar, Semantik Versiyonlama (Semantic Versioning veya kısaca SemVer) da versiyonlama yöntemi olarak ortaya çıkan bir çözümdür ve yazılım geliştirme camiasında kabul görür, kullanılır. Peki, semantik versiyonlama nedir ve nasıl çalışır? Gelin detaylıca inceleyelim.
Semantik Versiyonlamanın Temel Yapısı
Semantik versiyonlama, üç temel sürüm numarası formatı kullanır. Major, minor ve patch.
1. MAJOR (Ana Sürüm):
Geriye dönük uyumluluğu bozan büyük değişiklikler yapıldığında bu sayı artırılır. Örneğin, bir API'de mevcut fonksiyonların davranışı değişirse veya tamamen kaldırılırsa, bu bir ana sürüm artışı gerektirir.
Örnek: 1.0.0
→ 2.0.0
2. MINOR (Alt Sürüm):
Geriye dönük uyumluluğu bozmadan yeni özellikler eklediğinde artırılır. Mevcut işlevler aynı kalır, ancak kullanıcılar yeni özelliklere erişebilir.
Örnek: 1.2.0
→ 1.3.0
3. PATCH (Yama Sürümü):
Küçük hata düzeltmeleri ve iyileştirmeler için bu sayı kullanılır. Yeni özellik eklenmez; yalnızca mevcut fonksiyonların sorunları çözülür.
Örnek: 1.2.1
→ 1.2.2
Örnek:
MAJOR.MINOR.PATCH (örneğin, 2.9.4
).
2
: Ana sürüm, önemli bir değişiklikte artar.9
: Alt sürüm, yeni özellikler eklediğinde artar.4
: Yama sürümü, hata düzeltmelerinde artar.
Güncelleme Sonrası Sürüm Artışı
Bir güncelleme sürümü sonrasında, değişiklik türüne göre major, minor veya patch sürümü artırılır. Peki ya diğerleri nasıl güncellenir? Bir örnek üzerinden inceleyelim.
Örneğin sürümün 1.5.9
olduğunu varsayalım.
1. Yama (Patch) Güncelleme Yapıldığında
Yalnızca patch sürüm bir artırılır. 1.5.9
→ 1.5.10
.
2. Minor Güncelleme Yapıldığında
Minor sürüm bir artırılır ve patch sıfırlanır. 1.5.9
→ 1.6.0
.
3. Major Güncelleme Yapıldığında
Major sürüm bir artırılır ve minor ile patch sıfırlanır. 1.5.9
→ 2.0.0
.
Sonuç
Semantik versiyonlama, yazılım geliştirme sürecinde önemli bir rehberdir ve hem geliştiriciler hem de kullanıcılar için büyük kolaylık sağlar. Versiyon numaralarındaki belirgin değişiklikler, yapılan güncellemelerin türünü ve etkilerini açıkça belirtir, bu da yazılımın evrimini daha anlaşılır kılar. Her güncelleme, kullanıcıların ve geliştiricilerin nasıl bir değişiklik bekleyeceklerini anlamalarını sağlar.

Yazılım Mühendisi — Dijital Zanaatkâr
Karmaşık sorunlara zarif çözümler üretmekten keyif alan, tutkulu bir yazılım mühendisi. Kodlamanın ötesinde, teknoloji, sanat ve insan bilincinin kesişim noktalarını keşfetmekle derinden ilgileniyor.