Hi all,

The following is an overview of where we currently are with CWS warnings01, and a discussion of how to continue:

CWS warnings01 is about making the C/C++ source code of OOo warning free, at least on the four main platforms (unxlngi6, unxsoli4, unxsols4, wntmsci10). For those four platforms, we have already cleaned up a large fraction of the source code, but we are also aware that we will not manage to clean up the complete source code in the near future.

However, since it is planned to integrate further features on the OOo 2.x code line, we want to make warnings01 available on that code line soon, so that further development can benefit from it. Since the risk of breaking something is given for a CWS the size of warnings01, we want to integrate it early in a release cycle. That makes integration into OOo 2.0.4 soon after OOo 2.0.3 has been finished (i.e., late May 2006) the target of choice for warnings01.

Since, as I said above, warnings01 will most probably not be completed by that date, the approach we favour is to integrate the clean-up we have done until then, and postpone clean-up of the missing modules to a later CWS warnings02. Since we do work on warnings01 from bottom up, that means that the lower modules (plus the headers delivered from them) will be warning-free, while some upper modules will not yet be.

Now, an important issue is to not lose again what we have achieved, that is, to keep the warning-free module/platform combinations warning-free on the master after warnings01 is integrated. The only reasonable way to do that IMO is to switch on the maximum useful warning level and to force warnings to be errors (i.e., what we already do on warnings01), for every build. There are three details to note:

1 As long as the follow-up warnings02 has not been integrated, modules that are not yet warning-free must of course still be built with the old switches. That is a transient problem, and we can control that via some hacky stuff in solenv.

2 All this is only relevant for those platforms that are declared warning-free (initially the four platforms mentioned above). (If there are volunteers to make other platforms warning-free, too, that would be great; as was already mentioned earlier: the easiest way would probably to wait until warnings01 is integrated, and then start from there.)

3 ...but for those platforms that are declared warning-free (or partially warning-free, until warnings02 is also done), everybody has to agree that we switch on "warnings are errors" in the master once warnings01 is integrated. It follows that, in an ideal world, every CWS should then be built on unxlngi6, unxsol{i|s}4 (sufficiently similar so that one of them ought to be enough), and wntmsci10, so that build breaks are found early, before integration.

Another problem that only dawned on us recently is the following: The OOo source includes a number of external projects that deliver C/C++ headers that are included from other modules. To suppress warnings from such headers, patches have been included for some of those external projects on warnings01. However, some people build OOo in such a way that they use system-supplied alternatives of those external projects, so that the patches will have no effect for them. That means that switching on "warnings are errors" can break such builds (although the "official" OOo builds would succeed). The relevant patch files, until now, are
  boost/boost-1.30.2.patch
  boost/spirit-1.6.1.patch
  icu/icu-2.6.patch
  neon/neon.patch
  python/Python-2.3.4.patch
  sablot/Sablot-0.52.patch
  stlport/STLport-4.0.patch
  stlport/STLport-4.5-0119.patch
If anybody has an elegant solution to this problem, that would be great.

Lets discuss any concerns with this plan,
-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to