You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current version of the rustix crate transitively depends on multiple versions of windows-sys. This is a problem for anyone who wants to use clippy's multiple-crate-versions lint, even if their crate will never be used on Windows, as well as a problem for anyone who is using Windows.
Repro recipe:
$ mkdir test
$ cdtest
$ cargo init --lib --edition 2021 --vcs none --name multiple-wsys-error
Creating library package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
$ cargo add rustix
Updating crates.io index
Adding rustix v0.38.41 to dependencies
Features:
+ alloc
+ libc-extra-traits
+ std
+ use-libc-auxv
34 deactivated features
Updating crates.io index
Locking 17 packages to latest compatible versions
Adding linux-raw-sys v0.4.14 (latest: v0.6.5)
Adding windows-sys v0.52.0 (latest: v0.59.0)
$ cargo clippy -- -D clippy::multiple-crate-versions
Checking multiple-wsys-error v0.1.0 (/tmp/test)
error: multiple versions for dependency `windows-sys`: 0.52.0, 0.59.0
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_crate_versions
= note: requested on the command line with `-D clippy::multiple-crate-versions`
error: could not compile `multiple-wsys-error` (lib) due to 1 previous error
$ cargo tree --target all
multiple-wsys-error v0.1.0 (/tmp/test)
└── rustix v0.38.41
├── bitflags v2.6.0
├── errno v0.3.10
│ ├── libc v0.2.167
│ └── windows-sys v0.59.0
│ └── windows-targets v0.52.6
│ ├── windows_aarch64_gnullvm v0.52.6
│ ├── windows_aarch64_msvc v0.52.6
│ ├── windows_i686_gnu v0.52.6
│ ├── windows_i686_gnullvm v0.52.6
│ ├── windows_i686_msvc v0.52.6
│ ├── windows_x86_64_gnu v0.52.6
│ ├── windows_x86_64_gnullvm v0.52.6
│ └── windows_x86_64_msvc v0.52.6
├── libc v0.2.167
├── linux-raw-sys v0.4.14
└── windows-sys v0.52.0
└── windows-targets v0.52.6 (*)
You can see that rustix has a direct dependency on windows-sys 0.52, but also depends on libc 0.2.x which in turn depends on windows-sys 0.59.
Note that I, running these commands on Linux, had to use --target all to see the conflict Plain cargo tree doesn't mention errno, libc, or windows-sys at all:
I believe clippy is intentionally looking at the --target all dependency tree so that it reports all the conflicts at once, even if they're only relevant on systems you're not currently running on.
Please either relax your dependency on windows-sys, or restrict your dependency on libc (and possibly also errno) so that only one version of windows-sys is required.
The current version of the
rustix
crate transitively depends on multiple versions ofwindows-sys
. This is a problem for anyone who wants to use clippy'smultiple-crate-versions
lint, even if their crate will never be used on Windows, as well as a problem for anyone who is using Windows.Repro recipe:
You can see that rustix has a direct dependency on windows-sys 0.52, but also depends on libc 0.2.x which in turn depends on windows-sys 0.59.
Note that I, running these commands on Linux, had to use
--target all
to see the conflict Plaincargo tree
doesn't mention errno, libc, or windows-sys at all:I believe clippy is intentionally looking at the
--target all
dependency tree so that it reports all the conflicts at once, even if they're only relevant on systems you're not currently running on.Please either relax your dependency on windows-sys, or restrict your dependency on libc (and possibly also errno) so that only one version of windows-sys is required.
cargo metadata
dump: metadata.jsonThe text was updated successfully, but these errors were encountered: