chore(release): move post-cut orchestration behind rt #879
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!879
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/862-release-orchestration-boundary"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Moves the stateful cut bookkeeping out of
.forgejo/workflows/reusable-release.ymlinto the hidden, typed and testedrt post-cutboundary.The workflow retains decision wiring, runner/action setup,
rt release, mode selection, and secret injection. Go now owns the manifest transaction, toolkit-self bake reset, dynamic wrapper re-pin, alpha/gamma push handoff, stale rolling cleanup, and RC-tag pruning.Inventory and disposition
Measured from exact base
e287752a256efb71951747a1b5f9dd04323ff40cwith an existence-aware PyYAML parse:rt: 23, retained FETCH/BUILD, action path, and credential gluerton PATH: 3, retained environment contractrt decide: 11, retained output wiringrt post-cut, 64 retained for case/release/preflight/refusal wiringAfter the change,
reusable-release.ymlhas 372 non-emptyrun:lines and 172 non-commentrun:lines. The full workflow population is 949 non-emptyrun:lines across 16 files.Preserved contracts
--force-with-lease, configured identity, and fatal base/PR creation failures@mainfloating-pin skip remain explicitVerification
go test ./...— passgo vet ./...— passbats tests/*.bats— 59/59 passshellcheck scripts/*.sh docker-entrypoint.sh— passTestPostCutSelfBookkeepingScopesAndRepins— external consumer untouched, toolkit-self reset/re-pin, floating@mainuntouchedTestWritePostCutManifestRefusesMalformedExistingFile— no mutation on schema refusalTestRelease_dryRunPublishesOutputsand existing release transaction tests — passNo live release/tag was fired from this branch.
#876was not touched. Refs #862.Reviewed exact head
c24e631771fc4f35d493c56caf016aceb2838942(parente287752a256efb71951747a1b5f9dd04323ff40c). REQUEST_CHANGES: the requiredgo-ci / lint + build + testcontext is failing on this head, and I reproduced the failure locally with the exact workflow command.Blocking lint findings:
cmd/rt/post_cut.go:232ignores the returned error fromrunPruneRCTags(...). The surrounding comment says cleanup is best-effort, but the ignored return still failserrcheck; make that intentional (_ = runPruneRCTags(...)) or otherwise handle it explicitly.internal/prep/git.go:352fails staticcheck QF1012:f.WriteString(fmt.Sprintf(...)). Usefmt.Fprintf(f, ...)(with the returned error checked) or an equivalent form.Independent results at this exact head:
golangci-lint run --timeout=5m: rc=1, exactly the two diagnostics above.go test ./...: rc=0.go vet ./...: rc=0.go build ./...: rc=0.bats tests/*.bats: 59/59 pass.shellcheck scripts/*.sh docker-entrypoint.sh: rc=0.The request is only for these lint blockers; the rest of the local suite is green. Please push a new head and I will re-read the exact head.
Reviewed exact head
c24e631771fc4f35d493c56caf016aceb2838942(parente287752a256efb71951747a1b5f9dd04323ff40c). REQUEST_CHANGES: the requiredgo-ci / lint + build + testcontext is failing on this head, and I reproduced the failure locally with the exact workflow command.Blocking lint findings:
cmd/rt/post_cut.go:232ignores the returned error fromrunPruneRCTags(...). The surrounding comment says cleanup is best-effort, but the ignored return still failserrcheck; make that intentional (_ = runPruneRCTags(...)) or otherwise handle it explicitly.internal/prep/git.go:352fails staticcheck QF1012:f.WriteString(fmt.Sprintf(...)). Usefmt.Fprintf(f, ...)(with the returned error checked) or an equivalent form.Independent results at this exact head:
golangci-lint run --timeout=5m: rc=1, exactly the two diagnostics above.go test ./...: rc=0.go vet ./...: rc=0.go build ./...: rc=0.bats tests/*.bats: 59/59 pass.shellcheck scripts/*.sh docker-entrypoint.sh: rc=0.The request is only for these lint blockers; the rest of the local suite is green. Please push a new head and I will re-read the exact head.
Follow-up review of exact head
5eb13949b3672f81795d4ac8da05dd7e02ef797d(basee287752a256efb71951747a1b5f9dd04323ff40c, correction parentc24e631771fc4f35d493c56caf016aceb2838942). APPROVED — the two blocking lint findings from review 5594 are fixed and I found no remaining blockers.Verified:
runPruneRCTags's return andfmt.Fprintfwith its write error checked.golangci-lint run --timeout=5m: rc=0, 0 issues.go test ./...,go vet ./..., andgo build ./...: rc=0.bats tests/*.bats: 59/59 pass.shellcheck scripts/*.sh docker-entrypoint.sh: rc=0.git diff --check: clean.The prior REQUEST_CHANGES row is stale on this head; this approval is bound to
5eb13949b3672f81795d4ac8da05dd7e02ef797d.Follow-up review of exact head
5eb13949b3672f81795d4ac8da05dd7e02ef797d(basee287752a256efb71951747a1b5f9dd04323ff40c, correction parentc24e631771fc4f35d493c56caf016aceb2838942). APPROVED — the two blocking lint findings from review 5594 are fixed and I found no remaining blockers.Verified:
runPruneRCTags's return andfmt.Fprintfwith its write error checked.golangci-lint run --timeout=5m: rc=0, 0 issues.go test ./...,go vet ./..., andgo build ./...: rc=0.bats tests/*.bats: 59/59 pass.shellcheck scripts/*.sh docker-entrypoint.sh: rc=0.git diff --check: clean.The prior REQUEST_CHANGES row is stale on this head; this approval is bound to
5eb13949b3672f81795d4ac8da05dd7e02ef797d.