I want to patch getrandom
crate in my workspace, with 0.2.12 version as following:
[patch.crates-io]
getrandom = { git = "https://github.com/madsim-rs/getrandom.git", rev = "8ffd43e" }
Before trying to patch, my Cargo.lock had the 0.2.15 version of this crate. When I patched it and tried to run cargo update -p getrandom
, I encountered a problem:
warning: Patch `getrandom v0.2.12 (https://github.com/madsim-rs/getrandom.git?rev=8ffd43e#8ffd43e6)` was not used in the crate graph.
When I played around with the Cargo.lock here is what I got eventually:
... required by package `libp2p-gossipsub v0.47.0`
... which satisfies dependency `libp2p-gossipsub = "^0.47.0"` (locked to 0.47.0) of package `libp2p v0.54.1`
... which satisfies dependency `libp2p = "^0.54"` (locked to 0.54.1) of package `my_project v0.1.0 (/path/to/my_project)`
versions that meet the requirements `^0.2.15` are: 0.2.15
As far as I understand, libp2p-gossipsub
crate which is imported by the libp2p
crate requires 0.2.15 version of getrandom
.
How can I resolve this issue? I am OK to having 2 different versions of getrandom
in my codebase, and not applying patch to libp2p
.
I want to patch getrandom crate in my workspace, with 0.2.12 version as following: …
Before trying to patch, my Cargo.lock had the 0.2.15 version of this crate.
libp2p-gossipsub
crate which is imported by thelibp2p
crate requires 0.2.15 version ofgetrandom
.
In this situation, you must provide patched code which claims in its Cargo.toml
to be version 0.2.15 or newer. There is no way to override Cargo in this matter.
I am OK to having 2 different versions of
getrandom
in my codebase
There is no way to override Cargo’s one-major-version policy, either; in order to add a different minor version you must give it a different package name.