diff --git a/.planning/phases/19.8-console-commands-overhaul/19.8-06-SUMMARY.md b/.planning/phases/19.8-console-commands-overhaul/19.8-06-SUMMARY.md index e8bc6058..d0017747 100644 --- a/.planning/phases/19.8-console-commands-overhaul/19.8-06-SUMMARY.md +++ b/.planning/phases/19.8-console-commands-overhaul/19.8-06-SUMMARY.md @@ -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 --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).