-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
servo/rust-cssparser#171 makes a number of changes to the cssparser crate, including changing its version number from 0.17.0 to 0.18.0. That PR has not landed yet, 0.18.0 is not on crates.io yet. I want to test it in Servo beforehand. I already had a Servo branch with [replace] (and a separate cssparser branch with a silly commit that reverses the version number change…) Now that rust-lang/rust#43319 has landed, I tried [patch] instead.
Starting from Servo master, I changed cssparser = "0.17" to cssparser = "0.18" in a dozen Cargo.toml files, added the lines below to the workspace’s Cargo.toml, and cherry-picked the commits updating the code for API changes.
[patch.crates-io]
cssparser = {git = "https://github.com/servo/rust-cssparser", rev = "token-cache"}At this point, with [replace], I’d usually need to run cargo update -p cssparser to get Cargo.lock in a state consistent with toml files. This fails:
% cargo update -p cssparser
Updating git repository `https://github.com/servo/rust-cssparser`
Updating registry `https://github.com/rust-lang/crates.io-index`
error: no matching version `^0.18` found for package `cssparser` (required by `style_traits`)
location searched: registry https://github.com/rust-lang/crates.io-index
versions found: 0.17.0, 0.16.1, 0.16.0, ...
Though cargo build succeeds, so it looks like [patch] is working as intended. It’s only the update sub-command that apparently still needs to learn about it.