-
Notifications
You must be signed in to change notification settings - Fork 303
Add post about rustup 1.20.0 #425
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
295df30
add post about rustup 1.20.0
pietroalbini 1a9082a
Update posts/2019-10-15-Rustup-1.20.0.md
pietroalbini 4c20208
Update posts/2019-10-15-Rustup-1.20.0.md
pietroalbini d41cdf3
Update posts/2019-10-15-Rustup-1.20.0.md
pietroalbini 6b7c3dc
last updates to the blog post
pietroalbini File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
--- | ||
layout: post | ||
title: "Announcing Rustup 1.20.0" | ||
author: The Rustup Working Group | ||
--- | ||
|
||
The rustup working group is happy to announce the release of rustup version 1.20.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. | ||
|
||
If you have a previous version of rustup installed, getting rustup 1.20.0 is as easy as: | ||
|
||
``` | ||
rustup self update | ||
``` | ||
|
||
If you don't have it already, you can [get rustup][install] from the appropriate page on our website. | ||
|
||
[rust]: https://www.rust-lang.org | ||
[install]: https://rustup.rs | ||
|
||
## What's new in rustup 1.20.0 | ||
|
||
The highlights of this release are profiles support, the ability to get the latest available nightly with all the components you need, and improvements to the `rustup doc` command. You can also check out [the changelog][changelog] for a list of all the changes included in this release. | ||
|
||
[changelog]: https://github.com/rust-lang/rustup.rs/blob/master/CHANGELOG.md | ||
|
||
### Profiles | ||
|
||
Previous versions of rustup installed a few components by default along with each toolchain: the compiler (`rustc`), the package manager (`cargo`), the standard library (`rust-std`), and offline documentation (`rust-docs`). While this approach is fine while developing software locally, some of the components (like `rust-docs`) slowed down the installation due to the large amount of installed files, especially on CIs and on Windows. | ||
pietroalbini marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
To address this problem, rustup 1.20.0 introduces the concept of "profiles". They are groups of components you can choose to download while installing a Rust toolchain. The profiles available at this time are `minimal`, `default`, and `complete`: | ||
pietroalbini marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
* The **minimal** profile includes as few components as possible to get a working compiler (`rustc`, `rust-std`, and `cargo`). It's recommended to use this component on CIs and Windows systems. | ||
pietroalbini marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* The **default** profile includes all the components previously installed by default (`rustc`, `rust-std`, `cargo`, and `rust-docs`) plus `rustfmt` and `clippy`. This profile will be used by rustup by default, and it's the one recommended for general use. | ||
* The **complete** profile includes all the components available through rustup, including `miri` and IDE integration tools (`rls` and `rust-analysis`). | ||
|
||
To change the rustup profile you can use the `rustup set profile` command. For example, to select the minimal profile you can use: | ||
|
||
``` | ||
rustup set profile minimal | ||
``` | ||
|
||
It's also possible to choose the profile at installation time, either interactively by choosing the "Customize installation" option or programmaticaly by passing the `--profile=<name>` flag. As usual it will be possible to install individual components not included in your profile with: `rustup component add`. | ||
pietroalbini marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Installing the latest compatible nightly | ||
|
||
While all components are guaranteed to be present on stable releases of [tier 1 platforms][tiers], the same guarantee doesn't apply to nightly builds. Frequently, tools such as `rustfmt`, `clippy`, or `rls` are missing in the latest nightly. If you depend on these tools, that makes updating nighties hard, as rustup will prevent the upgrade if a component you previously installed is missing. | ||
pietroalbini marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Starting from rustup 1.20.0, if a component you previously installed is missing in the latest nightly, `rustup update` will walk backwards in time to find the most recent release with all the components you need. If there are no new nightlies with all the components you need you'll either need to wait or remove some of them. | ||
|
||
Along with this change, rustup 1.20.0 introduces the `--component`/`-c` and `--target`/`-t` flags to the `rustup toolchain install` command, allowing you to add components and targets as the toolchain is installed. These flags will also search past nightlies if the current one does not feature all the requested components. | ||
|
||
[tiers]: https://forge.rust-lang.org/release/platform-support.html | ||
|
||
### Improvements to `rustup doc` | ||
|
||
The `rustup doc` command opens the locally installed documentation on your browser, without any Internet connection required. rustup 1.20.0 enhances the command allowing you to open directly the API documentation of a specific item. For example to look at the documentation of [`Iterator`] you can use: | ||
|
||
``` | ||
rustup doc std::iter::Iterator | ||
``` | ||
|
||
This works for traits, structs/enums, macros, and modules, and can take you to the `std`, `alloc`, and `core` crates. We will be improving the command's UX over time, so if you have ideas, please do let us know! | ||
pietroalbini marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
[`Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html | ||
|
||
## Thanks | ||
|
||
Thanks to all the contributors who made rustup 1.20.0 possible! | ||
|
||
- Nick Cameron | ||
- Andy McCaffrey | ||
- Pietro Albini | ||
- Benjamin Chen | ||
- Artem Borisovskiy | ||
- Jon Gjengset | ||
- Lzu Tao | ||
- Daniel Silverstone | ||
- PicoJr | ||
- Mitchell Hynes | ||
- Matt Kantor |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.