Test release launcher behavior without fixed command spellings

This commit is contained in:
2026-10-08 17:13:07 +00:00
parent 05a5bbb3e2
commit cd58b2bcfc
2 changed files with 158 additions and 46 deletions

View File

@@ -1,6 +1,6 @@
# ReleaseKit adoption review findings
Status: two remediation items pending; implementation not changed by this review.
Status: R-01 complete; R-02 pending.
Date: 2026-10-08.
@@ -31,7 +31,7 @@ gates, new public contracts, or additional publisher machinery.
**Location:** [scripts/release_test.go](../../scripts/release_test.go),
`TestReleaseLauncherDelegatesPublication`, `assertNativeBootstrap`
(lines 222–260), and `fakeGo` (lines 363–397).
and `fakeGo` as they existed at the reviewed revision.
The assertion compares the entire build argument vector, including flag order
and the absolute spelling of the output path. It also requires the two exact
@@ -56,15 +56,15 @@ those selected behaviors without elevating implementation details.
Required work:
- [ ] Assert the required build settings, selected package, and resolved output
- [x] Assert the required build settings, selected package, and resolved output
destination without requiring one incidental flag ordering or path spelling.
- [ ] Make host-query fixture handling and assertions reflect the requested
- [x] Make host-query fixture handling and assertions reflect the requested
host values rather than requiring separate subprocess query forms. Keep the
fixture small; a complete Go command emulator is unnecessary.
- [ ] Check the publication command, option values, version operand, and
- [x] Check the publication command, option values, version operand, and
argument boundaries without fixing the order of independent options. Retain
the upstream requirement that options precede the version.
- [ ] Preserve checks for wrong native target, missing readonly mode, incorrect
- [x] Preserve checks for wrong native target, missing readonly mode, incorrect
package/output, workspace or toolchain mistakes, failed bootstrap, and
publication status/stream propagation.
@@ -72,6 +72,20 @@ Completion evidence: focused launcher checks still detect the selected failures
and accept an equivalent bootstrap form. This is a test correction, not a
requirement to refactor the working launcher or add a release-time check.
**Completed 2026-10-08:** bootstrap checks now inspect required options and
resolve output paths; publication checks use the standard flag parser to preserve
option-order freedom and operand boundaries. The small executable double returns
each requested host value and accepts either output-option spelling. A fixture
launcher with combined host queries, reordered options, and a relative output
passed. Negative cases still reject incorrect target, workspace/toolchain,
directory, readonly mode, package pin, output, publication paths, and operands;
existing status/stream and bootstrap-failure checks passed.
Validation: offline `go test -mod=readonly -count=1 ./scripts` and
`go test -mod=readonly -count=1 ./...` both passed with `GOWORK=off`,
`GOTOOLCHAIN=local`, `GOPROXY=off`, `GONOPROXY=none`, and `GOSUMDB=off`.
The production launcher, profile, and module selection were not changed.
## R-02: clarify optional diagnostic validation in the runbook
**Priority:** low. **Category:** potentially strengthened prohibition.