From: Sam Ruby (23 May 2001 10:02 AM)

> Jason van Zyl wrote:
> >
> > What is going on here? I fixed this code almost two days ago.
> 
> http://jakarta.apache.org/builds/gump/2001-05-21/cvs_index.html
> http://jakarta.apache.org/builds/gump/2001-05-22/cvs_index.html
> 
> Compare this to the "good old days":
> 
> http://jakarta.apache.org/builds/gump/2001-04-15/cvs_index.html
> 
> Daedalus performance (or lack thereof) has basically gotten 
> to the point
> where programs like Gump are great in theory, but impractical in
> practice...

(Disclaimer: I'm not a committer on any project, so my opinion is
 objective, but slightly under-informed, and without authority)

In general, I believe that automated build/test processes are *very*
important, an do work.
We've got some teams using CruiseControl here, and it is doing well.
The reasons I think that gump registers so many failures are:

1) The environment in which gump runs is not identical to the 
    environment the developers run (OS, jdk, jars, etc), and I'm
    not sure if it is even well defined.
   Now, given that these are supposed to be cross platform
    java projects, that shouldn't be an issue, but it has been,
    and will continue to be.
   Unless each developer replicates the Gump environment on his/her
    workstation, they will not find all problems. However doing so
    will only fix problems for that environment, so in some ways
    leaving it slightly undefined is helpful to keep portability.

2) Developers can't/don't run the tests before checkin.
   In our situation, if you checkin something that breaks the tests,
    you're an idiot.
   I don't think that happens in apache, for a few reasons.
   The primary one being that most people are doing this in the spare
    time, and a channeling in patches from numerous sources. Forcing
    full rebuilds with unit tests would make that channel so small that
    work would grind to a virtual stand-still.

3) Developers can't/don't test other projects.
   This is particularly relevant to ant, but also to some of the XML
    and (soon) commons modules.
   A number of build failures have been due to changes in ant.
   Ant should continue to be free to change things as needed to make
    ant better, and that will continue to break projects that rely
    on specific ant features/bugs.
   Unless the developers are going to rebuild all the dependant
    projects everytime they make a change, then this will keep 
    happening.

4) Gump (I think) only runs once a day.
   This means that there's up to 24hrs before you know that you broke
    something.
   CruiseControl (generally) runs every 15 minutes, and rebuilds if
    the project has had a new checkin. This way you know quite quickly
    that you broke something.
   Potentially, you could have gump work in a system where if a project
    fails a build, it moves to nightly builds only, but onces it passes
    a nightly build it moves to a build every 3(?) hours, until it fails
    again. 
   That way, you're not going to keep getting "build failed" messages
    all days, waiting for someone to fix it, but you will know straight
    away (alomost) when a change breaks a project.
   
5) Attitude.
   Given the length of time that some projects remain broken, I guess
    some projects don't particularly care too much. Which is a pity.
   (Granted some projects believe they've fixed it, and that gump is
    misbehaving, so you can't blame them for that).


Anyway, the conclusion I can see is that for reasons 1-3, gump is
actually replacing build/testing on developers machines, and is 
generally being the method by which people are alerted that they broke
something, rather than them discovering it themselves.
I don't think that this is a problem, but it will mean that gump is
going to keep failing.
I think if it gets repositioned to fill such a role (or maybe it 
already is, and I'm misinformed) then solving (4) will be useful.
Ultimately though, (5) is the kicker.

JM2C.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to