Skip to content

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:

text
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 rotation

Die 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 in security/vex.openvex.json erfolgen, 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 mit frontend/package.json übereinstimmen.
  • Ein Tag veröffentlicht linux/amd64- und linux/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 wiederholt make check und 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:

bash
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.27

Heften 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/v1 Vertrag 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 /data und APP_SECRET_KEY, lesen Sie CHANGELOG.md und 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.

Veröffentlicht unter der Lizenz AGPL-3.0-or-later.