feat(release): --status subcommand, live progress, run log, richer summary #1390

Merged
brenno merged 1 commit from feat/release-status-and-checklist into main 2026-08-08 22:12:47 +00:00
Owner

Wat

Maakt een onbewaakte release leesbaar en inspecteerbaar (na de faalmodi-hardening
van #1388). Geen wijziging aan wát de release doet — alleen aan hoe zichtbaar het is.
Eerste van drie afgesproken vervolg-PR's.

--status vX.Y.Z — read-only "waar sta ik?"

Een nieuw commando dat in één blik toont waar een release staat, zonder iets te
muteren, zonder wachtwoord, zonder poort — het stopt vóór dat alles:

== [0:00] Status van v0.4.1 ==
   [ ] release-branch release/v0.4.1 op origin
   [x] release-PR #1382 gemerged
   [x] tag v0.4.1 op origin (start de Forgejo-release-CI)
   [x] tag v0.4.1 op mirror (start de Windows-build)
   [x] release aangemaakt op de forge
   [x] SHA256SUMS aanwezig (van de publiceren-job)
   [x] handtekening SHA256SUMS.minisig aangehangen

== [0:06] Advies ==
   De release lijkt compleet. Controleer nog de live web-versie en de downloadpagina.

Het advies zegt precies wat --resume nu zou doen (of dat er niets loopt). Dit is
dé "waar ben ik?"-vraag na een afbreking — nu zonder gokken.

Live voortgang in de tijd

Elke sectiekop toont voortaan de tijd sinds de start (== [12:34] Fase 1 — … ==),
zodat je tijdens de lange onbewaakte keten altijd ziet hoe ver je bent en hoe lang
een stap duurt. Append-only (geen in-place TUI die de bouwuitvoer toch zou overschrijven).

Logboek

Elke échte run spiegelt zijn uitvoer naar een tijdgestempeld logbestand onder
build/release-logs/ (git-genegeerd) voor post-mortem. Het minisign-wachtwoord komt
via read -s binnen en staat dus niet in het log.

Rijkere eindsamenvatting

finish toont nu de totale duur, de release-pagina, het logboekpad en de
--status-opdracht om de volledige staat na te lopen.

Test

  • --status zonder tag weigert (hermetisch, vóór git/netwerk).
  • Statische lock: --status is read-only — cmd_status; exit 0 staat vóór de
    wachtwoordprompt, dus het kan nooit muteren of om het wachtwoord vragen.
  • Rooktest (handmatig): --status v0.4.1 → alles [x], "compleet"; --status v9.9.9
    → alles [ ], "start een verse release". --print-version blijft hermetisch.

Poort & scans

make check groen; make check-secrets + make sast + shellcheck schoon.
DAST n.v.t. (geen webbundel/geserveerd oppervlak).

Bewaker

Bewust overgeslagen: puur observationeel + read-only. Geen bestandsformaat, opslag
(het logboek is lokaal onder het git-genegeerde build/), afhankelijkheid, nieuwe
vertrouwde partij of publieke belofte.

🤖 Generated with Claude Code

## Wat Maakt een onbewaakte release **leesbaar en inspecteerbaar** (na de faalmodi-hardening van #1388). Geen wijziging aan *wát* de release doet — alleen aan hoe zichtbaar het is. Eerste van drie afgesproken vervolg-PR's. ## `--status vX.Y.Z` — read-only "waar sta ik?" Een nieuw commando dat in één blik toont waar een release staat, zonder iets te muteren, zonder wachtwoord, zonder poort — het stopt vóór dat alles: ``` == [0:00] Status van v0.4.1 == [ ] release-branch release/v0.4.1 op origin [x] release-PR #1382 gemerged [x] tag v0.4.1 op origin (start de Forgejo-release-CI) [x] tag v0.4.1 op mirror (start de Windows-build) [x] release aangemaakt op de forge [x] SHA256SUMS aanwezig (van de publiceren-job) [x] handtekening SHA256SUMS.minisig aangehangen == [0:06] Advies == De release lijkt compleet. Controleer nog de live web-versie en de downloadpagina. ``` Het advies zegt precies wat `--resume` nu zou doen (of dat er niets loopt). Dit is dé "waar ben ik?"-vraag na een afbreking — nu zonder gokken. ## Live voortgang in de tijd Elke sectiekop toont voortaan de tijd sinds de start (`== [12:34] Fase 1 — … ==`), zodat je tijdens de lange onbewaakte keten altijd ziet hoe ver je bent en hoe lang een stap duurt. Append-only (geen in-place TUI die de bouwuitvoer toch zou overschrijven). ## Logboek Elke échte run spiegelt zijn uitvoer naar een tijdgestempeld logbestand onder `build/release-logs/` (git-genegeerd) voor post-mortem. Het minisign-wachtwoord komt via `read -s` binnen en staat dus **niet** in het log. ## Rijkere eindsamenvatting `finish` toont nu de totale duur, de release-pagina, het logboekpad en de `--status`-opdracht om de volledige staat na te lopen. ## Test - `--status` zonder tag weigert (hermetisch, vóór git/netwerk). - Statische lock: `--status` is read-only — `cmd_status; exit 0` staat vóór de wachtwoordprompt, dus het kan nooit muteren of om het wachtwoord vragen. - Rooktest (handmatig): `--status v0.4.1` → alles `[x]`, "compleet"; `--status v9.9.9` → alles `[ ]`, "start een verse release". `--print-version` blijft hermetisch. ## Poort & scans `make check` groen; `make check-secrets` + `make sast` + `shellcheck` schoon. DAST n.v.t. (geen webbundel/geserveerd oppervlak). ## Bewaker Bewust overgeslagen: puur observationeel + read-only. Geen bestandsformaat, opslag (het logboek is lokaal onder het git-genegeerde `build/`), afhankelijkheid, nieuwe vertrouwde partij of publieke belofte. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(release): --status subcommand, live elapsed progress, run log, richer summary
All checks were successful
scans / scans (pull_request) Successful in 2m32s
static-gate / static-gate (pull_request) Successful in 5m40s
linux-gate / gate-linux (pull_request) Successful in 27m37s
7a73124bd4
Maakt een onbewaakte release leesbaar en inspecteerbaar (na de faalmodi-hardening van
#1388). Geen wijziging aan wát de release doet — alleen aan hoe zichtbaar het is.

- --status vX.Y.Z: read-only overzicht van waar een release staat (release-branch, PR
  open/gemerged, tag op origin én mirror, release aangemaakt, SHA256SUMS, handtekening)
  met advies over wat --resume nu zou doen. Geen wachtwoord, geen poort, geen mutatie —
  stopt vóór alles. Beantwoordt "waar ben ik?" na een afbreking.
- Elke sectiekop toont verstreken tijd sinds de start ([m:ss]).
- Elke échte run spiegelt uitvoer naar een tijdgestempeld logbestand onder
  build/release-logs/ (git-genegeerd); het wachtwoord (read -s) komt niet in het log.
- Rijkere eindsamenvatting: duur, release-pagina, logboek, --status-opdracht.

Tests: --status zonder tag weigert (hermetisch); statische lock dat --status read-only
is (cmd_status; exit 0 vóór de wachtwoordprompt). Rooktest: --status v0.4.1 (alles [x])
en v9.9.9 (alles [ ]); --print-version blijft hermetisch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit d7d74fb494 into main 2026-08-08 22:12:47 +00:00
brenno deleted branch feat/release-status-and-checklist 2026-08-08 22:12:47 +00:00
Sign in to join this conversation.
No description provided.