-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 a tidy rule forbidding modules named build
#133404
base: master
Are you sure you want to change the base?
Conversation
This was not detected by `x test tidy`, presumably because it's inside a directory named "build". Fix it now, because later changes in this PR will cause it to be detected.
e814133
to
b9d5728
Compare
Because we have a .gitignore rule for `build/`, having a module directory named "build" causes various problems for tools that try to skip ignored files. Forbidding this in tidy is trickier than it looks, because tidy itself tries to skip ignored files. So the rule instead looks in non-ignored files for module declarations that would imply the existence of potentially-ignored module directories. This also has the side-effect of prohibiting `build.rs` files that aren't build scripts.
Replaced manual LazyLock with |
r? jieyouxu |
Ignoring non-root build directories was done deliberately in #106440. |
Hm, I'm inclined to revert it back to Anyway, waiting for team input in https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/The.20.60build.2F.60.20ignore.20rule. @rustbot label -S-waiting-on-review +S-waiting-on-team |
☔ The latest upstream changes (presumably #133415) made this pull request unmergeable. Please resolve the merge conflicts. |
The module directory
compiler/rustc_mir_build/src/build/
causes a number of contributor papercuts:build/
.Any one of these might be fixable or ignorable, but all of them together suggest that allowing modules named
build
is just not worth the hassle, especially when it isn't even necessary.This PR therefore adds a tidy check forbidding
mod build;
and similar, and renames the existing modules that would be forbidden by that check. There are no functional changes in the affected modules.(The check also has the side-effect of forbidding
build.rs
files that aren't build scripts, which seems net-positive.)