This is a tracking issue for removing the requirement on python for bootstrapping the compiler.
Note that bootstrap.py is never going to be removed altogether, since distros still need to get a bootstrap compiler from somewhere; this issue is about contributors who already have a rust toolchain installed.
The living document for this tracking issue is https://hackmd.io/j-XXBeYERuajJknd6zErPA?both.
In particular, this subsumes #71818.
About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Steps
If you'd like to help with this feature, feel free to join the Zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/122652-new-members/topic/Help.20with.20RRIR.20bootstrap.20entrypoint.20.2394829
Unresolved Questions
- Should we move the "Build completed successfully" output to rustbuild? If we keep it only in bootstrap.py, the new entry point will have less info; if we move it to bootstrap the info will be incomplete even for python users because it won't include the time to build rustbuild.
Implementation history
@rustbot label: +A-rustbuild +T-infra
cc @Mark-Simulacrum - I thought I'd write my plan down so you're not seeing PRs come in out of the blue.
This is a tracking issue for removing the requirement on python for bootstrapping the compiler.
Note that bootstrap.py is never going to be removed altogether, since distros still need to get a bootstrap compiler from somewhere; this issue is about contributors who already have a rust toolchain installed.
The living document for this tracking issue is https://hackmd.io/j-XXBeYERuajJknd6zErPA?both.
In particular, this subsumes #71818.
About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Steps
cargo run -p bootstrapdownload-llvmto rustbuild: Movedownload-ci-llvmout of bootstrap.py #95170. This can just shell out tocurl, the same way bootstrap.py does currently.download-rustcto rustbuild: Move download-rustc from python to rustbuild #96687cargo runwith bootstrap uses the host rustfmt, not nightly rustfmt #95136x.shandx.ps1entrypoints which don't go through bootstrap.py and download bootstrap from CIx.shandx.ps1shell scripts #99992bootstrap-shimbinary that only loads the config info and downloads bootstrap from CIx.sh/x.ps1src/tools/xto use the new entrypoints: Make the x tool use the x and x.ps1 scripts #105844If you'd like to help with this feature, feel free to join the Zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/122652-new-members/topic/Help.20with.20RRIR.20bootstrap.20entrypoint.20.2394829
Unresolved Questions
Implementation history
cargo run -p bootstrap: Move some more bootstrap logic from python to rust #92260cargo runinstead ofcargo run -p bootstrap#94796cargo run -p bootstrap#94828cargo run tidy#94806download-ci-llvmout of bootstrap.py #95170cargo testfor bootstrap #95253cargo runon Windows #95254@rustbot label: +A-rustbuild +T-infra
cc @Mark-Simulacrum - I thought I'd write my plan down so you're not seeing PRs come in out of the blue.