Skip to content

dist attaches to the release ship creates - #12

Merged
anderix merged 1 commit into
mainfrom
release-config
Sep 17, 2026
Merged

anderix merged 1 commit into
mainfrom
release-config

Conversation

@anderix

@anderix anderix commented Sep 17, 2026

Copy link
Copy Markdown
Member

ship creates the GitHub release itself, in release.Create, before any build starts. The host job of the dist-generated .github/workflows/release.yml ended with a gh release create for the same tag, and GitHub rejects the second create as already_exists. The job goes red, publish-homebrew-formula needs it and is skipped, and since that one command is what attaches every artifact, the release is left carrying only what deb.yml puts on it. ship does not see the failure, because it waits on release-event runs and the dist run is a push-event one, so the walk carries on to the homebrew step and sits there until it refuses.

The fix is create-release = false in dist-workspace.toml. dist then generates gh release upload followed by gh release edit --draft=false in place of the create, which attaches to the release that is already there. The workflow was regenerated with dist 0.31.0, the version the file pins, rather than edited by hand.

This is the config excelano/ship-test-rust has carried since it was written, and is the same change there byte for byte: the same two gh commands, the same header, the same dropped ANNOUNCEMENT_* environment. The publish-homebrew-formula job is untouched and still runs off host. I verified the collision by reading ship's release.Create, this repo's generated workflow and the reference repo's, and by comparing the regenerated file against that reference; I did not cut a release to observe the 422.

All five of the fleet's cargo-dist repos in my scope had the identical workflow (md5 a7908adcff1a717bf2f5fbe2c0afbb8d) and the identical omission, and all five are fixed on branches of their own.

anderix/ship#36 covers ved, waddle and paxc together, so this is one of three matching pull requests and the issue is only settled once all three land.

Closes anderix/ship#36

🤖 Generated with Claude Code

https://claude.ai/code/session_014BDPzwzMCSL2rhkrmGCAtP

ship's publish step runs `gh release create` for the tag before any build
starts. dist's host job ended with a `gh release create` of its own for the
same tag, which GitHub rejects as already_exists, so host went red, the
homebrew job that needs it was skipped, and none of the archives, installers
or checksums reached the release.

`create-release = false` regenerates that step as `gh release upload`
followed by `gh release edit --draft=false`, which attaches to the release
already there. Workflow regenerated with dist 0.31.0, the pinned version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014BDPzwzMCSL2rhkrmGCAtP
@anderix
anderix merged commit 5fdfc12 into main Sep 17, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant