1.25.1 - 2022-07-12
This version of Rustup reverts a single PR from 1.25.1 and tidies a couple of internal bits of code.
In brief, it turns out that our optimisation for RUSTC
and RUSTDOC
cause problems
with some tooling which runs under one cargo
invocation, but expects to invoke either
cargo
or rustc
without resetting the environment completely. As such, some particularly
confusing error messages ensued, and we decided to revert this one optimisation while we
wait to correct things in a future release.
Thanks go to:
- Joshua Nelson
- Manish Goregaokar
- Robert Collins
1.25.0 - 2022-07-11
This version of Rustup involves a significant number of internal cleanups, both in terms of the Rustup code and its documentation. In addition to a lot of work on the codebase itself, due to the length of time since the last release this one has a record number of contributors and we thank you all for your efforts and time.
Rather than list every single merged PR since the last release, we have pulled out a number of highlights to include in this changelog entry. For everything else, please review the repository.
- Added
rust-gdbgui
to the proxy list pr#2811 - Support
rustup default none
as a way to unset the default toolchain pr#2831 - Build Rustup for Windows arm64 pr#2835
- Support Illumos/OpenIndiana platform check on website pr#2839
- Add info message if self-update is disabled during update pr#2845
- Added
RUSTC
andRUSTDOC
environment variables for proxied child processes pr#2958 - Added offer to auto-install VS 2022 pr#2954
- Added
--verbose
mode forrustup show
pr#2992 - Added support for
--force-non-host
to more subcommands pr#2968
- Updated the
opener
crate used forrustup-doc
pr#2792 - Changed the recursion limit for tool/proxy invocation to 20 pr#2812
- Updated to newer
effective-limits
crate to reduce "sysinfo not supported" errors pr#2817 - Handle
-y
more robustly inrustup-init.sh
pr#2815 - Fix infinite recursion in bash completion when rustc not on PATH pr#2833
- Update macOS aarch64 CI to newer xcode pr#2877
- Update website to load TTF fonts more effectively pr#2862
- Retry curl invocations in
rustup-init.sh
pr#2869 - Better handle busybox's wget in
rustup-init.sh
pr#2885 - Improve target matching to reduce spurious deprecation warnings pr#2854
- Parse channel manifest only once to improve performance pr#2898
- Remove trailing slashes from toolchain names pr#2897
- Migrate OpenPGP support to Sequoia PGP pr#2847
- We now send a user agent on http requests to improve compatibility with proxies pr#2953
- We won't prepend
${CARGO_HOME}/bin
toPATH
unless it's missing pr#2978
Thanks go to:
- 二手掉包工程师 (hi-rustin)
- Brian Bowman (Seeker14491)
- Jon Gjengset (jonho)
- pierwill
- Daniel Silverstone (kinnison)
- Robert Collins (rbtcollins)
- Alan Somers (asomers)
- Brennan Vincent (umanwizard)
- Joshua Nelson (jyn514)
- Eric Huss (ehuss)
- Will Bush (willbush)
- Thad Guidry (thadguidry)
- Alexander Lovchin (alovchin91)
- zoodirector
- Takayuki Nakata (giraffate)
- Yusuke Abe (chansuke)
- Wyatt Carss (wcarss)
- Sondre Aasemoen (sondr3)
- facklambda
- Chad Dougherty (crd477)
- Noritada Kobayashi (noritada)
- Milan (mdaverde)
- Pat Sier (pjsier)
- Matt Keeter (mkeeter)
- Alex Macleod (alexendoo)
- Sathwik Matsa (sathwikmatsa)
- Kushal Das (kushaldas)
- Justus Winter (teythoon)
- k900
- Nicolas Ambram (nico-abram)
- Connor Slade (basicprogrammer10)
- Yerkebulan Tulibergenov (yerke)
- Caleb Cartwright (calebcartwright)
- Matthias Beyer (matthiasbeyer)
- spacemaniac
- Alex Touchet (atouchet)
- Guillaume Gomez (guillaumegomez)
- Chris Denton (chrisdenton)
- Thomas Orozco (krallin)
- cui fliter (cuishuang)
- Martin Nordholts (enselic)
- Emil Gardström (emilgardis)
- Arlo Siemsen (arlosi)
1.24.3 - 2021-05-31
This patch release focusses around resolving some regressions in behaviour in the 1.24.x series. One problem, related to accounting for the release of data blocks in the unpack slab allocator, fixed in pr#2779, would manifest in the installer hanging during installation. A second, fixed in pr#2781, manifested in very early Rust versions (1.0 through 1.7) repeatedly having their checksums fetched despite already being installed. Finally the heuristic which started warning that toolchains being installed may not work on the given host was improved in pr#2782 to reduce false-positive rate and reduce worry among Windows users in particular.
- Added the ability to configure the auto-self-update functionality. This will
be of most use when people are testing unreleased versions of Rustup and wish
to ensure they don't accidentally lose the test version, without having to
remember to run with
--no-self-update
all the time. pr#2763
- We no longer delete the top level of
$RUSTUP_HOME/tmp
and$RUSTUP_HOME/download
meaning that if you have these set up as symlinks to another place, or bind mounts, etc. things should work. pr#2433 - We more gracefully handle outlier situations with unpack-RAM, panicing less often, clamping settings into viable ranges and warning instead. pr#2780
Thanks go to:
- Ian Jackson
- Alexander (asv7c2)
- pierwill
- 二手掉包工程师 (hi-rustin)
- Robert Collins
- Daniel Silverstone
1.24.2 - 2021-05-05
This patch release primarily exists to work around a problem discovered on some Windows (and potentially other) systems where a combination of factors, including suspected allocator behaviour, led to Rustup failing to install certain toolchains. The symptom users observed was a failure to allocate 1677732 bytes: a chunk used for unpacking very large files. We hope this is fixed in a combination of pr#2750 and pr#2756.
In addition to that, we also:
- SHA256 links on the download page so that you can verify your downloads if you want to be certain. pr#2719
- Added
--verbose
torustup show active-toolchain
to also display the version of the compiler for the toolchain. pr#2710 - We now support
1.x
installation channel names for versions 1.0 through 1.8 by hardcoding1.x.0
since they lack patch releases. pr#2758
- Amended the behaviour of the 'missing components' code so that if the problem exists when installing a toolchain (rather than updating it) the message is different and leads you to other remediations. pr#2709
- Amended the error message for a missing component so that when you're using
a nightly toolchain and
rust-std
is missing for a given target, we lead you tocargo build -Z build-std
as a remediation. pr#2732 - Improved the documentation around
settings.toml
locations. pr#2698 - Internal improvements around retrying removal of files. pr#2752
Thanks go to:
- 二手掉包工程师 (hi-rustin)
- Robert Collins
- Daniel Silverstone
- Joshua Nelson
- João Marcos Bezerra
- Carol (Nichols || Goulding)
- Josh Rotenberg
- Martijn Gribnau
- pierwill
1.24.1 - 2021-04-27
This bugfix release corrects an oversight in the code we introduced to check for
unknown proxy names. The original change accidentally omitted the rustfmt
and
cargo-fmt
proxies due to a quirk of the fact those proxies were not originally
part of a Rust component.
We're sorry for pain this may have caused.
1.24.0 - 2021-04-27
This release is mostly a bugfix and quality of life improvement release. However the headlines for this release are:
- Support of
rust-toolchain.toml
as a filename for specifying toolchains. - Streaming support for large files to better enable Rust on lower memory platforms such as some Raspberry Pi systems.
When we introduced TOML support to rust-toolchain
we expected to see some
uptake but we saw a lot more than we had expected. Since Cargo is migrating to
explicit .toml
extensions on things like .cargo/config.toml
it was
considered sensible to also do this for rust-toolchain
- at least the toml
variant thereof.
This release of rustup
has seen a significant number of new contributors to
the project, and we hope to see many of you again in the future.
- Optional use of RUSTLS as TLS backend for Reqwest pr#2517
- We now support some corner cases in tarballs to permit unpacking early Rust versions pr#2502
- When running
rustup check
we now report possiblerustup
upgrades too. pr#2615 - We detect and warn if you try and install on an
x32
system since for now Rust isn't hostable on that. pr#2622 - We do, however, support
gnux32
as an environment label ready for future support pr#2631 - We now support managing
PATH
s on Windows which contain non-unicode values. pr#2649 - You can now name the TOML variant of
rust-toolchain
asrust-toolchain.toml
pr#2653 - We prompt harder when checking for the MSVC tooling on Windows now. pr#2529
- Experimental support for
zstd
compressed tarballs in channels. NOTE, this does not mean channels will magically gainzstd
compressed component files any time soon. pr#2676 - Register
rustup
with the Windows installed programs list when installing. This is another experiment into whether this is useful for Windows users. pr#2670 - Added the ability to specify a
path
rather than a toolchain channel in therust-toolchain.toml
file. pr#2678
rustup-init
now detects tls1.2 for cURL 7.73+ pr#2604- Installation now indicates the defaults on all questions pr#2605
- We now support the Big Sur major OS version pr#2607
- You can now specify
profile
inrust-toolchain
's TOML form pr#2586 - We now use
.
instead ofsource
to better support non-bash POSIX shells pr#2616 - We fixed a nasty corner case on wildcarded component installation/recognition pr#2602
- Our website now has a favicon pr#2419
- We no longer rely on a broken
mktemp
invocation, this should makerustup-init.sh
more compatible pr#2650 - We now do a better job of reporting non-installable toolchains pr#2562
- We cope better when modifying RC files which lack a trailing newline pr#2667
- We are edging closer to requiring a specific force argument to install a
toolchain whose host doesn't match the running system. This may break your
CI in future so you should check carefully. The main use-case for this
capability is the
rust-embedded/cross
project which we are working with to ensure this doesn't cause problems in the future. [pr#2672][] - Support streaming large files during unpack phase. pr#2707
- We report when you call
rustup
with an unsupportedarg0
-- for example if you make a symlink or hard link to the binary with a name other than one of the proxies. pr#2716
We also cleaned up a number of error message cases, including some on invalid toolchain name pr#2613, a better message when no toolchain is installed pr#2657, and some on component unavailability pr#2619.
- Added notes about Powershell to proxies documentation pr#2592
- Various updates to the
rustup
manual build process including pr#2628 - Small fixes on how to build
rustup
documentation pr#2641 - We clarified the message around restarting the shell when installing pr#2684
Thanks go to:
- SHA Miao
- est31
- Andrew Norton
- Gareth Hubball
- 二手掉包工程师 (hi-rustin)
- Tudor Brindus
- Eduard Miller
- Daniel Alley
- наб (nabijaczleweli)
- Eric Huss
- chansuke
- skim (sl4m)
- Joshua Nelson
- kellda
- Alex Chan
- Philipp Oppermann
- Michael Cooper
- Aloïs Micard
- Gurkenglas
- Vasili (3point2)
- Jakub Stasiak
- Robert Collins
- Jubilee (workingjubilee)
- Avery Harnish
1.23.1 - 2020-12-01
This point release is mostly to correct a problem where if you installed
rustup
with --no-modify-path
then the .cargo/env
file would not be created
in some cases. In addition, we have rebuilt the macos binaries to correct an
oversight which caused older Macs to be unable to run the new version. If you
encountered a problem with liblzma
on mac os 10.13 then this version should
solve that for you.
Finally, the illumos binary is now part of the release properly.
Thanks go to:
- Élie Roudninski
- Jeroen Ooms
- Jake Goulding
- Joshua M. Clulow
- Neil Mitchell
- Richard Gomes
1.23.0 - 2020-11-27
The main points for this release are that rustup
now supports a number of new
host platforms, most importantly of which is aarch64-apple-darwin
for the new
Apple M1 based devices, and that we support a new structured format for the
rust-toolchain
file. You can find more information
in the new book format documentation.
It is now also possible to install a particular release of the compiler as a
two-part version number. If you do this, then the release channel will only
update if there is a patch release of the compiler. For example, if you ran
rustup toolchain install 1.48
at the time of this release of rustup
you
would end up with a toolchain called 1.48
which contained 1.48.0
. If
subsequently 1.48.1
were released, a rustup update
would update your 1.48
from 1.48.0
to 1.48.1
.
As always, there were more changes than described below, thanks to everyone who contributed to this release. Hilights for this release are detailed below, but you can always see the full list of changes via the Git repository.
- Our documentation is now in "book" form. pr#2448
- When you retrieve
rustup
's version, you'll also be told the version of the compiler for your default toolchain, to disambiguate things a little. pr#2465 - Support added for
aarch64-unknown-linux-musl
pr#2493 - Support added for
aarch64-apple-darwin
pr#2521 - Support added for
x86_64-unknown-illumos
pr#2432 - You can now override the system-wide settings fallback path pr#2545
- Support for
major.minor
channels pr#2551
- Significant updates to our handling of
PATH
updating on installation was made. Nominally this ought to have little external change visibility but it may make it more robust for some people. pr#2387 - New support for toml-based
rust-toolchain
file format. This will be expanded upon going into the future to add new functionality, but for now the basics are in place, permitting you to select a channel, targets, and components which may be needed to build your applications. pr#2438 - We now fall back to copying files when rename-in-place causes problems. This
may improve matters in dockerised environments where
rustup
is preinstalled with a toolchain already. pr#2410 - We do a better job of exiting gracefully in a number of circumstances. pr#2427
- The
reqwest
backend (the default download backend) now supports socks5 proxies. pr#2466 - If you use a proxy for a component which is not part of a custom toolchain you are using then we emit a message about trying to build that component. pr#2487
- If you try and unpack super-large components which would previously be gracefully rejected, instead we try and if we succeed then you get to have the component unpacked. Unfortunately this means if we fail you could end up with a broken toolchain install. [pr#2490]
- We will recommend ways to recover if you can't update your toolchain due to components or targets going missing. pr#2384
- If you choose to install a toolchain which is for a different target than
you are running on, we will warn you and direct you toward
rustup target install
in case that's what you meant. pr#2534
- Aaron Loucks
- Aleksey Kladov
- Aurelia Dolo
- Camelid
- Chansuke
- Carol (Nichols || Goulding)
- Daniel Silverstone
- Dany Marcoux
- Eduard Miller
- Eduardo Broto
- Eric Huss
- Francesco Zardi
- FR Bimo
- Ivan Nejgebauer
- Ivan Tham
- Jake Goulding
- Jens Reidel
- Joshua M. Clulow
- Joshua Nelson
- Jubilee Young
- Leigh McCulloch
- Lzu Tao
- Matthias Krüger
- Matt Kraai
- Matt McKay
- Nick Ashley
- Pascal Hertleif
- Paul Lange
- Pietro Albini
- Robert Collins
- Stephen Muss
- Tom Eccles
1.22.1 - 2020-07-08
A regression in proxied behaviour slipped in due to a non-compatible change
in url
slipping in in 2.1 which caused a misbehaviour in env_proxy
.
which was fixed but not released to crates.io until after
1.22.0 was built.
Fortunately, inejge noticed and provided a fix for us by publishing a new
env_proxy
and providing us with this fix.
We apologise for any inconvenience this caused.
- Ivan Nejgebauer
- Ben Chen
1.22.0 - 2020-06-30
Alongside a significant amount of internal refactoring and code updates, the highlights of this release include:
- We have switched to Github Actions to make our CI and release process more consistent.
- We've invested time in the flow when you reinstall
rustup
atop an existing installation. - We've doubled down on discouraging the use of the internal-development-focussed
complete
profile. Please usedefault
orminimal
unless you're trying to test/develop the Rust tooling itself. - We've made a number of subtle quality-of-life improvements around the CLI.
- Added a (provisionally unofficial) snap of
rustup
- We've worked hard to improve a lot of the messages (error and informational) in the tool.
- We've increased internal timeouts and retries in an attempt to improve the situation for McAfee users.
- While it's not a change, we've documented that
rust-toolchain
must be UTF8 encoded.
While the changes spanned around 90 individual pull requests, here are the main changes and additions…
- Fixed various links to our repo and to the forge - #2173
- Improved OS detection (particularly darwin) in
rustup-init.sh
- #2042 - Fixed bug where i686 installer on x86_64 windows would intend to install 64-bit but would actually install 32-bit toolchains by default. - #2186
- Increased width of copy box on rustup website - #2208
- When updating a toolchain, indicate the version you updated from as well. - #2152
- When installing atop an existing
rustup
installation, we will now update the installed default toolchain, particularly we'll also try and install any additional targets or components specified - #2201 and #2339 - Fixed issue where
rustup doc
wouldn't work with custom toolchains - #2235 - In low-memory situations, attempt to unpack more conservatively - #2236
- Improved consistency in where
rustup
will auto-install a toolchain on use. - #2252 - Try to force strong cipher suites in
rustup-init.sh
- #2287 - When skipping a
nightly
indicate all the missing components - #2316 - Increase timeout for rename retries - #2348
- Increased 'sanity limit' to account for MIPS binary size increases - #2363
- Fallback to non-threaded installation pathway on 1-CPU systems to improve chance that installation will succeed on Raspberry Pi - #2372
- It is now possible to install
rustup
even when there's an existingrustup.sh
installation, and we can install alongsiderustc
orcargo
without necessarily forcing via-y
by means of theRUSTUP_INIT_SKIP_EXISTENCE_CHECKS
environment variable. - #2214 - Added the concept of a fallback settings file which will allow snaps, distro
packages, etc. to provide a default toolchain for users who have not passed
through the
rustup-init
managed one-time question set. - #2244 - You can now specify multiple components in a single argument in the form
--component rls,rust-analysis,rust-src
when installing toolchains - #2239 - It is now possible to
snap install --classic rustup
in theory (channel details may take some time to settle) - #1898 - Added indication of why overrides are happening when running
rustup show
- #2312 - Added
riscv64gc-unknown-linux-gnu
support (note: There is still work to be done on the compiler etc before this will necessarily work) - #2313
- Alejandro Martinez Ruiz
- Alexander D'hoore
- Ben Chen
- Chris Denton
- Daniel Silverstone
- Evan Weiler
- Guillaume Gomez
- Harry Sarson
- Jacob Lifshay
- James Yang
- Joel Parker Henderson
- John Titor
- Jonas Platte
- Josh Stone
- Jubilee
- Kellda
- LeSeulArtichaut
- Linus Färnstrand
- LitoMore
- LIU An (劉安)
- Luciano Bestia
- Lzu Tao
- Manish Goregaokar
- Mingye Wang
- Montgomery Edwards
- Per Lundberg
- Pietro Albini
- Robert Collins
- Rudolf B.
- Solomon Ucko
- Stein Somers
- Tetsuharu Ohzeki
- Tom Eccles
- Trevor Arjeski
- Tshepang Lekhonkhobe
1.21.1 - 2019-12-19
A panic occurred if a rustup update
was run with nothing to update and the
download directory was missing. This was harmless but could have confused some
automation jobs.
1.21.0 - 2019-12-19
In release 1.20.x profiles could incorrectly ascribe host-independent components
to the host architecture, resulting in surprising behaviour with rust-src
.
We have corrected this and added mitigations which should
mean that as of this release, such incorrect ascriptions are supported and also
automatically corrected on toolchain update.
Due to the large number of confusions around the complete
profile, we have
introduced a warning if you use it. It's really only meant for
developers of Rust, or those exploring particular issues in nightly
.
There are also a large number of other changes, the highlights of which are below. Thanks to everyone who helped work on this release. Even if your changes are not listed below, they are still greatly appreciated.
- Download directory is cleaned up after successful full update.
- Bad
.partial
downloads will be cleaned up for you - Force installation of toolchain if install is automatic
- Switch to darker colours to improve terminal readability
- Attempt to be less surprising wrt. default-host during installation
rustup toolchain list --verbose
now correctly shows the paths- Fallback environment for non-cargo toolchains updated to match
rustc
- Made human-readable units slightly more comprehensible
- Improved detection of armhf userland on aarch64 kernels
- Improved error message when rustc is detected on installation
- Added
--profile
support torustup toolchain install
- Added
+toolchain
support torustup
itself to match proxy functionality - Added ability to
rustup component add component-architecture
- Added clear report when
rustup doc
is run withoutrust-docs
available - Added
keyword:
,primitive:
, andmacro:
prefix support torustup doc FOO
- Added retry logic so that
rustup
will try and repeat interrupted downloads - Added
--allow-downgrade
support torustup toolchain install
- Added display of previous version when upgrading channels
- Added support for local non-channel toolchains in rust-toolchain file
- Roman Frołow
- Jean Simard
- Lzu Tao
- Benjamin Chen
- Daniel Silverstone
- Jon Hoo
- Carlo Abelli
- Filip Demski
- Chris Tomlinson
- Kane Green
- Ralf Jung
- Yves Dorfsman
- Rudolf B
- Pietro Albini
- Takayuki Nakata
- Justus K
- Gilbert Röhrbein
- Friedel Ziegelmayer
- Robbie Clarken
- Tetsuharu OHZEKI
1.20.2 - 2019-10-16
One final tweak was needed to the force-installation of toolchains because otherwise components would be marked as installed when they were not.
Our apologies to anyone adversely affected by the 1.20.0/1 releases.
1.20.1 - 2019-10-16
This release was made to solve two problems spotted in 1.20.0
- Force installation of toolchain during
rustup-init
to improve handling on non-tier-one platforms - Assume the
default
profile if a profile is missing from configuration which will solve a problem where distro-providedrustup
binaries did not upgrade the configuration properly
1.20.0 - 2019-10-15
- Toolchain listing now supports a verbose mode
- Improve zsh completions for cargo
- Updates/Installations of nightly now backtrack
- Improve handling of Ctrl+C on Windows
rustup which
now supports--toolchain
- Added installation profiles
- Added
rustup check
- Support for
--quiet
in most places - Support for adding components and targets during toolchain install
- Nick Cameron
- Andy McCaffrey
- Pietro Albini
- Benjamin Chen
- Artem Borisovskiy
- Jon Gjengset
- Lzu Tao
- Daniel Silverstone
- PicoJr
- Mitchell Hynes
- Matt Kantor
1.19.0 - 2019-09-09
- Fix race condition with some virus scanners
- UI improvements for race condition fix
- Improve home mismatch explanation
- Enable fully threaded IO for installs
- Improve look of rustup homepage
- Improve messaging if shell profile cannot be updated
- Improve messaging around directory names during install
- Disregard unavailable targets
- No longer provide non-panic backtraces by default
- Add support for
rustup target add all
- Add
rustup show home
- Add NetBSD target to CI
- Add x86_64 musl to CI
- Lzu Tao
- Gonzalo Brito Gadeschi
- Paul Oppenheimer
- Robert Collins
- KennyTM
- Daniel Silverstone
- Nicholas Parker
- Caleb Cartwright
- Josh Holland
- Charlie Saunders
- Wesley Van Melle
- Jason Cooke
- CrLF0710
- Brian Anderson
- Bryan Dady
- Fisher Darling
- Bjorn3
- Iku Iwasa
1.18.3 - 2019-05-22
- Improve performance by only opening terminfo once
- Use same webpage opening logic as cargo
- Report download duration on completion
- Reduce stat() usage in unpacking
- Buffer reads from tarfile during unpacking
- Buffer for hashing of dist content
- Don't set mtime on unpacked toolchain files
- UI consistency/improvement in download speeds
- Avoid blocking on CloseHandle
- Robert Collins (who has tirelessly worked to improve the performance of Rustup, particularly on Windows)
- Lucien Greathouse
- Filip Demski
- Peter Hrvola
- Bogdan Kulbida
- Srinivas Reddy Thatiparthy
- Sunjay Varma
- Lzu Tao (behind the scenes, lots of housekeeping and CI)
1.18.2 - 2019-05-02
- Fix local bash-completion directory path
- Handle stray toolchain hashes during install
- Update to env_proxy 0.3.1
- Improvements to release process around Windows versions
- Support listing installed targets only
- Added CI of CentOS 6 support for rustup-init.sh
- FAQ entry about not being able to update rustup on Windows
This release was made, in part, thanks to:
- Brian Ericson
- Onat Mercan
- Lzu Tao
- Takuto Ikuta
- Jason Williams
- Filip Demski
- Michael Maclean
- Daniel Silverstone
1.18.1 - 2019-04-25
- Fix panic when no default toolchain is installed
- Remove repeated CLI subcommands
- Detect s390x in rustup-init.sh
- Fallback to less secure curl/wget invocation
1.18.0 - 2019-04-22
- Output shell completions for cargo by
rustup completions <shell> cargo
- Add
--embedded-book
flag torustup doc
- Add --path option to
rustup override set
rustup default
now tells user if current directory is overriderustup-init
: Force highest TLS version supported- Switch to git-testament rather than old
build.rs
- Less copying during dist installation
- Improve error messages when missing nightly components
- Improve
rustup install
error message - Update Visual C++ install instructions, to link to Visual Studio 2019
- Use
DYLD_FALLBACK_LIBRARY_PATH
fordylib_path_envvar
on macOS - Improved documentation for shell completion enabling
- Added shellcheck and Travis folding
rustup-init.sh
: Fix unset variable usage- Treat time in seconds as an integer for download times
- Fix man proxy in FreeBSD
- Fix networking failure after using socks5 proxy
- Fix
rustup show
fails on terminal without color - Fix installation failed if
rustup-init
is owned by another user - Fix panics with "Broken pipe" when using in a shell pipeline
- Document
--no-self-update
properly - Clear line properly in download progress
- More download progress line clearing fixes
- Fix a bunch of clippy warnings/errors
1.17.0 - 2019-03-05
- Allow using inherited RUSTUP_UPDATE_ROOT variable in rustup-init.sh.
- Fix
utils::copy_file
for symlink. - Improve formatting of longer download times in download tracker
- Basic 2018 edition fix
- Update rustup-init.sh for 32bit powerpc userland
- Reformat the entire codebase using
cargo fmt
- Support to open more documents directly in
rustup doc
- Fix HumanReadable#fmt
- Add more detail error messages when installing with some components has failed.
- Fix a panic when a component is missing
- Update to use
dirs::home_dir()
- Self update after updating a specific toolchain
- Add miri to rustup
- allow non-utf8 arguments to proxies
- rustup-dist: Use Download notifications to track install
- Deal cleanly with malformed default-host
- Better error message for missing binary
- Add tab completion instructions for PowerShell
- Add tab completion test for PowerShell
- When updating, show "removing old component" to avoid confusion
- Upgrade to Rust 2018 edition idioms
- Simplify host triplet passing code
- Remove telemetry
- Print default toolchain on
rustup default
without arguments - Bring output of
rustup show active-toolchain
andrustup default
into line with rest of rustup - Deprecate cURL
- Thread toolchain through to error message
- Add Listing of Installed Components (
rustup component list --installed
) - Add
clippy-driver
as a proxy - Remove the
rustup-win-installer
directory
1.16.0 - 2018-12-06
1.15.0 - 2018-11-27
- More tweaks to renames
- Return Ok status when trying to add required component
- Use
renames
instead ofrename
to match the actual manifest - Size optimizations: Build with LTO and alloc_system
- Use
openssl-src
from crates.io to link to OpenSSL - Change handling of renames
1.14.0 - 2018-10-04
- Fix Windows job management
- Preserve symlinks when installing
- Add
--toolchain
option torustup doc
- Fix removing toolchain fail when update-hash does not exist
- Add note about installing the Windows SDK component
1.13.0 - 2018-07-16
Contributors: Jane Lusby
1.12.0 - 2018-07-07
- Add --path flag to 'rustup doc'
- Add flag to "rustup show" for active-toolchain
- Bring rustup.js and markup into alignment with rust-www
- Add caret after first installation question
- Add "rustup doc --reference"
- Update Visual C++ Build Tools URL
- Fix download indicator on OSes with newer ncurses package
- Remove components if they don't exist anymore during update
- Make sure rustup uses
utils::rename*
consistently - Do not try to get CWD if not required
- Give correct error message if user tries to install an unavailable toolchain
- Fall back to wget if curl is not installed
- Added a link to all installers to the homepage
- Display helpful advice even with -y
- Use browser in BROWSER env if present for
doc
command - Update shebang to reflect bashisms
Contributors: Andrew Pennebaker, Who? Me?!, Matteo Bertini, mog422, Kasper Møller Andersen, Thibault Delor, Justin Worthe, TitanSnow, aimileus, Antonio Murdaca, Cyryl Płotnicki, Nick Cameron, Alex Crichton, Kornel, Stuart Dootson, Pietro Albini, Diggory Blake, Yuji Nakao, Johannes Hofmann, CrLF0710, Aaron Lee, Brian Anderson, Mateusz Mikuła, Segev Finer, Dan Aloni, Joeri van Ruth
1.11.0 - 2018-02-13
Contributors: Steffen Butzer
1.10.0 - 2018-01-25
Contributors: Nick Cameron, Steffen Butzer
1.9.0 - 2018-01-04
Contributors: Alex Crichton
1.8.0 - 2017-12-19
- Add
rustup run --install
- Prevent
rustup update
to a toolchain withoutrustc
orcargo
- Add support for
rustfmt
shims
Contributors: Alex Crichton, kennytm, Nick Cameron, Simon Sapin, Who? Me?!
1.7.0 - 2017-10-30
- Improve clarity of component errors
- Support
--default-toolchain none
- Automatically install override toolchain when missing
Contributors: Aidan Hobson Sayers, Alan Du, Alex Crichton, Christoph Wurst, Jason Mobarak, Leon Isenberg, Simon Sapin, Vadim Petrochenkov
1.6.0 - 2017-08-30
- Fix support for s390x
- Fix
show
so it displays helpful information if the active toolchain is not installed - Fix uninstalling toolchains with stale symlinks
- Replace the hyper backend with a reqwest downloading backend
- Consistently give a toolchain argument in the help text
- Use
exec
on Unix where possible to help manage Unix signals
Contributors: Alex Crichton, Chen Rotem Levy, Krishna Sundarram, Martin Geisler, Matt Brubeck, Matt Ickstadt, Michael Benfield, Michael Fletcher, Nick Cameron, Patrick Reisert, Ralf Jung, Sean McArthur, Steven Fackler
1.5.0 - 2017-06-24
- Rename references to multirust to rustup where applicable
- Update platform support in README
- Allow rustup to handle unavailable packages
- Update libz-sys and curl-sys
- Teach rustup to override the toolchain from a version file
- Update sha2 crate
- Check for unexpected cargo/rustc before install
- Update PATH in .bash_profile
Contributors: Allen Welkie, bors, Brian Anderson, Diggory Blake, Erick Tryzelaar, Ricardo Martins, Артём Павлов [Artyom Pavlov]
1.4.0 - 2017-06-09
- set_file_perms: if the file is already executable, keep it executable
- Disable man support on Windows
- VS 2017 updates
- Show version of rust being installed
- Detect MSVC 2017
- Use same precision as rustc for commit sha
- Fix prompt asking for msvc even though -y is provided
- README: fix rust build dir
- Add support for XZ-compressed packages
- Add PATH in post-install message when not modifying PATH
- Cleanup download-related code in the rustup_dist crate
- Increase Rust detection timeout to 3 seconds
- Supress confusing NotADirectory error and show override missing
- Don't try to update archive toolchains
- Exit successfully on "update not yet available"
- Add a message when removing a component
- Use ShellExecute rather than start.exe to open docs on windows
- Clarify that rustup update updates rustup itself
- Ensure that intermediate directories exist when unpacking an entry
- Add the rust lib dir (containing std-.dll) to the path on windows
- Add x86_64-linux-android target
- Fix for help.rs suggestion
- Ignore remove_override_nonexistent on windows
- Update proxy setting docs
- Add sensible-browser to the browser list
- Added help for
rustup toolchain link
Contributors: Andrea Canciani, bors, Brian Anderson, CrazyMerlyn, Diggory Blake, Fabio B, James Elford, Jim McGrath, johnthagen, Josh Lee, Kim Christensen, Marco A L Barbosa, Mateusz Mikula, Matthew, Matt Ickstadt, Mikhail Modin, Patrick Deuster, pxdeu, Ralf Jung, Raphaël Huchet, Robert Vally, theindigamer, Tommy Ip, Xidorn Quan
1.3.0 - 2017-05-09
- Add armv8l support
- Update curl crate
- Fix inadvertent dependency on bash
- Update openssl-probe to 0.1.1
- zsh completions cleanup
- Alias 'rustup toolchain uninstall' to 'rustup uninstall'
- Fix a typo in PowerShell completion script help
- Enforce timeouts for reading rustc version
- Fix OpenSSL linkage by using the final install-directory in the build
Contributors: bors, Brian Anderson, Diggory Blake, Greg Alexander, James Elford, Jordan Hiltunen, Justin Noah, Kang Seonghoon, Kevin K, Marco A L Barbosa
1.2.0 - 2017-04-08
- Check ZDOTDIR when adding path to .zprofile
- Update links and install page to include android support
- Add bash completion guidance for macOS users
- Support partial downloads
- Don't crash if modifying multiple profile files
Contributors: Brian Anderson, James Elford, Jason Dreyzehner, Marco A L Barbosa, Wim Looman
1.1.0 - 2017-04-06
- Fix browser detection for Linux ppc64 and NetBSD
- Update windows info
- Update to markdown 0.2
- Make running program extension case insensitive
- Add MIPS/s390x builders (with PPC64 compilation fixed)
- Fix two missing quotes of download error message
- www: MIPS support and cleanups
- Update release instructions
- Don't set low speed limits for curl
- Attempt to fix msi build. Pin appveyor nightlies
- Stop defaulting to $PATH searches when the binary can't be found and causing infinite recursion
- Upgrade openssl
- Improve browser detection and install instructions
- Add android support to rustup-init.sh
- Add fallback to symlink if hardlink fails
- readme: add tmp dir hint to Contributing section
- Fixed link to the list of supported platforms
- Update job object code to match Cargo's
- Added argument-documentation to rustup-init.sh
- Add/remove multiple toolchains
- Remove curl usage from appveyor
- Store downloaded files in a persistent directory until installation
- Add android build support
- Fix up a bunch of things indicated by clippy
- Ensure librssl compatibility
- RLS support
- Add 'docs' alias
- Use correct name for undefined linked toolchain invocation
- zsh install support
- Add/remove multiple components+targets
- Better error message when not running in a tty
- Indent help text
- Document installing to a custom location using CARGO_HOME and RUSTUP_HOME environment variables
- Aggressive remove_dir_all
Contributors: Aarthi Janakiraman, Alex Burka, Alex Crichton, bors, Brian Anderson, Christian Muirhead, Christopher Armstrong, Daniel Lockyer, Diggory Blake, Evgenii Pashkin, Grissiom, James Elford, Luca Bruno, Lyuha, Manish Goregaokar, Marc-Antoine Perennou, Marco A L Barbosa, Mikhail Pak, Nick Cameron, polonez, Sam Marshall, Steve Klabnik, Tomáš Hübelbauer, topecongiro, Wang Xuerui
1.0.0 - 2016-12-15
Contributors: Alex Crichton, Andrew Koroluk, Arch, benaryorg, Benedikt Reinartz, Björn Steinbrink, bors, Boutin, Michael, Brian Anderson, Cam Swords, Chungmin Park, Corey Farwell, Daniel Keep, David Salter, Diggory Blake, Drew Fisher, Erick Tryzelaar, Florian Gilcher, geemili, Guillaume Fraux, Ivan Nejgebauer, Ivan Petkov, Jacob Shaffer, Jake Goldsborough, James Lucas, Jeremiah Peschka, jethrogb, Jian Zeng, Jimmy Cuadra, Joe Wilm, Jorge Aparicio, Josh Machol, Josh Stone, Julien Blanchard, Kai Noda, Kai Roßwag, Kamal Marhubi, Kevin K, Kevin Rauwolf, Kevin Yap, Knight, leonardo.yvens, llogiq, Marco A L Barbosa, Martin Pool, Matt Brubeck, mdinger, Michael DeWitt, Mika Attila, Nate Mara, NODA, Kai, Oliver Schneider, Patrick Reisert, Paul Padier, Ralph Giles, Raphael Cohn, Ri, Ricardo Martins, Ryan Havar, Ryan Kung, Severen Redwood, Tad Hardesty, Taylor Cramer, theindigamer, Tim Neumann, Tobias Bucher, trolleyman, Vadim Petrochenkov, Virgile Andreani, V Jackson, Vladimir, Wang Xuerui, Wayne Warren, Wesley Moore, Yasushi Abe, Y. T. Chung
0.7.0 - 2016-12-11
- Correctly "detect" host endianness on MIPS
- Add powershell completions
- Update toolchain used to build rustup
- Support probing MIPS64 n64 targets
- Support MIPS architectures in rustup-init.sh
- Automatically detect NetBSD during standard install
- Fix symlink creation on windows
- Search PATH for binaries run by
rustup run
- Recursive tool invocations should invoke the proxy, not the tool directly
- Upgrade error-chain
- Add FAQ entry for downloading Rust source
- Rename ~/.multirust to ~/.rustup
- Remove some codegen hacks
- Update libc for MIPS64 host builds
- Default to MSVC on Windows
Contributors: Alex Crichton, Arch, bors, Brian Anderson, Diggory Blake, Kai Roßwag, Kevin K, Oliver Schneider, Ryan Havar, Tobias Bucher, Wang Xuerui
0.6.5 - 2016-11-04
- Update bundled curl code
- Remove old zsh completions
- Fix two small typos in the error descriptions
- Update README
- Fix name of bash completion directory
Contributors: Alex Crichton, Björn Steinbrink, Brian Anderson, Jian Zeng, Matt Brubeck
0.6.4 - 2016-10-24
- making rustup prepend cargo bin to path instead of append
- Use released version of rustls dependency
- Update OpenSSL
- Made outputting of ANSI terminal escapes codes defensive
- Adjusted rustup-init.sh need_cmd to add uname and remove printf
- Update to error-chain 0.5.0 to allow optional backtrace
- Fix variable naming in rustup-init.sh
- Update clap to fix --help formatting
- Add an FAQ entry about troubles with antivirus
- Clarify how rustup toolchain installation works on Windows
- Do not interpret commas when using "rustup run"
- Fix local declarations for zsh completions
- Fix checksum failures
- Treat an empty
CARGO_HOME
the same as an unsetCARGO_HOME
- Check stdout is a tty before using terminal features
- Add completion generation for zsh, bash and fish shells
Contributors: Alex Crichton, Andrew Koroluk, Brian Anderson, Chungmin Park, Diggory Blake, Guillaume Fraux, Jake Goldsborough, jethrogb, Kamal Marhubi, Kevin K, Kevin Rauwolf, Raphael Cohn, Ricardo Martins
0.6.3 - 2016-08-28
Contributors: Brian Anderson
0.6.2 - 2016-08-27
Contributors: Brian Anderson, Diggory Blake, Knight, Marco A L Barbosa
0.6.1 - 2016-08-24
Contributors: Brian Anderson, Diggory Blake
0.6.0 - 2016-08-23
- Print rustup version after update
- Don't spawn processes for copying
- Upgrade error-chain to 0.3
- Support telemetry with lots of output
- Remove empty directories after component uninstall
- Update rustup-init.sh for powerpc
- Switch builds to current nightly toolchain
- Add a WIP MSI installer
- Add
--path
and--nonexistent
options torustup override unset
- Add
component
subcommand
Contributors: Alex Crichton, Brian Anderson, Diggory Blake, Ivan Nejgebauer Josh Machol, Julien Blanchard, Patrick Reisert, Ri, Tim Neumann
0.5.0 - 2016-07-30
- List custom toolchains in
rustup show
- Add a usage example for local builds
- Read/Write impl rework for rustls
- Introduce
+TOOLCHAIN
syntax for proxies - Add
rustup man
- Try detecting sudo when running
rustup-init
- Handle active custom toolchain in
rustup show
Contributors: Brian Anderson, Cam Swords, Daniel Keep, Diggory Blake, Florian Gilcher, Ivan Nejgebauer, theindigamer
0.4.0 - 2016-07-22
- Improve rustls CA certificate loading
- Detect ARMv7 CPUs without NEON extensions and treat as ARMv6
- Allow any toolchain to be specified as the default during rustup installation
- Add details about updating rustup to README
- Update libbacktrace to generate less filesystem thrashing on Windows
- Update gcc dep to fix building on MSVC
- Remove the multirust binary
- Use the env_proxy crate for proxy environment variable handling
- Set system-specific dynamic loader env var for command execution
- Hide telemetry command from top level help
- Add the "no-self-update" feature
- Update to error-chain 0.2.2
- Add HTTP proxy documentation to README
Contributors: Alex Crichton, Brian Anderson, Ivan Nejgebauer, Jimmy Cuadra, Martin Pool, Wesley Moore
0.3.0 - 2016-07-14
- Teach rustup to download manifests from the
/staging/
directory. - Treat all HTTP client errors the same.
- Remove winapi replacement.
- Remove toolchain directory if initial toolchain install fails.
- Fallback to old download methods if server returns 403.
- Add preliminary rustls support.
- Add a hack to remediate checksum failure issues.
- Move error-chain out of tree.
- Remove uses of subcommand synonyms in the examples.
- Add
--yes
as alias for-y
. - Remove unavailable toolchains from
target list
. - Add powerpc builds.
- Fix help text for
rustup update
. - Remove noisy "rustup is up to date" message.
- Fix references to non-existent
.rustup
directory. - When listing toolchains only list directories.
- rustup-init: remove dependency on
file
command. - Link to rustup-init.sh in README.
- Improve docs for
set default-host
.
Contributors: Alex Crichton, Brian Anderson, Drew Fisher, geemili, Ivan Petkov, James Lucas, jethrogb, Kevin Yap, leonardo.yvens, Michael DeWitt, Nate Mara, Virgile Andreani
0.2.0 - 2016-06-21
- Indicate correct path to remove in multirust upgrade instructions.
- Bring back optional hyper with proxy support.
- 'default' and 'update' heuristics for bare triples.
- Change upstream via $RUSTUP_DIST_SERVER.
- Fail with a nicer error message if /tmp is mounted noexec.
- Remove printfs from ~/.cargo/env.
- Reduce margin in installer text to 79 columns.
- Fix typos.
- Fix missing curly braces in error-chain docs.
- Fix downloads of builds without v2 manifests.
- Explain toolchains in
help install
. - Compile on stable Rust.
- Fix spelling mistakes.
- Fix the toolchain command synonyms.
- Configurable host triples.
- Use a .toml file to store settings.
- Point PATH to toolchain/bin on Windows.
- Remove extra '.' in docs.
Contributors: Alex Crichton, benaryorg, Benedikt Reinartz, Boutin, Michael, Brian Anderson, Diggory Blake, Erick Tryzelaar, Ivan Nejgebauer, Jeremiah Peschka, Josh Stone, Knight, mdinger, Ryan Kung, Tad Hardesty
0.1.12 - 2016-05-12
0.1.11 - 2016-05-12
- Actually dispatch the
rustup install
command. - Migrate to libcurl instead of hyper.
- Add error for downloading bogus versions.
0.1.10 - 2016-05-09
- Multiple cli improvements.
- Support HTTP protocol again.
- Improvements to welcome screen.
- Don't try to update non-tracking channels.
- Don't panic when NativeSslStream lock is poisoned.
- Fix multiple issues in schannel bindings
0.1.9 - 2016-05-07
- Do TLS hostname verification.
- Expand
rustup show
. - Add
rustup doc
. - Refuse to install if it looks like other Rust installations are present.
- Update www platform detection for FreeBSD.
- Fix color display during telemetry capture.
- Make it less of an error for the self-update hash to be wrong.
0.1.8 - 2016-04-28
- Initial telemetry implementation (disabled)
- Add hash to
--version
- Improve download progress
- Completely overhaul error handling
- Add armv7l support to www
- Overhaul website