-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Tracking Issue for removing python as the main bootstrap entry point #94829
Copy link
Copy link
Open
Labels
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.Relevant to the infrastructure team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.Relevant to the infrastructure team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
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.