Kalkulator SemVer

Wersjonowanie semantyczne składa się z pięciu elementów: MAJOR.MINOR.PATCH oraz opcjonalnych sufiksów -prerelease i +build. Ten kalkulator przyjmuje ciąg wersji, sprawdza go zgodnie z gramatyką semver 2.0.0, rozkłada go na składniki i wyświetla obok siebie następną wersję major, minor, patch i prerelease (-rc.1).

Jak aktualizować wersję

  1. 1

    Wklej aktualną wersję

    Przyjmuje formularze `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` oraz inne formularze typu semver 2.0.0.

  2. 2

    Odczytaj rozłożone części

    Narzędzie rozkłada ciąg na major, minor, patch, prerelease i metadane kompilacji, dzięki czemu możesz potwierdzić, że został zinterpretowany zgodnie z oczekiwaniami.

  3. 3

    Porównaj następne wersje

    Wyświetla jednocześnie następną wersję major, minor i patch, a także kandydata prerelease (`-rc.1`). Podniesienie minor zeruje patch; podniesienie major zeruje zarówno minor, jak i patch.

  4. 4

    Skopiuj nową wersję

    Wybierz wersję odpowiednią do swojej zmiany i użyj jej w `package.json`, `Cargo.toml`, tagu git lub notatkach wydania.

Co pokazuje ten kalkulator

Dla wersji takiej jak 1.2.3 narzędzie pokazuje cztery sugerowane następne wersje:

Podniesienie 1.2.3 zmienia się na
major 2.0.0
minor 1.3.0
patch 1.2.4
prerelease 1.2.4-rc.1

Podniesienie minor zeruje patch (0); podniesienie major zeruje zarówno minor, jak i patch (0). Sugestia prerelease oznacza następny patch jako kandydata do wydania. Narzędzia wiersza poleceń takie jak npm version dodają więcej operacji (premajor, preminor, prepatch oraz zwiększanie prerelease w miejscu, np. 1.2.3-beta.1 zmienia się na 1.2.3-beta.2), jeśli potrzebujesz ich w skrypcie wydania.

Zasady priorytetu, na które musisz zwrócić uwagę

  • Wersja przedwydawnicza ma niższy priorytet niż wersja oficjalna: 1.0.0-rc.1 < 1.0.0.
  • Identyfikatory liczbowe porównywane są na podstawie wartości liczbowej; identyfikatory alfanumeryczne – na podstawie kolejności leksykalnej: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • Metadane kompilacji (+sha.abc) są ignorowane pod kątem priorytetu; wersje 1.0.0+20240101 i 1.0.0+20250101 są równoważne.
  • Wiodące zero w liczbowym identyfikatorze jest nieprawidłowe. 1.0.0-rc.01 nie jest poprawnym formatem semver; użyj rc.1.

Spis informacji o zakresach wartości

  • ^1.2.3 – wszystkie wersje od 1.2.3 do 2.0.0 (z zachowaniem tej samej wersji głównej).
  • ~1.2.3 – wszystkie wersje od 1.2.3 do 1.3.0 (zachowują tę samą wersję podrzędną).
  • >=1.2.3 <2.0.0 – wyraźny zakres.
  • 0.x jest wyjątkowy: npm traktuje ^0.2.3 jako >=0.2.3 <0.3.0, ponieważ wersje przed 1.0 są uznawane za niestabilne.

Kiedy podnieść wersję główną (major)

Podnieś major przy każdej zmianie, która psuje odbiorców w dół strumienia: usunięty publiczny interfejs API, zmieniony podpis funkcji, zmienione domyślne zachowanie lub zmieniona nazwa klucza konfiguracji. Minor dotyczy wyłącznie zmian dodatkowych. Poprawka służy do naprawy błędów, które nie zmieniają kontraktu.

Najczęściej zadawane pytania

Numer 01.2.3 nie jest ważny. Każdy numerowy identyfikator musi być całkowity liczbą nieujemną bez zer na początku, z wyjątkiem wartości literalnej 0.

Wykorzystaj zmianę wersyjną z ostatniej wersji 1.0.0-rc.N – system Semver traktuje ją jako przejście z wersji przedwydanej do wersji oficjalnej. Alternatywnie określ wersję wyraźnie i dodaj do niej oznaczenie.

Numer metadanych „Build“ pojawia się po + i nie jest uwzględniany przy sortowaniu. Numer „Prerelease“ występuje po - i ma niższy priorytet niż numer „Release“. Większość rejestrów umożliwia oba numery jednocześnie, np. 1.2.3-rc.1+build.77.

Tak – wymiana wersji nie wymaga kolejnych aktualizacji głównych. Przejście bezpośrednio z wersji 3.x do 5.x jest dopuszczone, choć większość zespołów wykorzystuje je wyłącznie jako sygnał o szczególnie istotnej zmianie.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach