consider convention principle for `disableAllWarnings=true`
Considering:
- https://github.com/diffplug/spotless/pull/2766
- https://github.com/diffplug/spotless/issues/2745
- https://github.com/diffplug/spotless/issues/2745#issuecomment-3566971268
it feels overwhelming and impractical to require explicitly setting disableAllWarnings=true.
This should actually be part of a convention-based default to avoid unpleasant situations like the one recently discovered in Spotless.
In fact, this should be the default, because:
- Having thousands of warnings simply does not scale on a human level.
- It is unrealistic to expect developers to spend time dealing with such a volume of noise.
Most won’t have the time—or the motivation—to address it. Instead, the logs get flooded, attention gets diluted, and the natural reaction is to ignore the warnings entirely. - Endless, repeating warnings create alert fatigue. The more noise a tool produces, the less likely real issues will ever be noticed.
- Warnings should be actionable by default.
If they aren’t, developers shouldn’t have to manually opt out. Tools should provide clean, helpful feedback out of the box. - A tool that produces more noise than value becomes counterproductive.
Reducing irrelevant output is essential to maintaining a healthy signal-to-noise ratio.
From this perspective, having disableAllWarnings=true as the default would establish a more sensible, error-focused baseline.
Developers could then intentionally opt in to warnings when they want to focus on quality checks or refactoring, instead of being overwhelmed by default.
I think I mostly agree with this. Internally at Google we only enable ERROR level checks at build-time, because warnings make the build log verbose and people tend to ignore them. Instead, we surface WARNING level checks at code review time.
In theory we could have something similar with a GitHub PR bot to show warning level checks.
I think we should consider changing the defaults (#5387 is related for SUGGESTION level checks), but I would also like to try to get more feedback from the community on preferences here, since we've had these defaults for a while and people may be relying on them.
it feels overwhelming and impractical to require explicitly setting
disableAllWarnings=true
As long as we have the current defaults, do you have suggestions on ways we could make the configuration easier to use? It seems like we do support the configuration you want and there is documentation for it, where there challenges you encountered trying to use the disableAllWarnings configuration?