Skip to content

Revise bootstrap sequence redesign blog post to clarify no observable impact for distro packagers #1626

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 1 commit into from
May 30, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions content/inside-rust/stage0-redesign/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ team = "the Bootstrap team"
team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap"
+++

> Revisions:
>
> - (2025-05-30) This blog post was edited to clarify distribution packagers will not be observably impacted (i.e. distribution packages will still be able to build `N + 1` version of Rust using version `N` of Rust).

This blog post accompanies an [upcoming major change to the `rust-lang/rust` build system][stage0-redesign-pr] (see also [Major Change Proposal 619][redesign-stage0-mcp]). This will have no impact on the distributed artifacts from [rust-lang/rust], but the way we build those artifacts is changing.

This blog post focuses on motivation for the change and attempts to build a mental model for how the system works, rather than deep diving on workflow changes. See the [rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/building/bootstrapping/what-bootstrapping-does.html) for details on how you might need to change your workflow with these changes. Note that rustc-dev-guide pages will have updated content once the implementation PR merges.
Expand All @@ -16,6 +20,10 @@ This blog post focuses on motivation for the change and attempts to build a ment

We are [redesigning the bootstrap sequence for the Rust toolchain][stage0-redesign-pr]. The standard library will move from supporting being built by both the previous toolchain version and the current version to only supporting the current version. This does not change the artifacts we distribute to end users of Rust.

> The Rust toolchain as a whole, both currently and after this change, supports being built with just two minor versions of Rust: the previous version and its own version. For example, Rust 1.85.1 requires one of 1.84.0, 1.85.0, or 1.85.1 toolchains to build its source code into the 1.85.1 distributed artifacts.
>
> In other words, distribution packagers are not observably affected, it is only the workflows of contributors who work on the compiler and standard library that will be impacted.

**Current bootstrap sequence**

![Current stage 0 bootstrap sequence](./stage0-current.svg)
Expand Down Expand Up @@ -122,6 +130,10 @@ Additionally, the compiler only needs to add `cfg(bootstrap)` for anything in th
>
> A stage 2 compiler is **not** required to test the new feature, as the stage 1 library using the lang item is built by the stage 1 compiler, which is the compiler where the new lang item is added!

## Will this affect distribution packagers?

No, this change will not have observable changes for distribution packagers. Distribution packagers will still be able to build e.g. 1.85.0 distribution artifacts with a 1.84.0, 1.84.1 or 1.85.0 toolchain.

# Questions, feedback, bugs?

You can leave a comment in the [zulip support thread for the initial bootstrap sequence redesign effort][zulip-support-thread]
Expand Down