Was ist Semantic Versioning?
Semantic Versioning (SemVer) ist eine Versionierungskonvention, die die Art der zugrunde liegenden Aenderungen kommuniziert. Jede Versionsnummer hat drei Teile:
MAJOR.MINOR.PATCH
3 . 2 . 1
Die drei Teile
- MAJOR (3.x.x) — Breaking Changes. Bestehende Integrationen muessen moeglicherweise aktualisiert werden.
- MINOR (x.2.x) — Neue Features, die abwaertskompatibel sind. Sicheres Upgrade.
- PATCH (x.x.1) — Bugfixes und kleinere Verbesserungen. Keine neuen Features, keine Breaking Changes.
Wann was erhoehen?
Hier sind typische Szenarien:
1.0.0 → 1.0.1 Bugfix (Patch)
1.0.1 → 1.1.0 Neues Feature (Minor)
1.1.0 → 2.0.0 Breaking Change (Major)
Pre-Release-Versionen
SemVer unterstuetzt Pre-Release-Labels zum Testen:
2.0.0-alpha.1
2.0.0-beta.3
2.0.0-rc.1
Warum SemVer wichtig ist
- Es kommuniziert das Upgrade-Risiko auf einen Blick.
- Paketmanager (npm, Composer) nutzen es fuer die Aufloesung von Abhaengigkeiten.
- Es baut Vertrauen auf: Nutzer wissen, was sie bei jedem Release erwartet.
- Es verhindert Dependency Hell in komplexen Projekten.
SemVer und Changelogs
Ein nach SemVer-Versionen organisierter Changelog gibt Nutzern einen klaren Upgrade-Pfad. Jeder Versionseintrag sagt ihnen genau, was sich geaendert hat und ob sie handeln muessen. Tools wie Deplyd zeigen Versionsnummern automatisch neben deinen Changelog-Eintraegen an.