harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject Dr. Strangebuild or: How I learned to stop worrying and love Gump
Date Thu, 16 Mar 2006 18:07:59 GMT
Mark Hindess wrote:
> Stefano,
> 
> I don't really know much about gump but I'm interested to learn a
> little more about it.

Gump is the, citing Leo, the "most misunderstood piece of software ever".

On the surface, Gump is a nightly build system: it reads a bunch of xml 
files that tell it where the various cvs or svn repositories are, 
fetches them and builds them.

No biggy so far. Projects like Continuum, Tinderbox and probably your 
own build system that you wrote years ago for your own project work like 
this too, with more or less sophistication, with more or less simplicity 
of interaction, with more or less detailed of report, with more or less 
frequency and continuous operation.

Gump does something a little weird here: if project A depends on library 
B version 2.0, gump takes project B (from trunk!), builds that and uses 
that to build A instead of using the version that project A advertises 
it needs.

Normally, it fails.

It's at this point that people start scratching their heads: why would I 
want that? I'll deal with the next version of that library once the time 
comes, why bother now?

Well, Gump was conceived, written and first maintained for years by Sam 
(Ruby) [another one of the mentors of this project, FYI]. Sam described 
it as a "social experiment": Gump is not supposed to tell you if your 
project builds or not, but it's supposed to tell you if *your* changes 
broke somebody that depended on them!

It's supposed to make you want to talk to people on other projects.

In 6 years of operation, we had *2* perfect gump runs. yes, 2, out of 
probably 6(years) * 356(days) * 3(times a day) * 3(machines) * 3(virtual 
machines) runs.

But success stories for Gump are not reaching 100%, but telling project 
A that their apparently harmless single-line API deprecation caused 35% 
of 900 projects to fail! This is the kind of knowledge that no other 
system will be able to emerge for you!

Gump is also written in python, therefore JVM-independent and is used to 
build not only java projects (like APR and HTTPD).

Today gump run is at 75% success using JVM 1.5 and 20% using Kaffe + 
Classpath.

The ASF runs gump on its own virtual box at

  http://vmgump.apache.org/

for more info about the project see

  http://gump.apache.org/

WARNING: gump is far from being perfect and a new generation (gump3) has 
been in the making forever [and this is why both Leo and I got a real 
day job and stopped working on it]. We also had a summer-of-code student 
working on the dynamic web application interface for dynagump and 
continuing that work is in my light-year-long todo list.

I'm secretly hoping to get this project to make me itch my old gump 
scars enough to start scratching again.

NOTE: if somebody wants to have access to vmgump (the solaris zone that 
runs all the code) and help us setup a harmony gump run, that can be 
easily arranged.

Hope this helps.

-- 
Stefano.


Mime
View raw message