I'd like to announce on behalf of the rustup team that rustup 1.29.0 beta is now available for testing and we are currently looking for testers.
The headline of this release is that rustup has been enabled to download components concurrently and unpack during downloads in operations such as rustup update or rustup toolchain, and to concurrently check for updates in rustup check, thanks to the GSoC 2025 event. This is by no means a trivial change so a long tail of issues might occur, please report them if you have found any! pr#4388pr#4426pr#4436pr#4455pr#4471pr#4605
As usual, we would be happy to receive regression/breakage reports of any kind, especially regarding the installation/usage on the following platforms/environments:
Environments where you would like to bring your own rust-analyzer binary (such as r-a developers and certain Neovim/Helix users): rustup will now consider the rust-analyzer binary from PATH when the rustup-managed one is not found.
pr#4324
Environments where you would like to override an environment variable back to the default: rustup now treats empty values as unset.
pr#4422
To begin testing this new version, all you need to do is simply switching to the dev environment by setting the RUSTUP_UPDATE_ROOT=https://dev-static.rust-lang.org/rustup environment variable and update (or install) rustup. [1]
Finally, please don't forget to check out the corresponding section in our CHANGELOG.md for the complete list of changes included in this version.
Many thanks for your continued support! Wishing you a magical holiday season surrounded by love, peace, and laughter
I found the exit code of rustup check a bit confusing.
The previous behavior is such that if everything is up to date, all output is green, and if it isn’t there are yellow “Update available” lines.
So much is unchanged… but now we also get an exit code indicating the overall result…
…but that exit code is just feeling very the wrong way around:
all is green "Up to date"
overall exit code: 1 error
some yellow "Update available" [possibly also some green "Up to date" ]
overall exit code: 0 success
Furthermore, with a configuration of rustup set auto-self-update check-only, arguably I would prefer to still be able see the result of the self-update check. Whether or not it should also still influence the exit code is a different question.
That's a very good question. I personally thought the absence of updates would take false/1 by default, depending on the question "whether we have detected updates" (similar to the search command in many places, where the absence of results gives a false), but in the end all I wanted was to have a distinction between having no updates or having any updates in terms of exit code so this remains debatable. Maybe an investigation of prior art would answer this question even better.
Would you mind filing a separate issue (maybe two?) so that we can properly discuss this and prevent anything potentially wrong before this is being stabilized?