My group (the blogs.sun.com or BSC team) at Sun believes pretty
strongly that small incremental releases are easier to document and
deploy than large ones. Following this philosophy, we deploy new
features to our sites on a monthly basis. This presents some challenges
for us because work directly with the Roller code-base and we don't
maintain a separate fork of Roller.
I had been thinking that BSC would deploy each month, operating off of
SVN HEAD, but the Roller project would make releases every couple of
months -- when new features justify a release. Each major Roller
release (e.g. 1.2) would happen in a branch and would get one or more
bug fixes releases (e.g. 1.2.1 and 1.2.2, etc.). I thought monthly
releases were too frequent. My reasoning was this:
* Nobody would want to track the monthly releases
* Users who don't track will have more difficult upgrades
* Users who have deployed existing releases expect bugs to be fixed in
those releases
* Users would want to stick with major releases for a long time
But there are problems with that. One problem is limited resources.
Since BSC folks (Allen and I) are busy making monthly deployments, we
have limited time to participate in the testing, documenting and
releasing of big every-couple-of-months releases. We also have limited
time (and limited interest) to work on fixing bugs in old releases of
Roller.
Long story short, the BSC team is now pushing for monthly Roller
releases to match the monthly BSC deployments. As a BSC team member, I
have to advocate this and that is what I'm doing by writing this email.
But as an independent Roller team member, I'm undecided. I'm not sure
how I'd vote, so please help me out with some lively discussion.
So, let's say the Roller project makes monthly releases. What are the
implications?
* The SVN HEAD must be very near stable at all times because a new
release is never more than a month away. Any large development that
takes more than a month must occur in a separate branch (as we're doing
with Roller 2.0 / group blogging).
* It is no longer feasible to make bug fixes to old releases of Roller.
The way you get new bug fixes is by keeping current on Roller.
* To make it easy for users to keep up with Roller we'll need to limit
the frequency of database schema changes and when schema changes do
occur, the database upgrade must be automated and trouble free.
The advantages of release early, release often are well known so I
won't cover them here. You can read what ESR has to say about the
philosophy here:
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
ar01s04.html
So my questions are:
* How does the Roller community feel about monthly releases?
* Is there any Apache policy that is relevant to this discussion?
* How do we use the Apache voting rules to resolve this?
- Dave