Skip to content

Excluding a package from workspace still pulls dependency #2552

@SanchayanMaity

Description

@SanchayanMaity

In gst-plugins-rs, the workspace Rust version is at 1.83 and edition at 2021. One package in the workspace, gst-plugin-spotify to be exact, depends on librespot which has a MSRV of 1.85 and uses edition 2024.

For testing with 1.83 in CI, we expected to skip the plugin/package from cargo nexttest by specifying --exclude gst-plugin-spotify. However, it seems we encounter a failure while trying to download a dependency as below. Trying filter set DSL did not help either.

    error: failed to download `librespot-oauth v0.7.0`

    Caused by:
      unable to get packages from source

    Caused by:
      failed to parse manifest at `/home/core/.cargo/registry/src/index.crates.io-6f17d22bba15001f/librespot-oauth-0.7.0/Cargo.toml`

    Caused by:
      feature `edition2024` is required

      The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.83.0 (5ffbef321 2024-10-29)).
      Consider trying a newer version of Cargo (this may require the nightly release).
      See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

To be fair, this can also be triggered with either of the below while being on 1.83. Specifying --no-deps to cargo metadata does fine.

cargo metadata
cargo tree -p librespot-oauth --invert

AFAIU, there is some problem around metadata retrieval for unused packages or packages we would like to skip. Looked for some existing tickets like #1298, but, the resolution was not clear.

Is this expected or do we miss something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions