-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add different entry points for x.py #396
Comments
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed. cc @rust-lang/compiler @rust-lang/compiler-contributors |
I'm closing this, I no longer think it's a good idea:
|
I do think we could make some improvement in this area, but I'm not sure what it is. |
Something that came up in discussion of this: I wouldn't be opposed to having per-directory shell scripts that demonstrate the single most common invocation to (We would probably want to test the scripts in some fashion, though. Even just making sure that they run without hitting errors on some target would probably suffice...) |
Proposal
Summary
As shown by rust-lang/rust#78466, https://internals.rust-lang.org/t/experience-report-contributing-to-rust-lang-rust/12012, and rust-lang/rust#59864 (comment) have shown, people are still having trouble with bootstrapping even after the changes to defaults and the new explanations in the bootstrapping chapter of the dev-guide. Part of the issue is that x.py's job is inherently complicated, and that most of the commands are ambiguous once you take stages into account. It would be great to have smaller commands that are focused on specific groups of contributors, so you can choose the build steps unambiguously and give helpful errors when they don't make sense.
Proposed Solution
Have an
x.py
in many different directories that has settings for that directory. For example,library/library.py build
would be the same asx.py build library/test --stage 0
today, andlibrary/library.py doc
would be the same asx.py doc --stage 0 library/std
today. For other more complicated tools, the defaults would be different:src/tools/rustdoc/rustdoc.py doc
would be the same asx.py doc --stage 1
,compiler/compiler.py build
would be the same asx.py build --stage 1 library/std
.These are the entrypoints I propose:
The top-level x.py would still be the same as it is today.
I plan to start with
library.py
and if that goes well, add the other entrypoints. For library/ especially, I think this would be a low-maintenance, high-impact way to greatly simplify the build process.Eventually, if this goes well, x.py could be soft-deprecated in the documentation to suggest the other entrypoints.
Mentors or Reviewers
@Mark-Simulacrum
Process
The main points of the Major Change Process is as follows:
@rustbot second
.-C flag
, then full team check-off is required.@rfcbot fcp merge
on either the MCP or the PR.You can read more about Major Change Proposals on forge.
Comments
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.
The text was updated successfully, but these errors were encountered: