Anlamsal sürümleme (SemVer) ve sürüm numaraları
Kısaca: SemVer sürümleri MAJOR.MINOR.PATCH olarak numaralandırır: uyumsuz değişiklikler için major, yeni uyumlu özellikler için minor, hata düzeltmeleri için patch.
Biraz daha ayrıntılı: Bir sürüm numarası beklenti oluşturmalıdır: güvenle güncelleyebilir miyim? Semantic Versioning 2.0 (semver.org) bunun için net kurallar verir.
Ayrıntılı
Şema
MAJOR.MINOR.PATCH, örneğin 2.4.1:
- PATCH (
2.4.1 → 2.4.2): geriye dönük uyumlu düzeltmeler. - MINOR (
2.4.2 → 2.5.0): yeni özellikler, geriye dönük uyumlu; patch 0’a döner. - MAJOR (
2.5.0 → 3.0.0): uyumsuz değişiklikler (breaking changes); minor/patch 0’a döner.
Ön sürümler: 3.0.0-beta.1, -rc.2; derleme meta verisi: 1.0.0+20260101. 0.y.z kararsız sayılır: her şey bozulabilir. İlk kararlı sürüm 1.0.0’dır.
Sürüm aralıkları (npm, Python vb.)
^1.4.2(npm): uyumlu, 1.4.2’den itibaren1.x.x’e izin verir (2.0.0’a değil).~1.4.2: yalnızca patch güncellemeleri (1.4.x).1.4.2: tam.>=1.2 <2: aralık.- Python:
~=1.4.2(uyumlu),==,>=.
Ayrıca derlemeler yeniden üretilebilir kalsın diye kilit dosyaları. npm outdated, npm update, Renovate/Dependabot bağımlılıkları güncel tutar; major güncellemeleri oku (değişiklik günlüğü/geçiş kılavuzu) ve sakince test et.
Ne zaman breaking change olur?
Kaldırılan/yeniden adlandırılan işlevler veya parametreler, değişen dönüş değerleri, farklı hatalar/istisnalar, daha sıkı doğrulama, değişen varsayılanlar, daha yüksek asgari sürümler (Node, Python), bırakılan platformlar, değişen API yanıt biçimleri, veri tabanı şeması değişiklikleri. Kullanıcıların güvenebileceği her şey genel arayüzün parçasıdır. Önce kullanımdan kaldırmak (uyarı, geçiş dönemi), sonra bir sonraki major’da kaldırmak daha iyidir.
Alternatifler ve uygulama
- CalVer (
2026.10, Ubuntu24.04): zamana dayalı, bir ritimle yayımlanan uygulamalara/sürümlere uygundur. - Dağıtımlar için derleme/commit karmaları.
- Conventional Commits (
feat:,fix:,feat!:) otomatik sürüm atamasını ve değişiklik günlüklerini mümkün kılar (semantic-release, release-please). - Git etiketleri
v1.2.3, geçiş ipuçları içeren sürüm notları. - Web API’leri için: URL/başlıkta sürüm (bkz. API sürümleme); uygulamalar sürümü “Hakkında” iletişim kutusunda gösterir (destek!).
- Tutarlı kal: basit bir şemayı güvenilir biçimde kullanmak, sık bozulan karmaşık bir şemadan iyidir.
Ayrıca bak: Git etiketleri, sürümler ve değişiklik günlüğü, API sürümleme