Skip to content

Display a list of availables Features if asked for a nonexisting one #9722

@VincentWo

Description

@VincentWo

Describe the problem you are trying to solve

The state of feature discoverability in Rust is not great. Sometimes I try to remember the name of features of packages off my head, but misremember them (serde instead of json, ssl instead of tls, tokio_runtime instead of runtime_tokio...)
Describe the solution you'd like

It would be great if cargo could display a list of features when failing to resolve a specific features, for example:

Error: Error during execution of `cargo metadata`: error: failed to select a version for `reqwest`.
    ... required by package `wa-client v0.1.0 (/home/brutus/programming/techsupport/wa_client)`
versions that meet the requirements `=0.11.4` are: 0.11.4

the package `wa-client` depends on `reqwest`, with features: `serde` but `reqwest` does not have these features.
 It has a required dependency with that name, but only optional dependencies can be used as features.
 It has the features: "default_tls", "native_tls", "...", ... however

failed to select a version for `reqwest` which could resolve this conflict

Notes

I would like to help implementing this feature if this is deemed a good addition and something easy to add. I fell comfortable with Rust, but never contributed to this repository yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-dependency-resolutionArea: dependency resolution and the resolverA-diagnosticsArea: Error and warning messages generated by Cargo itself.C-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`S-acceptedStatus: Issue or feature is accepted, and has a team member available to help mentor or review

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions