Skip to content

Issues after upgrading: cannot satisfy dependencies so <dependency> only shows up once #1339

@SuperFluffy

Description

@SuperFluffy

I have used cargo dylint upgrade to go from dylint 2.6.1 to 3.1.2 and clippy-utils ac4c2094a6030530661bee3876e0228ddfeb6b8b to a95afe2d0a2051d97b723b0b197393b7811bc4e4. I have also used cargo intall cargo-dylint dylint-link to upgrade these binaries.

After doing so I am no longer able to compile my lints from my workspace root nor from within the lint crate directory.

Here is an excerpt of the output of my CI (see for the full thing https://github.com/astriaorg/astria/actions/runs/10940685186/job/30373647540?pr=1523#step:7:97):

Running `cargo dylint --all --workspace` in CI (ubuntu 2204)
error: cannot satisfy dependencies so `rustc_driver` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = note: `rustc_driver` was unavailable as a static crate, preventing fully static linking
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `core` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `compiler_builtins` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `rustc_std_workspace_core` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

And here is the relevant section in CI:
https://github.com/astriaorg/astria/blob/c751c249f7d2b2077a174a0ab746981c2e9aab4a/.github/workflows/test.yml#L245-L276

And below is what happens if I build locally. Some extra details:

❯ cargo dylint --version
cargo-dylint 3.1.2
❯ cd lint/tracing_debug_field/
❯ cargo --version
cargo 1.83.0-nightly (c1fa840a8 2024-08-29)
Same problem locally on macOS
Building workspace metadata entry `tracing_debug_field`
    Finished `release` profile [optimized] target(s) in 0.14s
Building driver for toolchain `nightly-2024-09-05-aarch64-apple-darwin`
    Updating crates.io index
     Locking 43 packages to latest compatible versions
      Adding windows-sys v0.52.0 (latest: v0.59.0)
   Compiling memchr v2.7.4
   Compiling serde v1.0.210
   Compiling anyhow v1.0.89
   Compiling regex-syntax v0.8.4
   Compiling log v0.4.22
   Compiling libc v0.2.158
   Compiling utf8parse v0.2.2
   Compiling rustversion v1.0.17
   Compiling serde_json v1.0.128
   Compiling anstyle v1.0.8
   Compiling itoa v1.0.11
   Compiling colorchoice v1.0.2
   Compiling anstyle-parse v0.2.5
   Compiling cfg-if v1.0.0
   Compiling is_terminal_polyfill v1.70.1
   Compiling ryu v1.0.18
   Compiling anstyle-query v1.1.1
   Compiling libloading v0.8.5
   Compiling humantime v2.1.0
   Compiling anstream v0.6.15
   Compiling aho-corasick v1.1.3
   Compiling regex-automata v0.4.7
   Compiling dylint_internal v3.1.2
   Compiling regex v1.10.6
   Compiling env_filter v0.1.2
   Compiling env_logger v0.11.5
   Compiling dylint_driver v3.1.2
   Compiling dylint_driver-nightly-2024-09-05-aarch64-apple-darwin v0.1.0 (/private/var/folders/h2/qr5r_fyx2653wqbqh73vcjv40000gn/T/.tmpz22bEF)
error: cannot satisfy dependencies so `rustc_driver` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = note: `rustc_driver` was unavailable as a static crate, preventing fully static linking
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `core` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `compiler_builtins` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `rustc_std_workspace_core` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `alloc` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `libc` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `unwind` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `cfg_if` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `miniz_oxide` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `adler` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `hashbrown` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `rustc_std_workspace_alloc` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `std_detect` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `rustc_demangle` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `addr2line` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `gimli` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `object` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `memchr` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: cannot satisfy dependencies so `panic_unwind` only shows up once
  |
  = help: having upstream crates all available in one format will likely make this go away
  = help: `feature(rustc_private)` is needed to link to the compiler's `rustc_driver` library

error: could not compile `dylint_driver-nightly-2024-09-05-aarch64-apple-darwin` (bin "dylint_driver-nightly-2024-09-05-aarch64-apple-darwin") due to 19 previous errors
Error: command failed: cd "/var/folders/h2/qr5r_fyx2653wqbqh73vcjv40000gn/T/.tmpz22bEF" && env -u CARGO -u RUSTC -u RUSTUP_TOOLCHAIN RUSTFLAGS=" -C link-args=-Wl,-rpath,/Users/janis/.rustup/toolchains/nightly-2024-09-05-aarch64-apple-darwin/lib " "cargo" "build"

Tried a few things but I am not sure how to go from here. The overall toolchain (outside of dylint) is 1.81.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions