Description
Problem
Currently, excluded packages require the same resolver version that was set for workspace (members).
We have a virtual workspace with a few packages. Some of packages are excluded from the workspace. We cannot use
resolver = "3"
version for excluded packages because they cannot be built with Rust 1.85 (they require an earlier version). At the same time, we prefer to useresolver = "3"
for all the other packages of the workspace (i.e. workspace members), but that is currently imposible because resolver is a global option that affects all the packages of the workspace (included and excluded).
Steps
In the example bellow, if we set resolver = "3"
for the workspace, we wouldn't be able to build excluded packages even though they are not a part of the workspace.
# Cargo.toml
[workspace]
members = ["included01"]
exclude = ["excluded01"]
resolver = "3"
# excluded01/Cargo.toml
[package]
edition = "2018"
❯ cd /path/to/excluded01 && cargo check
error: failed to parse manifest at `/path/to/Cargo.toml`
Caused by:
`resolver` setting `3` is not valid, valid options are "1" or "2"
Possible Solution(s)
Ignore resolver version that was set for workspace (members) for excluded packages.
Notes
No response
Version
❯ cargo version --verbose
cargo 1.85.0 (d73d2caf9 2024-12-31)
release: 1.85.0
commit-hash: d73d2caf9e41a39daf2a8d6ce60ec80bf354d2a7
commit-date: 2024-12-31
host: aarch64-apple-darwin
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.7.1 (sys:0.4.74+curl-8.9.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w 11 Sep 2023
os: Mac OS 15.3.2 [64-bit]