On Fri, 24 Feb 2023 at 10:58:37 +0100, Johannes Schauer Marin Rodrigues wrote: > I question the conflation of a hypothetical DEB_BUILD_OPTIONS=nowerror with > other linters like shellcheck (or other tools for other programming > languages).
Compiler warnings and lint tools do share some properties: * they often indicate a bug, but can easily have false positives * upgrading the "toolchain" (the compiler or the lint tool) frequently improves its ability to detect potential bugs, but can also detect new false positives * if they indicate a bug, the bug is not necessarily reachable in practice * if a "toolchain" upgrade indicates a new bug, the bug is reasonably likely to be non-RC so I think it probably does make sense to think about them in a similar way. Compare with a typical functional test (unit test or similar), where a failure indicates that something is observably wrong with the software under test - not just a potential bug, but something that the author of the test has decided is sufficiently wrong behaviour to fail the test, as detected by a test that is maintained alongside the package itself. If lint tools and compiler warnings are gated by the same option, I'd call it (no)fatalwarnings, and I think there is rough consensus (but not necessarily 100%) that making compiler warnings and lint warnings fatal during a released package build is the wrong default. Something I've sometimes done is to gate this sort of thing on whether debian/changelog says UNRELEASED (=> fatal warnings) or something else (=> non-fatal warnings). smcv