For the ones of you who don't know it, Gump[2] is continuous integration made real. The idea of Gump is building every piece of code from CVS by using the CVS version of *every* dependency. This means, as an example, that Xindice is built automatically every night with the latest Ant against the latest Xalan, the latest Xerces, the latest Junit and so on. In practice this also means that if one of the libraries on which we depend changes its interface, we will know it right away and will decide what to do in a timely fashion, way before the project we depend on gets released.
Take the Xalan example: some time ago someone changed the Xalan API, and this broke our code. Gump told us, and that would have been a good time to talk with the Xalan team and understand what to do. After a few months of inactivity and a Xalan release, the only choice left to us was to change our API (and we have been lucky enough to have the chance of doing it). OTOH consider another example, Xindice has been useful to the Ant guys: if you have noticed the latest build failures, they all were about Ant not being able to package the war file, due to a backward incompatible change in the <war> Ant task. Gump noticed that, and it has been as easy as going to the Ant ML and tell our problem to have it fixed.
I consider Gump a very valuable tool, and I hope that y'all might understand how important it is to have a consistent codebase always. For the record, every Apache committer has full commit access to the Gump codebase, so please feel welcome to modify our Gump descriptor if you think things can be improved. There is at least a possible improvement actually: the XML:DB API are not being built from their CVS but rather taken from a jar file. It would be nice to have Xindice in sync with the latest version in the XMLDB CVS. Anyone willing to step up?
Ciao,
-- Gianugo Rabellino Pro-netics s.r.l. http://www.pro-netics.com
[1] http://cvs.apache.org/builds/gump/latest/xml-xindice.html [2] http://jakarta.apache.org/gump