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 Dain.
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?
-David