Open
Description
Location
https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/
Summary
x check
has changed behavior since #119899. my understanding of the new behavior, as explained to me by @onur-ozkan, is:
x check --stage 0 std
is a noop (β this is already in the post).x check --stage 0
is the same as before, except it skipsx check --stage 0 std
. (β not in the post)x check
without arguments is equivalent tox check --stage 0 && x check --stage 1 library
. this is very surprising to me and i wish it did not imply the latter command. but if it does imply the latter, we should document that instead of silently changing behavior. (β not in the post)
we should also say what people should switch to. i do not think the default behavior (x check
without arguments) is good for all use cases; see in particular #141955 and #t-infra/bootstrap > Stage 0 std redesign support thread @ π¬).
i suggest the following docs:
- if you have modified only std, use
x check --stage 1 std --set rust.download-rustc=true
- if you have modified only compiler, use
x check --stage 0 compiler
- if you have modified neither and are on a tier 1 platform, we recommend only
x check --stage 0 compiler
. it is very unlikely for checking std to break for a tier 1 platform when the compiler has not been modified. - in all other cases, we recommend running both commands in sequence:
x check --stage 0 compiler && x check --stage 1 std --set rust.download-rustc=true
cc #t-infra/bootstrap > Stage 0 std redesign support thread @ π¬
@rustbot label T-bootstrap A-bootstrap-stages