geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <>
Subject releasing: it takes two
Date Fri, 20 Jan 2006 20:12:12 GMT
One thing I've been meaning to hit the list with now that we are  
formalizing our release process a bit more....

For every release I've done ever (in OpenEJB, Geronimo, or  
otherwise), the dynamic I call Pilot and Co-Pilot seems to always  
come in.  You have the person leading the show, the Pilot (aka  
"Release Manager") and someone dedicated to the pilot.  The two of  
them are responsible for delivering a good release.  It's just too  
much work to do a release completely alone; too much to remember and  
too many steps to do.  You usually have someone putting in the hours  
with you dotting the "i"s and crossing the "t"s while you are doing  
the tagging and branching, building and signing, etc.

In OpenEJB for many of the releases is was me as pilot and Alan as co- 
pilot.  For some Alan would be pilot and I would be co-pilot.

In Geronimo, I seem to remember the releases going like this:

  1.0-M1:  David B. (pilot), Dain (co-pilot)
  1.0-M2:  David B. (pilot), Dain (co-pilot)
  1.0-M3:  David B. (pilot), Dain (co-pilot)

Those were all done in the exact same Dunn Brothers coffee shop,  
ironically, and took 1-2 weeks each.  In M3 we actually tried to do  
it at OSCON '04 and I lost Dain to endless meetings and the release  
just didn't happen till the second week after when we happened to be  
back in MN again.  None of those releases could have happened without  

  1.0-M4:  David B. (pilot), David J. (co-pilot)

This one was a bit TCK release and it was David J. and I up till the  
wee hours of the morning the last three days and pushing binaries  
getting the last few tck results.  I remember I screwed up the  
installer cause I built it from the branch and no the tag by  
mistake.  Since David J. was working with me on it, he was able to  
figure it out and put out a good installer right away the next  
morning when people complained about it not working quite right.   
Definitely, that release would not exist without David J.  He carries  
more than his weight in TCK work in all releases these days, but this  
one he did a significant amount of the polish on the binary work.

  1.0-M5:  Jeff (pilot), David B. (co-pilot)

Jeff lead the charge with closing up issues, branching, etc., and I  
pretty much just did my best to try and figure out what it is I  
usually did for releases and communicate that to Jeff.  David J. and  
I did the pre-final-build TCK testing and managed to get that done  
just before OSCON '05.  The final run happened on David J's machine  
"crow" during OSCON '05.

  1.0: Matt (pilot), David B. (co-pilot)

Matt lead the charge.  He gets the record for the most endurance  
displayed during a release cycle ;).  This was the most community  
driven release to date namely because many of us in LA then San Diego  
for a week.  TCK work done by David J. and myself.  The final-final- 
final-final binaries created, signed and pushed to the mirrors by  
Matt with help from me.  I'm not a very good co-pilot or I would have  
remembered to push the OpenEJB binaries at the same time we did the  
Geronimo ones :)

Anyway, all releases should be community run and they are getting  
that way more and more.  But I know from experience doing a release  
is hard work and you need a dedicated backup to really do it right.   
It's also the only real way to pass the release baton from one person  
to another: let them co-pilot a release with you and then let them be  
pilot on the next release; or let them be pilot and you be co-pilot.

The proposal is that I think it would be great if we designated a  
pilot and co-pilot for every release cause that's pretty much the way  
every release has been done.  I've also noticed that the quality of  
release seems to be very tied to how closely the pilot and co-pilot  
work together (i.e. less is overlooked).

What do you guys think?


View raw message