Description
Fuchsia's rustc builders bootstrap using betas that we also build ourselves. When src/version
is updated (as in #115034), there's a period of time where the beta referred to by stage0.json
is not allowed to build tip of tree.
The beta given by stage0.json
normally points to a beta with version latest - 1
(because bootstrapping uses the previous beta). This is okay because Config::check_build_rustc_version
in src/bootstrap/config.rs
allows the beta to be one minor version out of date. When src/version
is bumped, the beta temporarily becomes two versions behind, failing the rustc version check and causing our CI to start failing. This is fixed when stage0.json
is updated (as it last was in #113637) and the new current beta is back to only being one version behind.
Last time this happened, the time between updating src/version
and stage0.json
were out of sync for a little over two weeks (#112023 to #113637). I think we left a few comments here and there about the situation but we ended up putting out some other fires for a while instead.
I suspect that this isn't a problem in rust-lang CI because the check is only done if a bootstrap rustc is explicitly provided. I don't believe rust-lang CI does this, which causes it to just download and use the beta listed in stage0.json
without doing the version check. If it did do the version check, then it would also fail.
Can we add a flag that instructs bootstrap to skip the version check? We're still using stage0.json
to pick the beta for bootstrapping in Fuchsia, it's just that bootstrap doesn't know that and does the version check unnecessarily.
cc @jyn514 for bootstrap and @Mark-Simulacrum for merges