cargo-release
cargo-release copied to clipboard
Wrong order of publishing
We set up cargo-release for the https://github.com/CosmWasm/cosmwasm workspace, but it seems the order of publishing for crates is not detected correctly. It tries to publish the dependent before the dependency, resulting in a failure mid-publishing.
To reproduce:
From the release/2.2
branch in cosmwasm, run cargo release 2.2.0-rc.3 -x
. It tries to publish cosmwasm-std
before cosmwasm-schema
even though the former has a dev-dependency on the latter. This causes cargo to fail publishing. Here are the relevant outputs for when I encountered this with rc.2:
Release
cosmwasm-core 2.2.0-rc.2
cosmwasm-crypto 2.2.0-rc.2
cosmwasm-derive 2.2.0-rc.2
cosmwasm-std 2.2.0-rc.2
cosmwasm-vm-derive 2.2.0-rc.2
cosmwasm-vm 2.2.0-rc.2
cosmwasm-check 2.2.0-rc.2
cosmwasm-schema-derive 2.2.0-rc.2
cosmwasm-schema 2.2.0-rc.2
Compiling cosmwasm-derive v2.2.0-rc.2 (/Users/christoph/Projects/cosmwasm/target/package/cosmwasm-derive-2.2.0-rc.2)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.78s
Packaged 5 files, 14.5KiB (3.5KiB compressed)
Uploading cosmwasm-derive v2.2.0-rc.2 (/Users/christoph/Projects/cosmwasm/packages/derive)
Uploaded cosmwasm-derive v2.2.0-rc.2 to registry `crates-io`
note: waiting for `cosmwasm-derive v2.2.0-rc.2` to be available at registry `crates-io`.
You may press ctrl-c to skip waiting; the crate should be available shortly.
Published cosmwasm-derive v2.2.0-rc.2 at registry `crates-io`
Publishing cosmwasm-std
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package: /Users/christoph/Projects/cosmwasm/packages/vm/Cargo.toml
workspace: /Users/christoph/Projects/cosmwasm/Cargo.toml
Updating crates.io index
Packaging cosmwasm-std v2.2.0-rc.2 (/Users/christoph/Projects/cosmwasm/packages/std)
Verifying cosmwasm-std v2.2.0-rc.2 (/Users/christoph/Projects/cosmwasm/packages/std)
Updating crates.io index
error: failed to verify package tarball
Caused by:
failed to select a version for the requirement `cosmwasm-schema = "^2.2.0-rc.2"`
candidate versions found which didn't match: 2.2.0-rc.1, 2.1.4, 2.1.3, ...
location searched: crates.io index
required by package `cosmwasm-std v2.2.0-rc.2 (/Users/christoph/Projects/cosmwasm/target/package/cosmwasm-std-2.2.0-rc.2)`
if you are looking for the prerelease package it needs to be specified explicitly
cosmwasm-schema = { version = "2.2.0-rc.1" }
Maybe the problem is that dev-dependencies are not factored into the ordering?