A dependency mismatch came up during the publishing process of the v0.21.0-rc.0 of pueue-lib:
Ping @mjpieters
cargo release -p pueue-lib
warning: disabled by user, skipping pueue v3.0.0-rc.0 despite being unpublished
Publishing pueue-lib
Updating crates.io index
Packaging pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/lib)
Verifying pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/lib)
error: failed to verify package tarball
Caused by:
failed to select a version for `memchr`.
... required by package `darwin-libproc v0.2.0`
... which satisfies dependency `darwin-libproc = "^0.2.0"` of package `pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/target/package/pueue-lib-0.21.0-rc.0)`
versions that meet the requirements `~2.3` are: 2.3.4, 2.3.3, 2.3.2, 2.3.0
all possible versions conflict with previously selected packages.
previously selected package `memchr v2.4.1`
... which satisfies dependency `memchr = "^2.4.1"` of package `rev_buf_reader v0.3.0`
... which satisfies dependency `rev_buf_reader = "^0.3"` of package `pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/target/package/pueue-lib-0.21.0-rc.0)`
failed to select a version for `memchr` which could resolve this conflict
Seems like we're running into the same issue as heim-rs/darwin-libproc#3
The Cargo.toml is rewritten as described in rust-lang/cargo#4030 and looks like this:
Example
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2021"
rust-version = "1.63"
name = "pueue-lib"
version = "0.21.0-rc.0"
authors = ["Arne Beer <[email protected]>"]
description = "The shared library to work with the Pueue client and daemon."
homepage = "https://github.com/nukesor/pueue"
readme = "README.md"
keywords = ["pueue"]
license = "MIT"
repository = "https://github.com/nukesor/pueue"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.byteorder]
version = "1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.command-group]
version = "1.0.8"
[dependencies.dirs]
version = "4"
[dependencies.log]
version = "0.4"
[dependencies.rand]
version = "0.8"
[dependencies.rcgen]
version = "0.9"
[dependencies.rev_buf_reader]
version = "0.3"
[dependencies.rustls]
version = "0.20"
default-features = false
[dependencies.rustls-pemfile]
version = "1"
[dependencies.serde]
version = "1"
[dependencies.serde_cbor]
version = "0.11"
[dependencies.serde_derive]
version = "1"
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.shellexpand]
version = "2.1"
[dependencies.snap]
version = "1"
[dependencies.strum]
version = "0.24"
[dependencies.strum_macros]
version = "0.24"
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"time",
"io-std",
"macros",
"net",
"io-util",
]
[dependencies.tokio-rustls]
version = "0.23"
default-features = false
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.better-panic]
version = "0.3"
[dev-dependencies.portpicker]
version = "0.1"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.tempdir]
version = "0.3"
[dev-dependencies.tokio]
version = "1"
features = ["time"]
[target."cfg(target_os = \"linux\")".dependencies.procfs]
version = "0.14.1"
default-features = false
[target."cfg(target_vendor = \"apple\")".dependencies.libproc]
version = "0.12.0"
[target."cfg(target_vendor = \"apple\")".dev-dependencies.darwin-libproc]
version = "0.2.0"
[target."cfg(unix)".dependencies.whoami]
version = "1"
[target."cfg(windows)".dependencies.winapi]
version = "0.3"
features = [
"tlhelp32",
"handleapi",
"processthreadsapi",
"minwindef",
"impl-default",
]
[badges.maintenance]
status = "actively-developed"
It definitely tags darwin-libproc as a dev-dependency:
[target."cfg(target_vendor = \"apple\")".dev-dependencies.darwin-libproc]
version = "0.2.0"
As expected, the tagged version 0.2.0 is used and it seems that dev-dependencies are still considered when checking the release tarball.
This issue (rust-lang/cargo#4242) has a long and detailed discussion about this.
The discussion over here is quite interesting on why dev-dependencies should work: rust-lang/cargo#4242 (comment)
From what I gathered in this thread, it might work to remove the version tag from the dependency in question, which could result in this specific dependency no longer showing up in the generated Cargo.toml.
A dependency mismatch came up during the publishing process of the
v0.21.0-rc.0of pueue-lib:Ping @mjpieters
cargo release -p pueue-lib warning: disabled by user, skipping pueue v3.0.0-rc.0 despite being unpublished Publishing pueue-lib Updating crates.io index Packaging pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/lib) Verifying pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/lib) error: failed to verify package tarball Caused by: failed to select a version for `memchr`. ... required by package `darwin-libproc v0.2.0` ... which satisfies dependency `darwin-libproc = "^0.2.0"` of package `pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/target/package/pueue-lib-0.21.0-rc.0)` versions that meet the requirements `~2.3` are: 2.3.4, 2.3.3, 2.3.2, 2.3.0 all possible versions conflict with previously selected packages. previously selected package `memchr v2.4.1` ... which satisfies dependency `memchr = "^2.4.1"` of package `rev_buf_reader v0.3.0` ... which satisfies dependency `rev_buf_reader = "^0.3"` of package `pueue-lib v0.21.0-rc.0 (/home/nuke/repos/tools/pueue/target/package/pueue-lib-0.21.0-rc.0)` failed to select a version for `memchr` which could resolve this conflictSeems like we're running into the same issue as heim-rs/darwin-libproc#3
The Cargo.toml is rewritten as described in rust-lang/cargo#4030 and looks like this:
Example
It definitely tags darwin-libproc as a dev-dependency:
As expected, the tagged version
0.2.0is used and it seems that dev-dependencies are still considered when checking the release tarball.This issue (rust-lang/cargo#4242) has a long and detailed discussion about this.
The discussion over here is quite interesting on why dev-dependencies should work: rust-lang/cargo#4242 (comment)
From what I gathered in this thread, it might work to remove the
versiontag from the dependency in question, which could result in this specific dependency no longer showing up in the generatedCargo.toml.