Semantic Versioning (SemVer) ist eine Spezifikation von Tom Preston-Werner, die Softwareversionen als MAJOR.MINOR.PATCH nummeriert. MAJOR ändert sich bei inkompatiblen API-Änderungen, MINOR bei rückwärtskompatiblen Funktionserweiterungen, PATCH bei rückwärtskompatiblen Fehlerbehebungen; Pre-Release-Kennungen, Build-Metadaten und Regeln für den Versionsvergleich ergänzen das Schema. So zeigt die Versionsnummer Konsumenten, wie eine Änderung sie betrifft.

Semantic Versioning (SemVer)

Details
Vollständiger Name

Semantic Versioning Specification

Kernkonzepte:

Versionsformat
MAJOR

Inkompatible API-Änderungen (Breaking Changes)

MINOR

Rückwärtskompatible Funktionserweiterungen

PATCH

Rückwärtskompatible Fehlerbehebungen

Pre-Release-Versionen

Bindestrich und Identifikatoren anhängen (z.B. 1.0.0-alpha.1)

Build-Metadaten

Pluszeichen und Identifikatoren anhängen (z.B. 1.0.0+20241111)

Versionspriorität

Klare Regeln für Versionsvergleich

Initiale Entwicklung

0.y.z für initiale Entwicklung (API instabil)

Public API-Deklaration

Sobald public API deklariert, sind Versionsabhängigkeiten wichtig

Schlüsselvertreter

Tom Preston-Werner

Wann zu verwenden:

  • Bibliotheken und APIs, die von anderer Software konsumiert werden

  • Software mit definierten öffentlichen Schnittstellen

  • Projekte, die Abhängigkeitsmanagement erfordern

  • Kommunikation von Änderungsauswirkungen an Nutzer/Konsumenten