Skip to content

Error message for missing component can be unhelpful #2844

Closed as not planned
Closed as not planned
@jasoncarr0

Description

@jasoncarr0

Describe the problem you are trying to solve

As a user of rustup I would like to use both the nightly branch (e.g. for features), as well as a component.
What this often means is I will:

  • First install/default to the nightly toolchain, via rustup toolchain install nightly
  • Later, determine I need a component (e.g. rls) and try to use something like rustup component add rls

What results is the error message:

error: component 'rls' for target 'x86_64-unknown-linux-gnu' is unavailable for download for channel 'nightly'
Sometimes not all components are available in any given nightly. If you don't need the component, you can remove it with:

    rustup component remove --toolchain nightly --target x86_64-unknown-linux-gnu rls

This is unhelpful for my use case, as it doesn't say anything about how to resolve the issue if I do want the component, (which is in my opinion much more likely than the odds that I don't want the component I just tried to add).

Describe the solution you'd like

The error message should also include information on if the component is desired but the exactly version isn't critical, such as this example:

If you would like to change to a nightly version which does have the component, you can do so with:

    rustup toolchain install nightly --component rls --allow-downgrade

Notes

I could see some contention over including this allow-downgrade in here, but I believe it should be included because:

  • In the hypothetical use case, I'm not expecting the particular version of nightly to be critical
  • We make sure to word the error message to know that version may change
  • The flag itself is clearly named
  • The flag is only discoverable using rustup toolchain install --help, so this is most likely to help the user discover which command to run

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions