SemVer Hesaplayıcı

Semantik Sürümleme’nin beş hareketli parçası vardır: MAJOR.MINOR.PATCH, artı isteğe bağlı -prerelease ve +build ekleri. Bu hesaplayıcı bir sürüm dizesi alır, onu semver 2.0.0 dilbilgisine karşı doğrular, onu bileşenlerine ayırır ve sonraki major, minor, patch ve prerelease (-rc.1) sürümlerini yan yana gösterir.

Bir sürüm nasıl yükseltilir

  1. 1

    Mevcut sürümü yapıştırın

    `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` ve diğer semver 2.0.0 biçimlerini kabul eder.

  2. 2

    Ayrıştırılan parçaları okuyun

    Araç, dizeyi major, minor, patch, prerelease ve build meta verisine ayırır; böylece beklediğiniz gibi ayrıştırıldığını doğrulayabilirsiniz.

  3. 3

    Sonraki sürümleri karşılaştırın

    Sonraki major, minor ve patch'i aynı anda gösterir, ayrıca bir prerelease adayı (`-rc.1`) sunar. Minor yükseltmek patch'i 0'a sıfırlar; major yükseltmek hem minor hem patch'i sıfırlar.

  4. 4

    Yeni sürümü kopyalayın

    Değişikliğinize uygun sürümü seçin ve `package.json`, `Cargo.toml`, git etiketi ya da sürüm notlarınızda kullanın.

Bu hesaplayıcının gösterdikleri

1.2.3 gibi bir sürüm için araç, önerilen dört sonraki sürümü gösterir:

Yükseltme 1.2.3 olur
major 2.0.0
minor 1.3.0
patch 1.2.4
prerelease 1.2.4-rc.1

Minor yükseltmek patch’i 0‘a sıfırlar; major yükseltmek hem minor hem patch’i 0‘a sıfırlar. Prerelease önerisi, sonraki patch’i bir sürüm adayı olarak işaretler. npm version gibi komut satırı araçları, bir sürüm betiğinde ihtiyaç duyarsanız daha fazla işlem sunar (premajor, preminor, prepatch ve 1.2.3-beta.1’in 1.2.3-beta.2 olması gibi yerinde prerelease artışları).

Karşılaşacağınız öncelik kuralları

  • Bir prerelease, sürümden daha düşük önceliğe sahiptir: 1.0.0-rc.1 < 1.0.0.
  • Sayısal tanımlayıcılar sayısal karşılaştırılır; alfasayısallar sözcüksel karşılaştırılır: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • Build meta verisi (+sha.abc) öncelik için yok sayılır. 1.0.0+20240101 ve 1.0.0+20250101 eşit sürümlerdir.
  • Sayısal bir tanımlayıcıda baştaki sıfır geçersizdir. 1.0.0-rc.01 semver değildir; rc.1 kullanın.

Aralık operatörleri kopya kâğıdı

  • ^1.2.3, >=1.2.3 ve <2.0.0 olan her şey (aynı major’da kalır).
  • ~1.2.3, >=1.2.3 ve <1.3.0 olan her şey (aynı minor’da kalır).
  • >=1.2.3 <2.0.0, açık aralık.
  • 0.x özeldir: npm ^0.2.3’ü >=0.2.3 <0.3.0 olarak ele alır çünkü 1.0 öncesi kararsız sayılır.

Major ne zaman yükseltilir

Aşağı akış tüketicilerini bozan herhangi bir değişiklik için major yükseltin: kaldırılan genel API, değişen fonksiyon imzası, değişen varsayılan davranış, yeniden adlandırılan yapılandırma anahtarı. Minor yalnızca eklemeli değişikliklere yöneliktir. Patch, sözleşmeyi değiştirmeyen hata düzeltmelerine yöneliktir.

Sık Sorulan Sorular

Hayır. 01.2.3 geçersizdir. Her sayısal tanımlayıcı, gerçek 0 dışında, baştaki sıfırlar olmadan negatif olmayan bir tam sayı olmalıdır.

Son 1.0.0-rc.N‘inizden bir patch yükseltmesi kullanın, semver bunu prerelease’den sürüm sürümüne mezun olma olarak ele alır. Alternatif olarak sürümü açıkça ayarlayın ve etiketleyin.

Hayır. Build meta verisi +’dan sonra gelir ve sıralama için yok sayılır. Prerelease -’den sonra gelir ve önceliği sürümün altına düşürür. Çoğu kayıt defteri ikisine aynı anda izin verir: 1.2.3-rc.1+build.77.

Evet, semver ardışık major’ları gerektirmez. 3.x’ten doğrudan 5.x’e atlamak geçerlidir, ancak çoğu ekip bunu özellikle yıkıcı bir değişikliği işaret etmek için saklar.

İlgili Araçlar

Araç diğer dillerde mevcuttur