Conversation
A workflow_dispatch run on main had GITHUB_REF_NAME=main, so the tag check failed with 'Tag main does not match VERSION'. Manual runs now take the tag from a 'tag' input or from VERSION, refuse a tag that already exists at a different commit, and pass tag_name to the publish step. Tag pushes behave as before, and the tag must still match VERSION. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0134fKrsTGERpK7wYrFGoSNz
|
Build and test failed in the race-detector pass on The race is in the test itself. At line 202 the test calls - close(asked)
+ // Drain rather than close: a proxy handler may still be mid-request, and
+ // its send on a closed channel would panic (and is a race besides).
+ var targets []string
+drain:
+ for {
+ select {
+ case target := <-asked:
+ targets = append(targets, target)
+ default:
+ break drain
+ }
+ }
seen := 0
- for target := range asked {
+ for _, target := range targets {I'm re-running the failed job once. Generated by Claude Code |
|
The re-run of Build and test failed again, and this time on a different test: This isn't caused by this PR either, which only changes This one could be a real server-side problem. After two clients were killed mid-transfer, the server's entry port was still refusing connections 20s later, so it may not be a test bug. No fix exists yet, and the one allowed re-run is used up, so I'm not re-running it again. I'm leaving it for a separate investigation rather than widening this PR, and I'll keep watching the PR. Generated by Claude Code |
Requested by Amin · project thread
Before: starting the Release workflow by hand on main failed with "Tag main does not match VERSION", because the tag was read from
GITHUB_REF_NAME, which is the branch name on a manual run.After: a manual run publishes the commit it was started on under the
taginput, or under VERSION when the input is blank. Tag-push releases behave exactly as before, and the tag must still match VERSION.How: a new "Resolve the tag" step runs first. It uses the pushed tag, or the input, or VERSION, and validates the format (
vX.Y.ZorvX.Y.Z-suffix). On a manual run it also refuses a tag that already exists at a different commit, so main's binaries can't be published under an older tag. The later steps read that resolved tag, and the publish step getstag_nameandtarget_commitishexplicitly. The SHA256SUMS signing step (RELEASE_SIGNING_KEY, tools/signsums) is unchanged.Testing: the resolve script was run locally for these cases: blank input on main, a beta input, a run started on a tag, a tag/input mismatch, a malformed input, and an existing tag on another commit.
🤖 Generated with Claude Code
https://claude.ai/code/session_0134fKrsTGERpK7wYrFGoSNz
Generated by Claude Code