Skip to content

bootstrap blog post should document how x check has changed and what to do instead #142051

Open
@jyn514

Description

@jyn514

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 skips x check --stage 0 std. (❌ not in the post)
  • x check without arguments is equivalent to x 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-bootstrap-stagesArea: issues with the meaning of stage numbersA-docsArea: Documentation for any part of the project, including the compiler, standard library, and toolsT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions