Validate representative ReleaseKit consumers

This commit is contained in:
2026-10-06 20:15:14 +00:00
parent 21294404d7
commit 55333b08ae
6 changed files with 123 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
# ReleaseKit audit implementation plan
Status: Stages 1–10 complete; Stage 11 next.
Status: All implementation stages complete.
Baseline: `e4be7fa` (2026-10-06). The [audit](audit.md) records the evidence,
product goals, and selected direction. This document owns implementation order
and completion criteria for that work.
@@ -568,6 +568,27 @@ migration, and remaining deployment work. Every F1–F8 finding has an implement
resolution and appropriately scoped evidence. Review and commit the final
changes with a clean worktree.
**Completed:** The source-only consumer publication fixture runs one meaningful
compatibility check against its committed note and module, then confirms the
annotated tag on a local Git remote. A separate binary consumer fixture builds
`buildinfo` binaries for selected Linux targets, checks native version output,
and delivers both binaries plus `SHA256SUMS` to a local HTTP Gitea fixture.
PromptKit and Narratio were reviewed read-only on 2026-10-06; the product
roadmap records retained settings, runtime and policy/procedure adaptations,
and projected deletion ranges. No sibling repositories were changed.
The final documentation review reconciled GoDoc, CLI/configuration references,
consumer guidance, Woodpecker examples, the internal inventory, and product
roadmap. The pre-release API migration is `Validate` to `AdditionalChecks` and
`DeliveryRequest.Build` to `*BuildSpec`, with `Prebuilt` for retained artifacts;
JSON `checks` remains the ordered additional-check setting. No new product
decision was required. The completed stages address F1–F8; real source
publication, an immutable tool pin, credentials, workflow activation, and live
Gitea/Woodpecker verification remain deployment work.
The full offline suite and API boundary check pass with Go 1.25.0. Go formatting,
documentation whitespace, and changed local-link checks pass.
## Open Questions
No unresolved product choice is required to implement these stages. The

View File

@@ -204,6 +204,27 @@ Consumer policy and procedure changes should describe the deliberately adopted
standard and its compatibility impact. Adoption should demonstrate reduced local
infrastructure and one coherent release model.
## Representative migration review
Read-only reviews of the available PromptKit and Narratio checkouts were
verified on 2026-10-06 at `4b8169d` and `8afb49c`; both worktrees were clean.
These are migration assessments, not changes to either consumer.
| Consumer | Retain in its profile and product checks | Adaptation and procedure changes |
| --- | --- | --- |
| PromptKit, source-only | Product identity; its `Summary`, `Compatibility`, `Upgrade`, and `Changes` release-note sections; checks that exercise the three maintained Go examples and their product outputs. No runtime `buildinfo` import or binary targets are needed. | Its current release scripts total 209 lines. The projected deletion is about 120–160 lines of shared publication and generic validation machinery; retain the note-content rule and product-example checks as a configured additional check plus a small wiring test. PromptKit already pushes `main` before publication and creates annotated tags. Its release policy and procedure still need to add the hosted note page, delivery credentials, versioned CI invocation, and separate delivery status and recovery. |
| Narratio, binary | Product/module identity, the `./cmd/narratio` main package, `narratio` executable name, Linux amd64, Linux arm64, and macOS arm64 targets, and the `narratio <version>` command. Keep the module-graph check (`go mod tidy -diff`) if it remains useful as a product-specific candidate check. | Its release, check, asset-builder, and helper scripts total 304 lines; two dedicated release test files total 741 lines. Projected deletions are about 220–280 shell lines and 450–650 repeated test lines, leaving a small consumer wiring test and any retained module/note checks. Replace the private linker-version variable with `buildinfo.Version()` while preserving the current command output. Its policy and procedure need to change lightweight tags to annotated tags, state that a successful tag push completes source publication, and move plugin-based page/assets delivery to the shared versioned CI command with content-aware retries and separately provisioned delivery credentials. |
The deletion figures are estimates from the reviewed files, not measured
migration results or a promise that each line will disappear. Product checks,
version output, target choices, and at least one ReleaseKit integration check
remain with each consumer. The existing cross-project estimate of 1,000–1,250
potentially removable lines remains directional until migrations are completed.
The self-contained ReleaseKit fixtures exercise a meaningful source-only
compatibility check through local Git publication, and a `buildinfo` binary
consumer with selected targets through local HTTP delivery. These are separate
publication and delivery operations.
## Remaining work
- Prepare and publish the first ReleaseKit source release under the