Description
I’m currently working on a branch of rust-url that will eventually become version 1.0.0. It includes pervasive (breaking) API changes. I want to port some projects like Cargo and Hyper that depend on rust-url to this new unpublished rust-url version to see how the API works out in practice. It is important to do this before the new version is published, so that I can make further breaking changes.
So I’ll go in my clone of Cargo, add paths = ["../rust-url"]
in .cargo/config
, and start fixing build errors.
When it’s time to make a git commit, I’d like to change the dependency requirement in Cargo.toml
as well: url = "1.0"
. This causes an error, even though the path override does have that version:
% cargo build
Updating registry `https://github.com/rust-lang/crates.io-index`
no matching package named `url` found (required by `cargo`)
location searched: registry https://github.com/rust-lang/crates.io-index
version required: ^1.0
versions found: 0.5.4, 0.5.3, 0.5.2, ...
So I have to revert that change and don’t forget to add it back when url 1.0 is finally published.
It would be nice if Cargo could deal with unpublished crates/versions locally. (If course when publishing, the crates.io server should still check that dependencies are published as well.)