[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Compulsory +1s for buildsystem commits? (was: Re: svn commit: r37369 - in trunk: . build)

From: Stefan Sperling <stsp_at_elego.de>
Date: Mon, 20 Apr 2009 14:56:59 +0100

On Mon, Apr 20, 2009 at 01:14:52PM +0200, Bert Huijben wrote:
> > -----Original Message-----
> > From: Arfrever Frehtes Taifersar Arahesis [mailto:Arfrever.FTA_at_GMail.Com]
> > Sent: zondag 19 april 2009 21:32
> > To: svn_at_subversion.tigris.org
> > Subject: svn commit: r37369 - in trunk: . build
> >
> > Author: arfrever
> > Date: Sun Apr 19 12:32:18 2009
> > New Revision: 37369
> >
> > Log:
> > Use LD_PRELOAD to ensure that locally built Subversion libraries are used.
> >
> > * Makefile.in
> > (local-all): Depend on 'transform-libtool-scripts' rule.
> > (transform-libtool-scripts): New rule which calls
> > 'build/transform_libtool_scripts.sh'.
> >
> > * build/transform_libtool_scripts.sh: New script which adds definitions of
> > LD_PRELOAD to libtool wrapper scripts.
>
> It looks like this commit made it impossible to run the tests on the MacOS
> neon and serf buildbots. (They can't find a ra_dav module)

Meta discussion:

We are relying on things like libtool to compile our tree, which has
been shown to have various problems that sometimes only show on
particular platforms.

It is a pain to having to fix the buildsystem if it is broken for your
particular platform. Especially if it keeps working for everyone else.
When it happen to you, it's a huge time sink. I had to go through this
3 weeks in a row recently, and nearly forgot what it a joy it can be
to be hacking Subversion. It was very demotivating.

Given the amount of trouble we had with the buildsystem and our
various platforms in the past, I would suggest we make it mandatory
for patches to the build system to be tested on as many platforms
as possible *before* committing. The goal here is to prevent such
commits from preventing others to get work done they are in the
middle of doing.

And "platforms" here has a higher granularity than *nix and Windows.
We need to test these changes at least on:

        - some Linux
        - some BSD
        - MacOS X
        - Windows

Now, I recognize that Windows uses a completely different toolchain,
but for simplicity, let's just assume for now that any change
to the buildsystem might affect any platform. We can flesh more
details out later.

I.e., assuming this simplification, four +1's, one for each platform,
for any potentially troublesome buildsystem change are ideal.
If people time out (say, give them 3-5 days), then it's fine to assume
that the change can be committed.

We don't have to rush changes in all the time. It is acceptable to
make a patch, send it to the list, relax, wait for +1s for up to
5 working days, and commit it once everyone is happy. The world
does not end if your change gets in a week later then when you
made it. But it does end for people if the buildsystem breaks.

Please, we cannot keep tweaking the buildsystem on one platform,
commit, and break things on other platforms. It's evidently been
happening too much.

The build system *must* work, just like the test suite. It is important.

Stefan
Received on 2009-04-20 15:57:24 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.