Help verify rustup 1.25.0 release

Hi everyone,

Rustup 1.25.0 is now staged and ready for beta testing. You can see the changelog at https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md#1250---unreleased and if you're prepared to give it a go, then you can do the following:

$ export RUSTUP_UPDATE_ROOT=https://dev-static.rust-lang.org/rustup
$ rustup self update

This should update your version of Rustup to the 1.25.0 beta release. you can verify that with rustup --version.

Have a play with things, make sure you're not adversely affected by any changes, and then if you want to revert to the current release (1.24.3) just unset RUSTUP_UPDATE_ROOT and rustup self update (or else it'll revert the next time you rustup update without that environment variable set).

Assuming there's no showstoppers, I hope to have 1.25.0 officially released in a week or so. So please tell me ASAP if there're problems which are new to 1.25.0.

Thanks,

D.

5 Likes

Hi,

First off, thanks for all the hard work on rustup. It’s a great tool, and really makes the entire Rust ecosystem easy to use and get started with.

However, I'm unsure about the new "offer to auto-install VS 2022" feature.

The way it’s implemented feels very much like a “foot gun”: If a developer follows the Rust Getting Started guide, downloads rustup, and blindly accepts all the prompts; then they end up with a setup that’s not legally licensed for use in many Commercial (5+ employee) and Enterprise environments. The developer may not be aware of that, which can have serious consequences in the future.

I know it’s impossible to protect people from licensing issues if they don’t read, however I’m concerned the new installation flow feels a lot like installing a “Visual C++ Redistributable”, which many developers are used to clicking through during installations.

The previous rustup flow required the developer to leave the “rustup installer”, and actively make a decision on the Microsoft website about what to install.

I understand the feature was added to make it easier for “OSS or home developers” to get up and running, however Rust is also used a lot in the commercial world these days, so I think it’s important to consider how the flow works there, and ensure it doesn’t leave them in a position of unexpected legal liability.

I think it’s also important to note that Visual Studio Code has a similar “problem” to rustup: Installing VSCode and the C++ extension leaves the user with a “broken” setup that can’t compile code. However Microsoft has decided not to prompt the user to automatically install Visual Studio Community edition, instead the user must actively make a decision on the Microsoft website about what to install.

I’m not sure if it’s possible, but I think an “ideal” solution would be if the user could land on the Visual Studio Installer’s edition selection screen before continuing with installation, so they actively have to make a decision of which one to install, and can easily see that Community Edition might not be what they need:

Cheers

–James

4 Likes

Hi, James

Unfortunately I think you're right that it's not possible, at least not when pre-selecting components. I'd also note that the website isn't particularly clear either (which has tripped people up). What the editions mean is only shown in hover text which makes it easy to click through without reading.

My thinking is that the best option would be to provide more upfront information in the installer. Maybe presented as options:

Rust requires a linker and Windows API libraries but they don't seem to be available.

These components can be acquired through a Visual Studio installer.

  1. Quick install via the Community edition installer (free for individual developers, academic uses, and open source)
  2. Manually install Visual Studio
  3. Don't install Visual Studio

(where selecting 2 takes you to install instructions)

6 Likes

Thanks for reading and replying to my massive post :smiley:

I think having multiple options during the rustup init process is a good solution!

My only request would be: don't make Option 1 "default" (as in, pressing "enter" at the prompt shouldn't automatically select "1"). This forces people to actually read what the prompt says.

I've had to resolve software licensing issues on developer machines in the past, and what I've learned is the vast majority of people just choose the "defaults" without reading when possible, especially when it's part of a tutorial :expressionless:

It's a real shame Microsoft doesn't provide their tools under a friendlier license, it'd make the developer setup experience for a lot of things so much nicer.

Out of curiosity, with the menu option, would it be possible to add a "Install LLVM tools" or "Install GNU tools" option later on?

1 Like

I'm sure that can be done!

I don't see why not. Although I'd be a bit wary of giving too many options upfront. I find the more text and options there are the less likely people are to actually read them. Maybe if we got to the stage of offering multiple different prerequisites we should redesign the workflow.

1 Like

Also there's a minor thing missing in the configuration - To get rustc linker output messages right, the English language pack needs to be installed. When installing under windows with another UI language, this language pack is often not selected automatically. It would be nice if rustup could get it installed by default.

3 Likes

I was hoping the build tools would be ok licencing-wise, but:

Use of this tool requires a valid Visual Studio license.

Thank you all for your input so far. We've updated the Windows side of things (when I say 'we' I mean Chris) so hopefully most of the concerns are now addressed. If you want to test again, re-retrieve rustup-init and have another go. You can check if the version you have is correct by running it with --version and if it says the 13th June then it's the right version.

I just grabbed the latest prerelease rustup and ran through it on a clean(ish) Windows 10 VM image.

The new three way selector looks good, it makes it clear what's going on, and hard to accidentally select something you might not want. Thanks for changing this!

I went through the VS Community install option, and it seems to work great. I built a hello world rust program, installed vscode and Rust Analyzer, and everything just worked.

It certainly makes it easier for Windows people to jump into Rust land!

So a big thumbs up from me :smile:

:+1:

6 Likes