SemVer Rechner

Semantische Versionierung hat fünf bewegliche Teile: MAJOR.MINOR.PATCH, plus optionale -prerelease und +build Suffixe. Dieser Rechner nimmt eine Versionszeichenfolge, validiert sie gegen die semver 2.0.0 Grammatik, zerlegt sie in ihre Komponenten und zeigt die nächsten Haupt-, Neben-, Patch- und Vorabversionen (-rc.1) nebeneinander an.

So erhöhen Sie eine Version

  1. 1

    Fügen Sie die aktuelle Version ein

    Akzeptiert `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` und andere semver 2.0.0 Formen.

  2. 2

    Lesen Sie die analysierten Teile

    Das Tool zerlegt die Zeichenfolge in Haupt-, Neben-, Patch-, Vorabversion und Build-Metadaten, damit Sie bestätigen können, dass sie wie erwartet interpretiert wurde.

  3. 3

    Vergleichen Sie die nächsten Versionen

    Es zeigt die nächste Haupt-, Neben- und Patchversion gleichzeitig an, plus einen Vorabversions-Kandidaten (`-rc.1`). Das Erhöhen der Nebenversion setzt die Patchversion auf 0 zurück; das Erhöhen der Hauptversion setzt sowohl die Neben- als auch die Patchversion zurück.

  4. 4

    Kopieren Sie die neue Version

    Wählen Sie die Version, die zu Ihrer Änderung passt, und verwenden Sie sie in Ihrer `package.json`, `Cargo.toml`, git Tag oder Release-Notizen.

Was dieser Rechner anzeigt

Für eine Version wie 1.2.3 zeigt das Tool vier vorgeschlagene nächste Versionen an:

Erhöhung 1.2.3 wird zu
major 2.0.0
minor 1.3.0
patch 1.2.4
prerelease 1.2.4-rc.1

Das Erhöhen der Nebenversion setzt die Patchversion auf 0 zurück; das Erhöhen der Hauptversion setzt sowohl die Neben- als auch die Patchversion auf 0 zurück. Der Vorabversions-Vorschlag markiert die nächste Patchversion als Release-Kandidat. Befehlszeilen-Tools wie npm version fügen weitere Operationen hinzu (premajor, preminor, prepatch sowie Vorabversions-Inkremente an Ort und Stelle wie 1.2.3-beta.1 zu 1.2.3-beta.2), falls Sie diese in einem Release-Skript benötigen.

Vorrangregeln, die Sie treffen werden

  • Eine Vorabversion hat geringeren Vorrang als die Release-Version: 1.0.0-rc.1 < 1.0.0.
  • Numerische Identifikatoren vergleichen numerisch; alphanumerische vergleichen lexikalisch: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • Build-Metadaten (+sha.abc) werden für den Vorrang ignoriert. 1.0.0+20240101 und 1.0.0+20250101 sind gleichwertige Versionen.
  • Eine führende Null in einem numerischen Identifikator ist ungültig. 1.0.0-rc.01 ist nicht semver; verwenden Sie rc.1.

Bereichsoperatoren Cheatsheet

  • ^1.2.3, alles >=1.2.3 und <2.0.0 (bleibt bei der gleichen Hauptversion).
  • ~1.2.3, alles >=1.2.3 und <1.3.0 (bleibt bei der gleichen Nebenversion).
  • >=1.2.3 <2.0.0, expliziter Bereich.
  • 0.x ist speziell: npm behandelt ^0.2.3 als >=0.2.3 <0.3.0, da Vorabversionen vor 1.0 als instabil gelten.

Wann man die Hauptversion erhöhen sollte

Erhöhen Sie die Hauptversion für jede Änderung, die nachgelagerte Verbraucher bricht: entfernte öffentliche API, geänderte Funktionssignatur, geändertes Standardverhalten, umbenannter Konfigurationsschlüssel. Eine Nebenversion ist nur für additive Änderungen gedacht. Ein Patch ist für Fehlerbehebungen, die den Vertrag nicht ändern.

Häufig gestellte Fragen

Nein. 01.2.3 ist ungültig. Jeder numerische Identifikator muss eine nicht-negative ganze Zahl ohne führende Nullen sein, außer für die Literal 0.

Verwenden Sie eine Patch-Erhöhung von Ihrem letzten 1.0.0-rc.N, semver behandelt das als Übergang von der Vorabversion zur Release-Version. Alternativ setzen Sie die Version explizit und taggen Sie.

Nein. Build-Metadaten kommen nach + und werden für die Reihenfolge ignoriert. Vorabversion kommt nach - und senkt den Vorrang unter die Release-Version. Die meisten Registrierungen erlauben beide gleichzeitig: 1.2.3-rc.1+build.77.

Ja, semver erfordert keine aufeinanderfolgenden Hauptversionen. Der Sprung von 3.x direkt auf 5.x ist gültig, obwohl die meisten Teams dies für die Kennzeichnung einer besonders disruptiven Änderung reservieren.

Verwandte Tools

Tool in anderen Sprachen verfügbar