-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
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. |
Hi @Zalathar, thanks for the PR. I'm going to close this in favor of #133592, as I think not having the special I would be in favor, however, of renaming |
Renaming |
Rename `rustc_mir_build::build` to `builder` GitHub's “Go to file” feature silently ignores all files in this module, presumably because they are in a directory named `build`, which is mistaken for a build-output directory. That makes it meaningfully harder to view those files and their history via GitHub. This PR sidesteps that issue by renaming `build` to `builder`, which in context has basically the same meaning, but can't be mistaken for a build-output directory. --- Extracted from rust-lang#133404, after rust-lang#133592 changed the .gitignore rule from `build/` to `/build`. The problem of GitHub ignoring these files still exists even after that change, which suggests that GitHub's behaviour is a hard-coded heuristic that isn't influenced by the repository's git settings. Currently this PR doesn't include the tidy rule forbidding `build` as a module name, but that could be added if people think it's a good idea.
Rename `rustc_mir_build::build` to `builder` GitHub's “Go to file” feature silently ignores all files in this module, presumably because they are in a directory named `build`, which is mistaken for a build-output directory. That makes it meaningfully harder to view those files and their history via GitHub. This PR sidesteps that issue by renaming `build` to `builder`, which in context has basically the same meaning, but can't be mistaken for a build-output directory. --- Extracted from rust-lang#133404, after rust-lang#133592 changed the .gitignore rule from `build/` to `/build`. The problem of GitHub ignoring these files still exists even after that change, which suggests that GitHub's behaviour is a hard-coded heuristic that isn't influenced by the repository's git settings. Currently this PR doesn't include the tidy rule forbidding `build` as a module name, but that could be added if people think it's a good idea.
Rollup merge of rust-lang#134365 - Zalathar:builder, r=nnethercote Rename `rustc_mir_build::build` to `builder` GitHub's “Go to file” feature silently ignores all files in this module, presumably because they are in a directory named `build`, which is mistaken for a build-output directory. That makes it meaningfully harder to view those files and their history via GitHub. This PR sidesteps that issue by renaming `build` to `builder`, which in context has basically the same meaning, but can't be mistaken for a build-output directory. --- Extracted from rust-lang#133404, after rust-lang#133592 changed the .gitignore rule from `build/` to `/build`. The problem of GitHub ignoring these files still exists even after that change, which suggests that GitHub's behaviour is a hard-coded heuristic that isn't influenced by the repository's git settings. Currently this PR doesn't include the tidy rule forbidding `build` as a module name, but that could be added if people think it's a good idea.
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.)