[Development] Fwd: Change in qt/qtbase[dev]: Enable -Werror for all of qtbase

Thiago Macieira thiago.macieira at intel.com
Thu Sep 5 17:46:22 CEST 2013


On quinta-feira, 5 de setembro de 2013 09:41:11, Giuseppe D'Angelo wrote:
> On 5 September 2013 08:44, Thiago Macieira <thiago.macieira at intel.com> 
wrote:
> > Can we please give the feature a try, for a week or two, with
> > -warnings-are- errors enabled in all CI builds?
> 
> I don't think this is the point. We already do have several
> -developer-build configurations active in CI, and, as you say, that's
> enough for enabling -Werror there. Eventually, the configurations
> without -developer-build could get -warnings-are-errors, but that's
> another story...

That's part of what I am asking.

> The problem (*) is that the CI is not testing common configurations
> that developers use daily, for instance GCC 4.7/4.8 under Linux. If a
> patch of mine triggers warnings (= errors) under one of those
> compilers, but not for the other compilers used by CI (see [1]) it
> will get merged. And as soon as the other hundred developers pull the
> branches with that patch, they'll have a broken build, and they'll
> have to act to solve / work around the warning (instead of doing their
> job [2]).
> 
> That's why I was proposing to limit the -Werror to those compilers
> which are actually in the CI, so those patches don't get merged in the
> first place and the *submitter* is forced to act to solve the warning:

I disagree. That's why I am asking for two weeks of testing.

I don't think -Werror are any worse than any other changes going on. Let me 
give you several examples:

1) developer A writes code on Ubuntu, for example the same version that we 
have on CI. It compiles, so it gets integrated. Developer B gets the code and 
is running brand-new Gentoo or Fedora Rawhide, with glibc 2.19-pre. Code fails 
to compile because glibc removed an indirect include.

This has happened in the past, just with different version numbers.

2) developer A submits code that uses non-standard header names and bad 
include guards, and it passes CI integration. Developer B downloads the code 
and does some extra checks, causing the problems to show.

Developer A = Lars & Simon, the code was V4.

3) code exists in the Qt repositories and compiles on all compilers we've so 
far tested. A new compiler version is released, so we test and find that it 
fails to compile due to a stricter checking of some C++ feature.

This has also happened in the past, like with aliasing violations.

My points are:
* The CI can *never* check everything. We rely on crowdsourcing by our own 
  devs to catch those mistakes.
* New compilers need to be validated anyway.
* Upgrades of third-party libraries can cause build failures anyway.

So I am asserting here that -Werror is no different from the cases above. The 
issues we're seeing now is that we've only had a limited time to fix the 
*existing* warnings. That's why I am asking for one or two weeks, so we find 
out how often this continues to happen, after the initial warnings get fixed.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130905/ab0068e5/attachment.sig>


More information about the Development mailing list