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