Skip to content

When discovering a workspace that excludes the current package, newer or unstable features cause a spurious failure #15320

Open
@manifest

Description

@manifest

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 use resolver = "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]

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-manifestArea: Cargo.toml issuesA-workspacesArea: workspacesC-bugCategory: bugS-triageStatus: This issue is waiting on initial triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions