publish-dry-run: per-crate tags, dependency-liveness gate, contents listing - #54
Merged
Conversation
…isting Multi-crate workspaces release one crate per tag: the expected version now also derives from <package>-vX.Y.Z tags, so callers stop hand-pinning versions in their workflows. The new require-deps-published input probes every workspace path dependency of the selected package on crates.io and fails with a named error when the required version is not live, so an out-of-order tag reads as 'release <dep> first' instead of a resolution failure. Prep now builds the .crate itself (no verify build) and fetches against its packaged lockfile: the workspace fetch resolves path members from the tree, so the registry copy a sealed --offline verify must resolve was never in the cache, and the verify-build failed even for a correctly ordered release. The sealed step lists the package contents (cargo package --list) before building, so the exact shipped file set is in the log.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Enables per-crate release gating for multi-crate workspaces (one workflow run per crate, tagged
<package>-vX.Y.Z).What changes
<package>-vX.Y.Ztags (checked before the barev*form), so a workspace's release workflow stops hand-pinning versions per crate.require-deps-publishedinput (default off): probes every workspace path dependency of the selected package on crates.io at the version the manifest requires, and fails with a named error ('release first, then re-tag ') when it is not live.The packaging resolution still gates when the probe is inconclusive.
.crate(cargo package --no-verify) and fetches against its packaged lockfile.The workspace fetch resolves path members from the tree, so a co-developed dependency's registry copy was never in the cache and the sealed
--offlineverify-build failed even for a correctly ordered release; the scratch copy gets an empty[workspace]table so cargo does not walk up into the real workspace.cargo package --listbefore the verify-build, so the exact shipped file set is visible in the log.