Files
ReleaseKit/docs/roadmap/releasekit.md

62 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ReleaseKit adoption and deployment roadmap
Status: Pending consumer adoption and live deployment. The v0.2.0 implementation
and its remediation are complete.
The [v0.2.0 release note](../releases/v0.2.0.md) summarizes the implemented
capabilities. The [internal inventory](../internal/overview.md) records their
owners and local verification. Completed plans and review findings remain in
Git history. The [architecture policy](../policy/architecture.md) and accepted
ADRs own the selected architectural constraints.
## Remaining work
- Choose the broader consumer integration test plan and migration sequence for
PromptKit, ConfigKit, Notarius, Narratio, and Scriptorium. Evaluate API clarity,
product-specific checks, and the infrastructure removed from each repository.
- Adopt the common publication, validation, runtime-version, build, and delivery
conventions where they apply. Keep product identity, compatibility decisions,
and substantive application checks with each consumer.
- Provision delivery credentials and activate ReleaseKit and consumer Woodpecker
workflows as part of deployment. The maintained consumer template selects
tooling from the released application's module configuration.
- Verify live Gitea delivery and Woodpecker execution. Current verification uses
local Git and HTTP fixtures; live deployment remains unverified.
- Measure realized reductions in consumer release infrastructure after migration.
Audita's module-selected local and CI integration is committed at `17421bc`.
## Proposals and deferred work
- Optional recognizable-credential checks remain an unevaluated suggestion from
PromptKit's feature request. Evaluate their detection scope, synthetic-fixture
handling, false-positive costs, and maintenance benefit before selecting shared
support. The proposal establishes no mandatory credential gate.
- ReleaseKit executable binary distribution remains deferred until deliverables
are deliberately selected. Selecting binaries would require delivery
declarations, target checks, automation responsibilities, and corresponding
release policy and procedure updates.
- Evaluate a maintained ReleaseKit CI image or specialized validation/build
settings when a demonstrated consumer need justifies their maintenance cost
under [ADR 0002](../adr/0002-routine-releases.md).
## 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, module-selected 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.