Enabling builddir != srcdir by default in jhbuild



Hi all;

as you may know, automated build services – for instance Continuous,
OBS, or the autotools distcheck – use a build directory that is not
the same as the source directory. Our own jhbuild allows this, even if
it's disabled by default. This means that developers may work on a
feature or a fix in jhbuild, and build the project successfully – only
to introduce a build failure that either gets caught by the Continuous
system, or gets caught by the maintainer only during `make distcheck`
at release time.

We've had many build failures that are usually the result of a broken
`builddir == srcdir` assumption; they usually break distcheck,
delaying releases; they also break Continuous, or builds from
distribution packagers. Various projects mandate a builddir != srcdir
default in their own build system, but it's not really mandatory.

Jhbuild supports building projects in a separate root, which would
allow maintainers to catch build breakages; you just need to add:

    buildroot = '~/gnome/build'

to your ~/.config/jhbuildrc. Jhbuild also allows projects to specify
that they cannot build if the build directory is not the source
directory, thus providing an escape hatch.

My proposal is to enable this behaviour in the default jhbuildrc, so
that all GNOME projects automatically build in a separate root. This
change should have no, or minimal impact on the subset of the
moduleset that is covered by Continuous; it may require fixing the
build of various modules in the gnome-apps or gnome-world modulesets.
The major upsides would be that:

 * automated builds of our software are possible without hacks
 * distchecking projects does not fail at the very last minute before
release but during development
 * we bring the development environment and the continuous deployment
environment closer

What do maintainers think?

Ciao,
 Emmanuele.

-- 
https://www.bassi.io
[ ] ebassi [ gmail com]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]