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]