Bootstrapping a Gump Run

I’ve been playing around with Gump over the weekend. My goal was to set up a Gump run on an Xserve box that Apple has made available to the ASF, so we get some build coverage on the platform of all the packages and projects that Gump tracks.

Gump builds and installs hundreds of software packages, and to get the maximum experience I started from scratch, by checking out the trunk of the Gump source code. Before Gump can run, it requires the presence of several native and Python packages. I found out about these by repeatedly calling ./gump run until it would actually go, installing pre-requisite libraries along the way. I don’t remember exactly what I installed, but one component (rdflib?) required Python 2.4 so I installed that as well.

Gump checks for a number of prerequisites like make, ant, maven, a .Net runtime and it’s build utility NAnt. After I had all these up and running, I had the following build result:

Projects Successes Failures Prereqs No Works Packages
769 72 (9.36%) 131 (17.04%) 566 (73.60%) 00 (0.00%) 00 (0.00%)

Then, I started adding packaged projects by finding out from the build logs which jars were missing, and downloading those from the individual project web sites. This slightly reduced the number of failures due to missing prerequisites:

770 121 (15.71%) 111 (14.42%) 503 (65.32%) 00 (0.00%) 35 (4.55%)

However, tracing down all those packages proved pretty tedious, so I cheated. I got with the Gump guys and copied the entire package collection from one of their official instances. This got my failure count down markedly:

772 122 (15.80%) 30 (3.89%) 497 (64.38%) 00 (0.00%) 123 (15.93%)

But wait, the failure count was down, but the success rate did not increase. What was going on? Well, most projects depended on JUnit, which just a couple of days before had introduced some JDK 1.5 only features. So, I switched the entire Gump run to JDK 1.5. I also populated the Maven local repository by hand-rolling some failing builds. Gump runs Maven in offline mode, so it doesn’t go out on the net to find jars it doesn’t have. The folks on the Gump mailinglist were very helpful getting me up and running. This exercise got me to just about the present state:

778 404 (51.93%) 73 (9.38%) 175 (22.49%) 00 (0.00%) 126 (16.20%)

A few more failures, mostly because of failing JUnit tests, but radically higher number of successes. Tee Hee! We’re getting somewhere! I have now put Gump on an automated run every six hours, with the results publiclly available. Now if I could figure out how the Stats and Xref pages work, I’d be onto something.

Be Sociable, Share!