Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
SuperFluffy opened this issue Sep 19, 2024 · 3 comments

Comments

@SuperFluffy
Copy link

SuperFluffy commented Sep 19, 2024

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

@smoelius
Copy link
Collaborator

Thanks, @SuperFluffy. I ran into this yesterday myself. This PR fixes the problem: #1298. I will publish a new release before the end of the day.

@SuperFluffy
Copy link
Author

@smoelius Lovely, thank you! I did see that PR but thought it might be something else because I also experience this on linux/github CI.

@smoelius
Copy link
Collaborator

3.2.0 is published, and it seems to resolve the problems I encountered yesterday.

Could I impose on you to try it out?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants