Versionierung & Releases (SemVer)
Postbox folgt seit v2.0.0 (Laravel-13-Upgrade, Juni 2026) Semantic Versioning: MAJOR.MINOR.PATCH.
Source of Truth
| Quelle | Bedeutung |
|---|---|
/VERSION (Repo-Root) | Die Version, an der gerade gearbeitet wird (eine Zeile, z. B. 2.0.0) |
Git-Tags vX.Y.Z | Released Stände — Tag + Push setzt ausschließlich der Maintainer |
docs/changelog.md | Datumsbasierte Einträge; beim Release kommt ein Versions-Header ## vX.Y.Z — YYYY-MM-DD über die zugehörigen Einträge |
Alles vor v2.0.0 ist Prä-SemVer-Historie (datumsbasierte Entwicklung ohne Versionsnummern).
Wann welcher Bump?
| Bump | Kriterium |
|---|---|
MAJOR (3.0.0) | Breaking Change: Framework-Major-Upgrade, Bruch im Collector-API-Vertrag (zählt als öffentliche API), inkompatible DB-/Config-Änderungen, entfernte Features |
MINOR (2.1.0) | Neue Features, Seiten, Commands, Endpoints — abwärtskompatibel |
PATCH (2.0.1) | Bugfixes, Doku, Refactorings ohne Verhaltensänderung, Dependency-Patches |
Branch-Konvention
vMAJOR.MINOR.x Arbeits-Linie v2.0.x
vMAJOR.MINOR.PATCH gezielte Release-Vorbereitung v2.0.1
v…-topic-suffix Topic innerhalb einer Linie v2.0.x-bonus-fix
develop | main langlebige Branches (ausgenommen)
Neue Arbeits-Branches tragen immer Versions-Namen; die Ziel-Version wird vor der Branch-Anlage festgelegt. Der erste Commit auf einem neuen Versions-Branch bumpt die VERSION-Datei. In Claude-Code-Sessions wird die Konvention technisch erzwungen (Branch-Guard-Hook) und die Arbeits-Version bei jedem Session-Start angezeigt.
Release-Ablauf
-
Release-Check fahren (in Claude-Sessions:
/release-check): KonsistenzVERSION↔ Branch ↔ Changelog-Header ↔ Tag-frei, Working Tree clean, plus Qualitäts-Gates (composer lint:checkmit geleertem PHPStan-Result-Cache,php artisan test,composer audit,npm run build). -
Changelog-Versions-Header setzen, committen, pushen.
-
Maintainer taggt und pusht:
git tag -a v2.0.0 -m "v2.0.0 — Laravel 13"
git push origin v2.0.0 -
Deploy (siehe Deployment), danach nächste Arbeits-Version festlegen → neuer
vX.Y.x-Branch mitVERSION-Bump als erstem Commit.
Hotfixes
Patch-Branch von main/Tag aus (z. B. v2.0.1), Fix + Test, Release-Check, Tag durch Maintainer — danach zurück in develop mergen.