62 lines
5.0 KiB
Markdown
62 lines
5.0 KiB
Markdown
# 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.
|