Release- und Upgrade-Richtlinie
Definition von erledigt
Jede Änderung, die sich auf das Verhalten auswirkt, muss die Anforderungs-/Antwortmodelle aktualisieren. Eingecheckter OpenAPI-Vertrag, Benutzer-/Betreiberdokumentation und Änderungsprotokoll im gleiche Pull-Anfrage. make check ist das obligatorische lokale und CI-Gate. Es läuft Backend-Suite, Frontend-Build/-Tests, PWA-Vertrag, OpenAPI-Drift-Check, geschützt öffentlicher HTTPS-Vertrag und beide isolierten Akzeptanzwege:
first Owner -> catalog/barcode -> synthetic receipt -> local stock
-> budget -> portable export -> operations overview
first login -> onboarding/update note -> invitation -> roles/account block
-> passkey -> TOTP -> recovery code -> password rotationDie Reise nutzt eine temporäre Datenbank und synthetische Daten. Es wird nie eine Verbindung hergestellt oder löscht einen bereitgestellten Haushalt.
Die vollständige Sequenz der ersten öffentlichen Veröffentlichung, einschließlich GitHub-Repository Einstellungen und GHCR-Sichtbarkeit werden im beibehalten Checkliste für den öffentlichen Start.
Containersicherung
– Laufzeit- und Build-Basis-Images werden durch Digest angeheftet.
- CI prüft vorher den kompletten Git-Verlauf mit der Digest-gepinnten Gitleaks-CLI Gebäude. Nur der exakte synthetische
YOUR_TOKEN-Dokumentationsplatzhalter ist vorhanden auf die Zulassungsliste gesetzt; Die Ergebnisse bleiben in den Protokollen vollständig geschwärzt. – CI erstellt die Produktions-Docker-Datei, schlägt bei behobenen „Hoch/Kritisch“-Ergebnissen fehl durch einen Digest-gepinnten offiziellen Grype-Container und erstellt einen CycloneDX JSON SBOM über einen offiziellen Syft-Container mit Digest-Pin. Dies vermeidet Laufzeit Installationsprogramm-Suchen, während der Scanner und die SBOM-Toolchain unveränderlich bleiben. Irgendein VEX Die Unterdrückung muss insecurity/vex.openvex.jsonerfolgen, einschließlich einer technischen Erreichbarkeitsbegründung und erneute Überprüfung auf Abhängigkeit oder Eingabe. Formatänderungen. – GitHub-Aktionen von Drittanbietern sind an Full-Commit-SHAs angeheftet. Dependabot schlägt vor Wöchentlich gruppierte npm-, Python-, Docker- und Actions-Neben-/Patch-Updates zur Überprüfung; Größere Upgrades bleiben bewusste Arbeit des Betreuers, daher gilt dies auch für Kompatibilitätsänderungen den Freigabeprozess nicht überfluten oder umgehen. - Ein
vMAJOR.MINOR.PATCH-Tag muss genau mitfrontend/package.jsonübereinstimmen. - Ein Tag veröffentlicht
linux/amd64- undlinux/arm64-Bilder mit OCI in GHCR Etiketten, BuildKit-Herkunft und SBOM-Bescheinigung, dann signiert es schlüssellos unveränderlicher Digest mit Cosign. Derselbe Workflow erstellt die GitHub-Version und hängt die CycloneDX-SBOM sowie eine Textdatei an, die das Unveränderliche enthält Bildauszug. – Der Tag-Workflow wiederholtmake checkund das feste Hoch/Kritisch-Bild-Gate vor dem Anmelden und Veröffentlichen, sodass sich ein Tag nicht nur auf einen vorherigen verlassen kann Zweiglauf.
Die private Probe mit Version 0.8.23 erzeugte erstmals ein signiertes Multi-Architektur-Image, eine SBOM und einen unabhängigen Neuinstallationsnachweis. Öffentliche Releases gibt es seit Version 0.8.26. Version 0.8.27 ist der aktuelle Sicherheits- und Wartungskandidat und erhält ein eigenes Tag, Image, eine eigene SBOM, Signatur und Neuinstallationsprüfung. Unveränderliche ältere Artefakte werden niemals ersetzt.
Veröffentlichungsprobe
Jeder Kandidat durchläuft denselben öffentlichen CI-Workflow. Ein Betreuer installiert das versionierte Image mit einem frischen Volume und wiederholt Quellcode-, Neuinstallations-, Upgrade-/Wiederherstellungs- und Signaturprüfungen vor der Ankündigung. Private Haushaltsdaten und die produktive Haushaltsdatenbank sind niemals Teil dieser Probe.
Ein veröffentlichtes Image prüfen
Verwende den veröffentlichten Eigentümer, das Repository und die Version:
docker pull ghcr.io/amturo-gbr/vorrio:0.8.27
cosign verify \
--certificate-identity-regexp '^https://github.com/amturo-gbr/vorrio/.github/workflows/release.yml@refs/tags/v' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
ghcr.io/amturo-gbr/vorrio:0.8.27Heften Sie Produktionsbereitstellungen einer Version oder einem Digest zu. latest ist praktisch für Evaluierung, keine Upgrade-Richtlinie.
Kompatibilität und Upgrades
- Patch-Releases können Fehler und Sicherheitsprobleme beheben, ohne das zu ändern dokumentierter
/api/v1Vertrag inkompatibel. – Unterversionen können Felder und Endpunkte hinzufügen; Clients müssen unbekanntes JSON ignorieren Felder. – Breaking API oder persistente Datenänderungen erfordern eine Hauptversion und sind explizit Migrationshinweise. - Sichern Sie
/dataundAPP_SECRET_KEY, lesen SieCHANGELOG.mdund aktualisieren Sie eine Version Zu einem Zeitpunkt, an dem es aufgrund von Notizen erforderlich ist, überprüfen Sie dann den Zustand, die Bereitschaft, die Anmeldung und die Anzahl und die PWA. – Das Downgrade einer migrierten Datenbank wird nicht unterstützt. Stellen Sie das passende Backup wieder her.
