feat(compile): Stabilize build.warnings#16796
Conversation
|
r? @weihanglo rustbot has assigned @weihanglo. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
@rfcbot fcp merge cargo |
|
Team member @epage has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
|
Right now, we exactly mirror My one concern is with
From this, I would lean towards making |
|
FYI I found a bug where |
build.warningsbuild.warnings
This comment has been minimized.
This comment has been minimized.
This allows users to either - hide warnings (rust-lang#14258) - error on warnings (rust-lang#8424) `build.warnings` is setup to mirror the behavior of `RUSTFLAGS=-Dwarnings`, including - only errors for lint warnings and not hard warnings - only errors for local warnings and not non-local warnings visible with `--verbose --verbose` - stop the build without `--keep-going` These conditions were not originally met and also came as feedback from rust-lang/rust which has been dogfooding this since the merge of rust-lang/rust#148332. Things are a bit different with `RUSTFLAGS=-Awarnings`: - Hard warnings are hidden for rustc but not cargo (rustc seems in the wrong imo) - In particular, we shouldn't mask the edition warning for Cargo Script - both hide the warning summary line (number of warnings per crate) - both hide non-local warnings for `--verbose --verbose` One design constraint we are operating on with this is that changing `build.warnings` should not cause a rebuild, unlike a `RUSTFLAGS` solution. Closes rust-lang#14802
This comment has been minimized.
This comment has been minimized.
a4e366a to
e98cf0d
Compare
|
I really hope this goes through. |
953e363 to
f1831ee
Compare
This comment has been minimized.
This comment has been minimized.
|
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
Regarding the "hard warnings" discussion, I provided a suggestion here to add a |
|
Please do not allow people to override rustc's decision to force-show a warning :/ we only do that for cases where it really matters. |
What does this PR try to resolve?
This allows users to either
--deny-warningsfunctionality for all commands. #8424)build.warningsserves a similar purpose asRUSTFLAGS=-Dwarnings/RUSTFLAGS=-Awarningsbut without invalidation caches.build.warnings = "deny"will--verbose --verbose--keep-going(this matches
RUSTFLAGS=-Dwarnings)These conditions were not originally met and also came as feedback from rust-lang/rust which has been dogfooding this since the merge of rust-lang/rust#148332.
build.warnings = "allow"willRUSTFLAGS=-Awarningswill suppress rustc hard warnings--verbose --verboseCloses #14802
How to test and review this PR?
My main concern over this was how the naming scheme would extend to rust-lang/rfcs#3730 but that RFC has not gained much interest
buildseems as good of a home as any.