Update ReleaseKit adoption plan after remediation

This commit is contained in:
2026-11-04 02:38:06 +00:00
parent 4d92ee4ee6
commit 0fc00039bd

View File

@@ -1,8 +1,8 @@
# ReleaseKit v0.9.0 adoption # ReleaseKit v0.9.0 adoption
Status: proposed maintenance roadmap; no implementation has started. Upgrade Status: R1 and R2 remediation is complete in separate commits. ReleaseKit v0.9.0
scope is defined below. The scheduling of existing local corrections remains adoption and the completion assertion repair remain planned; the root tool still
open under OD-1. This document does not authorize source or hosted publication. selects v0.8.0. This document does not authorize source or hosted publication.
## Purpose and authority ## Purpose and authority
@@ -20,7 +20,9 @@ and owning package tests until implementation updates them.
## Current baseline and review evidence ## Current baseline and review evidence
CommandKit baseline: `98e7e9933353cf43f2be4a96cb0436a0bce068d2`. Current CommandKit baseline: `4d92ee4ee6a8403b22a4172e0f04face802b9499`.
The original upgrade review used `98e7e9933353cf43f2be4a96cb0436a0bce068d2`;
its findings and validation history are retained below.
- The root [module](../../go.mod) selects - The root [module](../../go.mod) selects
`go.maximumdirect.net/releasekit v0.8.0` as a Go tool. Its selected version `go.maximumdirect.net/releasekit v0.8.0` as a Go tool. Its selected version
@@ -32,8 +34,11 @@ CommandKit baseline: `98e7e9933353cf43f2be4a96cb0436a0bce068d2`.
- All three profiles already select the agreed generic file checks, forbidden - All three profiles already select the agreed generic file checks, forbidden
token path, and page-only Gitea destination. Source publication and hosted token path, and page-only Gitea destination. Source publication and hosted
delivery are separate operations. The local token directory remains ignored. delivery are separate operations. The local token directory remains ignored.
- [R1 and R2](remediation.md) remain open: legacy selector/raw-command collisions - [R1 and R2](remediation.md) are complete. Commit `7eac3fe` rejects invalid
and loss of optional POSIX-shell handling in launcher tests. legacy selectors before invoking Go; commit `4d92ee4` restores explicit,
optional POSIX-shell invocation in launcher tests. The remediation record owns
their acceptance evidence, including passing focused tests, shell syntax
checks, and profile assertions running when no shell is available.
- Both integrations still require older published CommandKit dependencies than - Both integrations still require older published CommandKit dependencies than
their current source needs. The completed [implementation record](implementation.md) their current source needs. The completed [implementation record](implementation.md)
distinguishes workspace-backed tests from independent release readiness. distinguishes workspace-backed tests from independent release readiness.
@@ -57,6 +62,13 @@ A disposable CommandKit upgrade changed only the selected ReleaseKit version in
workspace-backed integration suites passed, and the real helper reported v0.9.0 workspace-backed integration suites passed, and the real helper reported v0.9.0
under foreign target settings. No production publication or delivery was run. under foreign target settings. No production publication or delivery was run.
A later disposable review at `7eac3fe` confirmed that downloading and tidying
v0.9.0 changed only the ReleaseKit requirement and its checksum entries. The
offline root suite and both workspace-backed integration suites passed with
Go 1.26.8, and the helper reported v0.9.0 under Windows/ARM64 target settings.
That snapshot excluded the then-uncommitted R2 change; it does not replace
validation of the eventual adoption commit.
The initial upgrade run failed in The initial upgrade run failed in
[`TestCompletionCommandContext`](../../completion_context_test.go). The same [`TestCompletionCommandContext`](../../completion_context_test.go). The same
alias-order failure reproduced four times in 30 focused repetitions on the alias-order failure reproduced four times in 30 focused repetitions on the
@@ -99,14 +111,16 @@ Integration attribution describes its own selected published dependency graph;
update it only if that actual selection changes. No license-text replacement update it only if that actual selection changes. No license-text replacement
is needed for the unchanged upstream texts. is needed for the unchanged upstream texts.
### Local correctness work ### Completed remediation and remaining correctness work
R1 and R2 keep their scope and acceptance evidence in [remediation.md](remediation.md). R1 and R2 were delivered before the dependency upgrade, with their completion
The dependency upgrade does not close either finding. Subject to OD-1, address markers and acceptance evidence in [remediation.md](remediation.md). Preserve
them in the same maintenance effort while retaining the simplified test boundary their selector rejection, legitimate raw helper forms, and optional-shell test
and the legitimate raw helper commands. boundary during adoption; no further implementation of those findings remains.
Also correct the completion test's incidental ordering assumption. Compare the The completion test's incidental ordering assumption remains unresolved and is
separate from the completed remediation findings. Correct it in its own
reviewable commit within the remaining maintenance work. Compare the
expected alias source/target records without depending on their iteration expected alias source/target records without depending on their iteration
order, while still detecting missing, unexpected, or duplicate records. Sorting order, while still detecting missing, unexpected, or duplicate records. Sorting
test-owned copies is one straightforward approach. Preserve the other routing test-owned copies is one straightforward approach. Preserve the other routing
@@ -115,8 +129,14 @@ a new internal alias order merely to make this assertion pass.
## Work needed ## Work needed
- [ ] Record the chosen maintenance scope for OD-1. Keep the upgrade and each local - [x] Complete R1 in its own commit (`7eac3fe`), recording verification in
correction reviewable, whether delivered together or separately. [remediation.md](remediation.md).
- [x] Complete R2 in its own commit (`4d92ee4`), recording verification in
[remediation.md](remediation.md). R1/R2 scheduling is resolved by their delivery
before adoption.
- [ ] Repair the completion assertion's ordering assumption and verify the
correction with focused repetitions. Preserve production ordering behavior
and the remaining routing assertions.
- [ ] Select the root tool at v0.9.0, tidy module metadata, and inspect the - [ ] Select the root tool at v0.9.0, tidy module metadata, and inspect the
actual `go.mod`/`go.sum` diff. Investigate unexpected version changes rather actual `go.mod`/`go.sum` diff. Investigate unexpected version changes rather
than accepting unrelated upgrades. Use normal cache preparation; direct than accepting unrelated upgrades. Use normal cache preparation; direct
@@ -126,9 +146,6 @@ a new internal alias order merely to make this assertion pass.
entry in `docs/oss/attribution.md`. Check affected source links and fragments entry in `docs/oss/attribution.md`. Check affected source links and fragments
at the v0.9.0 commit. Update the earlier feature roadmap's pending-request at the v0.9.0 commit. Update the earlier feature roadmap's pending-request
statement while retaining its historical evidence. statement while retaining its historical evidence.
- [ ] For bundled correctness work, implement R1 and R2 and the completion
assertion repair, with focused verification of the defects. Close existing
remediation findings only when their stated behavior has been verified.
- [ ] Validate the actual upgraded helper with inherited foreign target values, - [ ] Validate the actual upgraded helper with inherited foreign target values,
and run the owning offline suites with Go 1.26.8. During development, use and run the owning offline suites with Go 1.26.8. During development, use
focused repetitions to check the completion repair; do not treat rerunning focused repetitions to check the completion repair; do not treat rerunning
@@ -156,32 +173,22 @@ v0.9.0 for the host, aligned current documentation and attribution, and recorded
validation of the final source. The reviewed upgrade introduced no other module validation of the final source. The reviewed upgrade introduced no other module
version change; verify rather than assume that result during implementation. version change; verify rather than assume that result during implementation.
If local corrections are bundled, completion also includes R1/R2 acceptance R1/R2 acceptance evidence is complete in the remediation record. Completion of
evidence and a stable, order-independent completion assertion. If delivered the remaining maintenance work also includes a stable, order-independent
separately, report those items as outstanding rather than implying that adoption completion assertion and validation that the adopted helper retains the
resolved them. Independent integration dependency alignment remains separate corrected launcher behavior. Independent integration dependency alignment
release-preparation work; this roadmap selects no future versions or sums. remains separate release-preparation work; this roadmap selects no future
versions or sums.
## Open Decisions ## Sequencing after remediation
### OD-1: Bundle the existing local corrections with the upgrade? The former OD-1 question about bundling R1/R2 with adoption is resolved: both
findings were corrected and committed separately before the upgrade. They are
neither open decisions nor remaining adoption tasks.
**Recommendation:** Deliver v0.9.0 adoption, R1, R2, and the completion assertion For the remaining work, repair the completion assertion, then adopt v0.9.0 and
repair as one focused maintenance effort, using separate reviewable commits as align current documentation and attribution, keeping the test repair and tool
appropriate. The existing issues are small, directly affect maintainer tooling adoption reviewable as separate commits. Validate the resulting source and
or the default suite, and otherwise leave misleading validation after a passing record the actual evidence before marking adoption complete. A passing rerun
upgrade run. Fixing the assertion without changing runtime ordering restores alone does not resolve the known nondeterministic assertion. The older
useful evidence while keeping the requested contracts intact. integration dependency-version mismatch remains outside this maintenance scope.
This is a scheduling recommendation, not a requirement that every dependency
upgrade include unrelated repository repairs. It does not fold the older
integration dependency-version mismatch into this scope.
**Viable alternative:** Land the tool and current-documentation updates first,
then deliver the three local corrections as separately tracked units. This
keeps the dependency change especially easy to review or revert and makes the
new recovery behavior available sooner. It leaves the known routing and test
issues active, so a passing upgrade run cannot be reported as resolution of
those issues or as proof of a consistently passing baseline. Keep their
follow-up explicit and apply existing candidate-validation requirements before
any actual source publication.