I've actually been meaning to post about this, with some questions.
I definitely like that we now print warnings at the end of builds, since it makes them harder to ignore. But the current amount of warnings spew at the end of every build is problematic, especially when a build fails and I need to scroll up several pages to find out why.
Can we make some effort to get clean warnings output at the end of standard builds? A huge chunk of the warnings come from NSS and NSPR, and should be easily fixable. Most of the rest seem to come from vendored libraries, and should probably just be whitelisted if we can't get fixes upstreamed.
On Fri, May 19, 2017 at 11:44:08AM -0700, Gregory Szorc wrote:
`mach build` attempts to parse compiler warnings to a persisted "database." You can view a list of compiler warnings post build by running `mach warnings-list`. The intent behind this feature was to make it easier to find and fix compiler warnings. After all, something out of sight is out of mind. There have been a few recent changes to increase the visibility of compiler warnings with the expectation being that raising visibility will increase the chances of someone addressing them. After all, a compiler warning is either a) valid and should be fixed or b) invalid and should be ignored. Either way, a compiler warning shouldn't exist. First, `mach build` now prints a list of all parsed compiler warnings at the end of the build. More details are in the commit message: https://hg.mozilla.org/mozilla-central/rev/4abe611696ab Second, Perfherder now records the compiler warning count as a metric. This means we now have alerts when compiler warnings are added or removed, like [1]. And, we can easily see graphs of compiler warnings over time, like [2]. The compiler warnings are also surfaced in the "performance" tab of build jobs on Treeherder, like [3]. The Perfherder alerts and tracking are informational only: nobody will be backing you out merely because you added a compiler warning. While the possibility of doing that now exists, I view that decision as up to the C++ module. I'm not going to advocate for it. So if you feel passionately, take it up with them :) Astute link clickers will note that the count metrics in CI are often noisy - commonly fluctuating by a value of 1-2. I suspect there are race conditions with interleaved process output and/or bugs in the compiler warnings parser/aggregator. Since the values are currently advisory only, I'm very much taking a "perfect is the enemy of good" attitude and have no plans to improve the robustness. [1] https://treeherder.mozilla.org/perf.html#/alerts?id=6700 [2] https://mzl.la/2qFN0me and https://mzl.la/2rAkWR5 [3] https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=100509284 _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
-- Kris Maglione Senior Firefox Add-ons Engineer Mozilla Corporation The X server has to be the biggest program I've ever seen that doesn't do anything for you. --Ken Thompson _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform