SemVer-calculator

Semantic Versioning bestaat uit vijf bewegende onderdelen: MAJOR.MINOR.PATCH, plus optionele suffixen -prerelease en +build. Deze rekenmachine neemt een versiestring aan, valideert deze volgens de semver 2.0.0-grammatica, splitst deze op in de componenten en toont de volgende major-, minor-, patch- en prerelease-versie (-rc.1) naast elkaar.

Hoe je een versie upgradet

  1. 1

    Plak de huidige versie

    accepteert de formulieren `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` en andere formulieren van versie 2.0.0.

  2. 2

    Lees de ontlede onderdelen

    De tool splitst de string op in major, minor, patch, prerelease en buildmetagegevens, zodat u kunt bevestigen dat deze is geïnterpreteerd zoals u verwachtte.

  3. 3

    Vergelijk de volgende versies

    Het toont de volgende major, minor en patch tegelijk, plus een prerelease-kandidaat (`-rc.1`). Een minor verhogen zet patch terug op 0; een major verhogen zet zowel minor als patch terug.

  4. 4

    Kopieer de nieuwe versie

    Kies de versie die bij uw wijziging past en gebruik deze in uw `package.json`, `Cargo.toml`, git-tag of release notes.

Wat deze rekenmachine toont

Voor een versie als 1.2.3 toont de tool vier voorgestelde volgende versies:

Verhoging 1.2.3 wordt
major 2.0.0
minor 1.3.0
patch 1.2.4
prerelease 1.2.4-rc.1

Een minor verhogen zet patch terug op 0; een major verhogen zet zowel minor als patch terug op 0. De prerelease-suggestie markeert de volgende patch als release-kandidaat. Opdrachtregelprogramma’s zoals npm version bieden meer bewerkingen (premajor, preminor, prepatch en prerelease-verhogingen ter plekke, zoals 1.2.3-beta.1 dat 1.2.3-beta.2 wordt) als u ze nodig hebt in een release-script.

De prioriteitsregels die u zult tegenkomen

  • Een voorversie heeft een lagere prioriteit dan de officiële versie: 1.0.0-rc.1 < 1.0.0.
  • Numerieke identificatoren worden numeriek vergeleken; alfanumerieke worden lexicografisch vergeleken: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • De buildmetagegevens (+sha.abc) worden voor prioriteit genegeerd. 1.0.0+20240101 en 1.0.0+20250101 zijn gelijke versies.
  • Een voorloopnul in een numerieke identificator is ongeldig. 1.0.0-rc.01 is niet semver; gebruik rc.1.

Spiekbriefje voor bereikoperatoren

  • ^1.2.3, elke versie met een nummer ≥ 1.2.3 en < 2.0.0 (blijft op dezelfde hoofdversie).
  • ~1.2.3, elke versie met een nummer ≥ 1.2.3 en < 1.3.0 (blijft op dezelfde subversie).
  • >=1.2.3 <2.0.0, expliciet bereik.
  • 0.x is speciaal: npm behandelt ^0.2.3 als >=0.2.3 <0.3.0, omdat versies vóór 1.0 als onstabiel worden beschouwd.

Wanneer moet u de hoofdversie verhogen

Verhoog de major bij elke wijziging die downstreamgebruikers breekt: een verwijderde openbare API, een gewijzigde functiesignatuur, gewijzigd standaardgedrag of een hernoemde configuratiesleutel. Een minor is uitsluitend voor aanvullende wijzigingen. Een patch is voor foutcorrecties die het contract niet wijzigen.

Veelgestelde vragen

Nummer 01.2.3 is niet geldig. Elke numerieke identificator moet een niet-negatieve gehele getal zijn zonder voorafgaande nulletens, met uitzondering van de letterlijke waarde 0.

Gebruik een patch bump uit uw laatste 1.0.0-rc.N-versie; Semver beschouwt dit als een overgang van de voorversie naar de officiële versie. Als alternatief kunt u de versie expliciet instellen en een tag toevoegen.

De nummering van build-metagegevens volgt op + en wordt bij het ordenen genegeerd. De nummering van pre-release volgt op - en heeft een lagere prioriteit dan die van release. De meeste registers ondersteunen beide nummeringen tegelijkertijd, zoals bij 1.2.3-rc.1+build.77.

Ja – Semver vereist geen opeenvolgende versies van de software. Het overstappen van versie 3.x rechtstreeks naar versie 5.x is mogelijk, hoewel de meeste teams dit gebruiken om een bijzonder drastische verandering aan te geven.

Gerelateerde tools

Tool beschikbaar in andere talen