SemVer-kalkylator

Semantisk versionshantering har fem rörliga delar: MAJOR.MINOR.PATCH, plus valfria suffix -prerelease och +build. Den här kalkylatorn tar en versionssträng, validerar den mot grammatiken i semver 2.0.0, delar upp den i sina komponenter och visar nästa major-, minor-, patch- och prerelease-version (-rc.1) sida vid sida.

Så höjer du en version

  1. 1

    Klistra in den aktuella versionen

    Accepterar `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` och andra semver 2.0.0-former.

  2. 2

    Läs de tolkade delarna

    Verktyget delar upp strängen i major, minor, patch, prerelease och byggmetadata så att du kan bekräfta att den tolkades som du förväntade dig.

  3. 3

    Jämför nästa versioner

    Det visar nästa major, minor och patch samtidigt, plus en prerelease-kandidat (`-rc.1`). Att höja minor återställer patch till 0; att höja major återställer både minor och patch.

  4. 4

    Kopiera den nya versionen

    Välj den version som passar din ändring och använd den i din `package.json`, `Cargo.toml`, git-tagg eller release notes.

Vad den här kalkylatorn visar

För en version som 1.2.3 visar verktyget fyra föreslagna nästa versioner:

Höjning 1.2.3 blir
major 2.0.0
minor 1.3.0
patch 1.2.4
prerelease 1.2.4-rc.1

Att höja minor återställer patch till 0; att höja major återställer både minor och patch till 0. Prerelease-förslaget märker nästa patch som en release-kandidat. Kommandoradsverktyg som npm version lägger till fler operationer (premajor, preminor, prepatch och prerelease-inkrement på plats som 1.2.3-beta.1 som blir 1.2.3-beta.2) om du behöver dem i ett release-skript.

Företrädesregler du kommer att stöta på

  • En prerelease har lägre företräde än releasen: 1.0.0-rc.1 < 1.0.0.
  • Numeriska identifierare jämförs numeriskt; alfanumeriska jämförs lexikalt: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • Byggmetadata (+sha.abc) ignoreras för företräde. 1.0.0+20240101 och 1.0.0+20250101 är likvärdiga versioner.
  • En inledande nolla i en numerisk identifierare är ogiltig. 1.0.0-rc.01 är inte semver; använd rc.1.

Lathund för intervalloperatorer

  • ^1.2.3, allt >=1.2.3 och <2.0.0 (stannar på samma major).
  • ~1.2.3, allt >=1.2.3 och <1.3.0 (stannar på samma minor).
  • >=1.2.3 <2.0.0, explicit intervall.
  • 0.x är speciellt: npm behandlar ^0.2.3 som >=0.2.3 <0.3.0 eftersom pre-1.0 anses instabilt.

När du ska höja major

Höj major för varje ändring som bryter nedströms konsumenter: borttaget publikt API, ändrad funktionssignatur, ändrat standardbeteende, omdöpt konfignyckel. En minor är endast för additiva ändringar. En patch är för buggfixar som inte ändrar kontraktet.

Vanliga frågor

Nej. 01.2.3 är ogiltig. Varje numerisk identifierare måste vara ett icke-negativt heltal utan inledande nollor, utom för den bokstavliga 0.

Använd en patch-höjning från din senaste 1.0.0-rc.N, semver behandlar det som att examineras ut ur prerelease till releaseversionen. Alternativt kan du ange versionen uttryckligen och tagga.

Nej. Byggmetadata kommer efter + och ignoreras för ordning. Prerelease kommer efter - och sänker företrädet under releasen. De flesta register tillåter båda samtidigt: 1.2.3-rc.1+build.77.

Ja, semver kräver inte på varandra följande majors. Att hoppa från 3.x direkt till 5.x är giltigt, även om de flesta team reserverar det för att signalera en särskilt omvälvande ändring.

Relaterade verktyg

Verktyget finns på andra språk