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








Reply via email to