Rustup needs your help (testing)

We're looking at closing off a couple of major papercuts in the 1.20.0 release of rustup. This is the first in an as-yet unknown number of requests for people to please try something out and let us know what they think before we release it and thus have potentially sub-optimal UX which people automate around and therefore we end up having to support.


Recently we merged support for installation profiles. This is a mechanism for you to indicate to rustup toolchain install what set of components you want installed by default when you add a toolchain. Currently this is ONLY for the initial installation of a toolchain, not for further updates.

The main use of this is to allow those of you who run CI to select a minimal profile so that you don't install rust-docs on CI systems, though it will also be of interest to those of you who run mostly stable (or beta) and want to default to a more full profile to get clippy etc by default.

The new support is (currently) invoked as follows:

  • In the installer, with --profile [minimal|default|full] (This is also the same on Windows with rustup-init.exe)
  • By setting it on the CLI with rustup set profile [minimal|default|full]

It is not possible to specify it at toolchain installation at this time, though if that turns out to be a UX mistake, we might add it.

At this point, we really need your help to try this out. Currently we're going to ship this feature in version 1.20.0 and we'll do that just as soon as we're confident it has no hidden gotchas (assuming nothing else unusual is only just merged to master).

If you're interested in giving this a go, then you will have to compile rustup for yourself unless you use Windows in which case it is possible to find artifacts via our CI on Appveyor. If you're wanting to test rustup for yourself then I recommend acquiring the git repository and then installing it as follows:

$ git clone https://github.com/rust-lang/rustup.rs
$ cd rustup.rs
$ cargo +stable run --features vendored-openssl -- --no-modify-path -y

If you use Windows, drop the --features vendored-openssl as that's a *NIX thing only really.

Once that completes, your rustup installation should be updated, and you can check that with rustup --version which will report something like: rustup 1.19.0+2 (ec6d1afcb 2019-09-12).

From there, please try out the new commands:

  • rustup show profile
  • rustup set profile

And try installing new toolchains with the different profiles, possible values are listed in rustup set profile --help. You could also try setting one profile (e.g. minimal), installing a nightly toolchain, waiting a day or three, and then setting a different profile (e.g. full) and updating that nightly toolchain. Verify that even though the profile was changed, the installed component set did not alter with the update.

If you encounter any issues / UX bogons / missing UX with profiles, please file issues on github so that we can consider if we need to fix them before 1.20.0 comes out.

Thank you for any help you can provide at this time. If you want to revert your rustup installation once you're done trying out this, just rerun the installation instructions from https://rustup.rs/ and you'll be golden.

I will try to look at this thread, but the best way to ensure your feedback is seen is to file useful issues on our github.

6 Likes

While people are at it, it might be nice to test this as well, hopefully it can ship in 1.20 too?

Grumble grumble jumping the gun mumble groan complain! This will be the subject of a future posting.

1 Like

It should be possible to select exact components instead of a predefined profile. Alternatively, more profiles should be provided to satisfy all needs. One of the mentioned use cases is CI, but as I can see, neither of the three profiles is suitable for it. CI doesn't need docs but needs rustfmt and clippy.

It's easy to add components afterwards with rustup component install but I agree it'd be nice to do it at installation of channel time. I opened two issues on the github related to this, feel free to go and +1 those.