docs(19.8-06): v0.4.2 released, demo roadmap synced, phase gate green

This commit is contained in:
Jakub Zych
2026-10-22 03:07:14 +02:00
parent ead8e42211
commit 349e2f810b

View File

@@ -3,13 +3,44 @@ phase: 19.8-console-commands-overhaul
plan: 06
subsystem: release
tags: [release, v0.4.2, changelog, demo-roadmap, gate]
status: draft
status: complete
gap_closure: true
requires:
- phase: 19.8-05
provides: the eleven review fixes and the Release impact table
provides:
- "SummerCMS v0.4.2: annotated tag 60b13ae on ead8e42, on origin with master fast-forwarded to it"
- "Changelog post https://summercms.io/changelog/summercms-0-4-2 (id 37)"
- "sm-demo-app roadmap snapshot synced to origin/master ead8e42 (aa4de22, pushed)"
- "Phase 19.8 --all gate green with Docker required"
affects: [applications and plugins pinning SummerCMS (fixes available from v0.4.2), demo roadmap deck]
tech-stack:
added: []
patterns: []
key-files:
created: []
modified:
- .planning/phases/19.8-console-commands-overhaul/19.8-06-SUMMARY.md
- ../sm-demo-app/plugins/demo/content/ROADMAP.md
key-decisions:
- "Reply 'release' read as the proposed tag v0.4.2"
- "Tagged the commit that records the go-ahead (ead8e42, planning-only on top of the proposal) after vet, short tests and the docs checker passed there"
- "No plugin require bumps or application regenerate commits: no row of plan 05's Release impact table asks for one"
- "No Polish name needed: the roadmap change adds no phase (19.6.1 already had one, 762bb90)"
requirements-completed: [D-26]
actuals:
tokens: 4000 # chars/4 over the realized diff (this SUMMARY and the 6-line roadmap snapshot change)
tasks: 3
commits: 2 # MEASURED: git rev-list --count plan_head_before..HEAD before the final docs commit
plan_head_before: 8020b177ffc70f1b980ae769b80f55598998ce77
plan_head_after: ead8e422113d43c9ee828a92a628783634f65294
duration: 35min
completed: 2026-10-22
---
# Phase 19.8 Plan 06: Release of the Review Fixes Summary (draft)
# Phase 19.8 Plan 06: Release of the Review Fixes Summary
**Draft. Task 1 (the release go-ahead) is waiting for the user's reply. Nothing has been pushed or tagged.**
**SummerCMS v0.4.2 is tagged and on origin, with its changelog post at https://summercms.io/changelog/summercms-0-4-2. The tag is annotated, on ead8e42, and master was fast-forwarded to exactly that commit. The demo roadmap snapshot follows the published roadmap, and the phase 19.8 `--all` gate is green with Docker required. Nothing was deployed or force-pushed.**
## Release proposal
@@ -90,3 +121,109 @@ The user's reply, verbatim:
> release
Read as the recommended option with the proposed tag: **release v0.4.2** (RELEASE_TAG=v0.4.2). The reply authorises an annotated tag v0.4.2 on the tested commit, a fast-forward push of exactly that commit to origin master followed by the tag, the same-day changelog post, the sm-demo-app roadmap snapshot commit and its push (when it is the only unpushed commit there), then the `--all` gate. No force push, no deploy.
The reply was recorded in `ead8e42 docs(19.8-06): record the go-ahead: release v0.4.2` before anything was tagged or pushed. That commit is the one tagged.
## Task 2: published
### Range check after a fresh fetch
- `git fetch origin`: exit 0, no output. origin/master was still `6c2164a`, so no other session had pushed.
- Newest tag: still **v0.4.1**, and origin had only v0.4.0 and v0.4.1 in `v0.4.*`. The proposed tag was still correct.
- `git log --format='%h %s' origin/master..ead8e42`: **20 commits**. These are the 18 classified in the proposal, plus `cf06185` (the proposal, which touches only `19.8-06-SUMMARY.md`) and `ead8e42` (the reply, the same file). Class totals: 12 plan 05 code commits, 8 planning documents of this phase, **0 planning documents of other sessions, 0 other code**.
- `git merge-base --is-ancestor origin/master ead8e42`: the push is a fast-forward.
### Checks at the tested commit `ead8e42`
GOCACHE pointed at the session scratchpad (tmpfs) for every go command. `go clean` was not run.
| Check | Result |
|-------|--------|
| `go vet ./...` | PASS |
| `go test -count=1 -short ./...` | PASS (exit 0, every package ok) |
| `go run ./cmd/summer docs:build --check` | PASS ("docs:build: no problems found") |
### Tag
- `git tag -a v0.4.2 ead8e42`: tag object **`60b13aee5dca32b7202e35f92e605652f66b8a97`**, `git cat-file -t v0.4.2` = `tag`, `v0.4.2^{commit}` = `ead8e422113d43c9ee828a92a628783634f65294`.
- Message: `SummerCMS v0.4.2`, then "Fixes from the review of the 0.4 console.", then a Fixed list of nine bullets in user words and an Added list (`bonfire.WithExitCode`, `bonfire.Sanitize`). It has no finding IDs and no planning or quick codes.
### Pushed ranges
| Repository | Push | Range |
|------------|------|-------|
| summercms (framework) | `git push origin ead8e42…:refs/heads/master` | `6c2164a..ead8e42` (fast-forward, 20 commits) |
| summercms (framework) | `git push origin v0.4.2` | new tag v0.4.2. `git ls-remote --exit-code --tags origin v0.4.2` → `60b13ae… refs/tags/v0.4.2` |
| sm-demo-app | `git push origin HEAD:refs/heads/master` | `762bb90..aa4de22` (1 commit, see Task 3) |
The Task 2 verify command (`ls-remote` the tag, fetch, the tagged commit is an ancestor of origin/master, the tag is annotated) passed.
### Changelog
- `scripts/changelog-post.py source v0.4.2` (from ../sm-summercmsio-app): TAG v0.4.2, DATE 2026-10-22T02:54:37+02:00, PREVIOUS v0.4.1, and 21 commit subjects.
- The notes file is in the session scratchpad (`v0.4.2-notes.md`). It has a one-line intro, `## Fixed` (nine bullets) and `## Added` (the two new functions). It has no H1, no planning IDs and no quick codes.
- `scripts/changelog-post.py publish v0.4.2 <notes> --excerpt "Console fixes for 0.4: ordered output under spinners, terminal restored on Ctrl+C, exit codes passed through by summer."` answered `posted id=37 https://summercms.io/changelog/summercms-0-4-2 (published_at 2026-10-22T00:54:37+00:00)`.
- **Post URL: https://summercms.io/changelog/summercms-0-4-2** (HTTP 200 right after publishing). The script read the token file itself. The token was never printed, copied or minted.
### Plugins and applications
Plugins and applications: nothing to publish. No row of plan 05's Release impact table asks for a require bump or a regenerate. The `--all` gate's plugins and apps stages confirm that every shared plugin and application still builds against the local framework, and that `summer build` leaves the generated main.go and plugins.gen.go unchanged.
## Task 3: demo roadmap and the gate
### Roadmap snapshot
- After the push, `ROADMAP_REF=origin/master ../sm-demo-app/scripts/sync-roadmap.sh --check` failed as expected: the snapshot differed from origin/master. This is 19.8's own plan list and progress.
- sm-demo-app before the change: `git status --porcelain` was empty and `origin/master..master` was empty after a fetch. Its HEAD was `762bb90 feat(demo): Polish name for roadmap phase 19.6.1`, already pushed by another session.
- `ROADMAP_REF=origin/master scripts/sync-roadmap.sh` wrote the snapshot from origin/master (ead8e42): `plugins/demo/content/ROADMAP.md`, 4 insertions and 2 deletions.
- TestRoadmapParse, TestRoadmapDeckOrder, TestRoadmapNoClientNames and TestRoadmapPolishTitles: PASS. No new phase, so **no Polish-name commit was needed**.
- Commit **`aa4de22 chore: sync the ROADMAP.md snapshot (summercms ead8e42)`**. It touches only `plugins/demo/content/ROADMAP.md` and was the only unpushed commit. It was pushed `762bb90..aa4de22`, and `origin/master..master` is now empty. Nothing was deployed.
### `--all` gate
`PHASE198_REQUIRE_DOCKER=1 TESTCONTAINERS_HOST_OVERRIDE=127.0.0.1 bash scripts/check-phase19.8.sh --all` ran with GOCACHE and TMPDIR in the session scratchpad and Docker reached directly (no `sudo -u golem`). Exit 0. The landing pre-check `sync-roadmap --check` printed ok.
| Stage | Result | Notes |
|-------|--------|-------|
| self-test | PASS | |
| go | PASS | vet, short and the named tests: diary 30, sunscreen 2, bonfire 42, docsite 2, conga 5, lagoon 7, surf 13, flare 1, dev 4, cmd/summer 6. Race stage over diary, sunscreen, bonfire and docsite |
| hello | PASS | vet, 13 tests, then 5 named tests |
| docs | PASS | TestDocsTree; docs:build reported no problems; 67 files contain no client name; all 35 summer commands have examples |
| plugins | PASS | 15 shared plugins |
| apps | PASS | 5 applications (sm-demo-app, sm-bm-app, sm-grzybyfunkcjonalne-app, sm-summercmsio-app, fonoteka.go): build, generated files unchanged, `list` and `help migrate` exit 0 |
| landing | PASS | nuxt generate, tap 38/38, 4 terminal tests. **NOT RUN TestTerminalCommands** (allowed: needs network, Docker and ports; `SUMMERCMS_TERMINAL_CHECK=1`). 4 roadmap tests; "roadmap: snapshot matches origin/master" |
| docker | PASS | TestServeLifecycle; 6 lagoon tests including TestMigrateAppliedLines; 3 cabana tests |
Final line: **`Phase 19.8 gate passed`**. No line starts with `FAIL` or `NOT RUN docker`. The full log is `check-phase19.8-06.log` in the session scratchpad.
### Suggested g15office comment (for the orchestrator)
> Phase 19.8 review fixes released as SummerCMS v0.4.2 (changelog: https://summercms.io/changelog/summercms-0-4-2); phase gate green; ready for /msd-verify-work
## Deviations from Plan
**1. [Rule 3 - Blocking] Build cache on tmpfs.** `/home` is at 99% (5.1G free) and `/media/nvme` is at 99%. Every go command, including the gate, ran with `GOCACHE` (and, for the gate, `TMPDIR`) in the session scratchpad on tmpfs. The user did not ask for space to be freed, so `go clean` was not run.
**2. Tagged commit.** The plan tags "master HEAD". HEAD at release time was `ead8e42`, the planning-only commit that records the reply. It was committed before the checks, so the checks ran on exactly the commit that was tagged and pushed.
Otherwise the plan was executed as written.
## Known Stubs
None.
## Threat Flags
None. The pushes, the tag, the post and the demo snapshot are the surfaces in the plan's threat register. T-19.8-34 to T-19.8-37 were mitigated as planned:
- a fetch and range classification came before the push
- the push was a fast-forward of exactly the tested, tagged commit
- the token stayed in its file
- TestRoadmapNoClientNames passed before the snapshot commit
## Final docs commit
This SUMMARY's completion commit is **local only**. The plan does not push it, and it is not part of v0.4.2.
## Self-Check: PASSED
Found: cf06185, ead8e42 (local and origin/master), tag object 60b13ae (local and on origin as refs/tags/v0.4.2), sm-demo-app aa4de22 (on origin/master), changelog post (HTTP 200).