Re: How do you hack on the bleeding edge of Gnome?



On Wed, 2012-04-18 at 17:43 -0700, Sriram Ramkrishna wrote:
> 
> 
> On Wed, Apr 18, 2012 at 4:45 PM, Colin 
>         
>         The issue is not so much time as unreliability.  I've tried to
>         address
>         some of those with jhbuild, but there are two major ones
>         remaining:
>         
>         1) Building from unclean source tree - stale Makefiles,
>         leftover
>           binaries, etc.
>         2) Our lack of multi-module continuous integration
>         
>         
> 
> There should be a continuous build going on, and when it fails the
> module owner should be informed that their module has failed and it
> should be fixed, IMHO.
> 
> I think a lot of people would thank us.

Honestly, I think if we just:

* added a couple more buildbots to http://build.gnome.org/
* ensured buildbot uptime and operation
* ensured they all mailed maintainers upon build failures

we would be in much better shape.

Though there are some unique problems with jhbuild that can make this
hard to get right (which is why I suspect we don't already notify about
build errors). Some of these (off the top of my head) are:

* build system errors
  * maintainer error (invalid build config)
  * autotools/macro annoyances (eg, failure to pull in libtool macros)
  * wedged build state 'make *clean' won't fix (must git clean -xdf)

* older installed library versions cause linking errors
  * this happened with GLib in recent memory (this cycle or last)
  * older version must be uninstalled to resolve
  * if the build bot builds from scratch regularly, they won't hit this
    error that developers easily can

* "soft" ABI breaks (eg, g-i or Vala) which can require a combination of
  re-building and even first uninstalling several intermediate modules
  * this gave Folks a lot of trouble, especially in the beginning
  * g-i and Vala have mostly settled these issues, but I would hate to
    have another up-and-coming dependency run us through the same issues

I'm sure there are some I'm forgetting. But the reason these would be
hard to solve is that they mostly can't be fixed by the maintainers
after-the-fact. There's no way to propagate a "jhbuild uninstall
<module>; jhbuild buildone <module>" to jhbuild users (though I honestly
wonder if the issues that this would fix can't be solved in a more
natural way).

I think if we wanted rock-solid buildability, we would need two-stage
mainlining (where "Gnome mainline" repos would only pull the latest
"maintainer mainline" commits if they built successfully on the
buildbots). I can imagine avalanche of reasons why this would be
infeasible for our development model. But I think until we can resolve
problems like the one ones above (and throughout this thread), building
most modules and their dependencies through jhbuild will remain an
exercise in frustration, limiting it to very dedicated contributors.

-Travis

Attachment: smime.p7s
Description: S/MIME cryptographic signature



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