Skip to content

fix(release): move publish = false out of Cargo.toml - #8

Merged
chrishoage merged 1 commit into
mainfrom
fix/release-publish-flag
Sep 13, 2026
Merged

chrishoage merged 1 commit into
mainfrom
fix/release-publish-flag

Conversation

@chrishoage

Copy link
Copy Markdown
Owner

The release PR merged but nothing was tagged and no release was created. The release job reported success and logged nothing to release.

Cause

publish = false in Cargo.toml makes release-plz drop the package from the release set entirely. Neither git_only nor git_release_enable overrides it — the package never reaches the point where those matter.

The same flag in release-plz.toml means what was intended: skip cargo publish, still create the tag, still create the GitHub release.

Evidence

Three dry runs of the real release-plz binary against the merge commit itself (678442a), changing one thing at a time:

config result
publish = false in Cargo.toml (what shipped) nothing to release
flag removed entirely creation of tag 'v0.1.0', creation of git release, cargo registry upload
flag in release-plz.toml only (this PR) creation of tag 'v0.1.0', creation of git releaseno registry upload step

The third is what we want: tagging and the GitHub release happen, and cargo publish is not merely skipped but never part of the plan.

The tradeoff, stated plainly

publish = false in Cargo.toml was a hard guard: cargo publish refuses outright. Removing it means a deliberate cargo publish is no longer blocked by cargo itself. Nothing automated will do it — release-plz will not, and no CI job runs it — but the belt-and-braces guard at the manifest level is gone.

There is no configuration that keeps both. If you would rather keep the manifest guard, the alternative is dropping release-plz's tagging and cutting tags by hand, which gives up the point of the release train.

What happens when this merges

The push to main runs release.yml again. This time release tags v0.1.0, creates the GitHub release, sets releases_created=true, and binaries builds and uploads nanokvm-v0.1.0-x86_64-unknown-linux-gnu.tar.gz plus its .sha256.

Verified through the CI container before pushing — all eight steps pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UioWbXWdwtt6NLSqDpHcmT

release-plz reported "nothing to release" after the release PR landed, so
v0.1.0 was never tagged and no release was created.

`publish = false` in Cargo.toml makes release-plz drop the package from the
release set outright; neither `git_only` nor `git_release_enable` overrides
it. The same flag in release-plz.toml means what was wanted: skip `cargo
publish`, still tag and still create the GitHub release.

Confirmed on the merge commit itself — with the flag in Cargo.toml the dry
run says "nothing to release"; with it moved, the same commit reports
"creation of tag 'v0.1.0'" and "creation of git release", and no registry
upload step at all.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UioWbXWdwtt6NLSqDpHcmT
@chrishoage
chrishoage merged commit 7d5db05 into main Sep 13, 2026
3 checks passed
@chrishoage
chrishoage deleted the fix/release-publish-flag branch September 13, 2026 03:47
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