MarcoIeni / release-plz

Publish Rust crates from CI with a Release PR.
https://release-plz.ieni.dev
Apache License 2.0
792 stars 74 forks source link

Cargo install release-plz fails without `--locked` #1489

Closed VorpalBlade closed 4 months ago

VorpalBlade commented 4 months ago

Bug description

$ cargo install release-plz
[...]
   Compiling release_plz_core v0.22.0
error[E0308]: mismatched types
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/release_plz_core-0.22.0/src/cargo.rs:119:41
    |
119 |     let req = http::Request::from_parts(parts, vec![]);
    |               ------------------------- ^^^^^ expected `http::request::Parts`, found a different `http::request::Parts`
    |               |
    |               arguments to this function are incorrect
    |
    = note: `http::request::Parts` and `http::request::Parts` have similar names, but are actually distinct types
note: `http::request::Parts` is defined in crate `http`
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/request.rs:168:1
    |
168 | pub struct Parts {
    | ^^^^^^^^^^^^^^^^
note: `http::request::Parts` is defined in crate `http`
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/request.rs:166:1
    |
166 | pub struct Parts {
    | ^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `http` are being used?
note: associated function defined here
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/request.rs:459:12
    |
459 |     pub fn from_parts(parts: Parts, body: T) -> Request<T> {
    |            ^^^^^^^^^^

error[E0308]: mismatched types
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/release_plz_core-0.22.0/src/cargo.rs:148:61
    |
148 |     let crate_data = index.parse_cache_response(crate_name, res, true)?;
    |                            --------------------             ^^^ expected `http::response::Response<Vec<u8>>`, found `http::Response<Vec<u8>>`
    |                            |
    |                            arguments to this method are incorrect
    |
    = note: `http::Response<Vec<u8>>` and `http::response::Response<Vec<u8>>` have similar names, but are actually distinct types
note: `http::Response<Vec<u8>>` is defined in crate `http`
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/response.rs:179:1
    |
179 | pub struct Response<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^
note: `http::response::Response<Vec<u8>>` is defined in crate `http`
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/response.rs:180:1
    |
180 | pub struct Response<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `http` are being used?
note: method defined here
   --> /home/arvid/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crates-index-2.10.0/src/sparse.rs:276:12
    |
276 |     pub fn parse_cache_response(
    |            ^^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0308`.
error: could not compile `release_plz_core` (lib) due to 2 previous errors
error: failed to compile `release-plz v0.3.69`, intermediate artifacts can be found at `/tmp/cargo-installbdHRB5`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

Updated 0 packages.
Failed to update release-plz.

To Reproduce

Steps to reproduce the behavior:

  1. cargo install release-plz

Using --locked works

Expected behavior

Installing without --locked should work.

Screenshots

Environment

Additional context