One of the questions we received over the last few weeks is how stable Nooku is for production use. A good question that isnít easy to answer.
At the moment when we move to a new milestone we create an unstable trunk. Bugs reported by our partners are getting fixed but the fixes are only released in a new milestone release which by the fact that it introduces new features also introduces new bugs.
To give our partners the opportunity to use Nooku on production sites we decided to change our versioning and branching strategy.
An agile release strategy
We have introduced the concept of unstable release branches. In practice this means that the actual development work is done in the release branches. When the work in the release branch is completed it is merged back with the trunk.
This approach allow us to fix bugs immediately in the separate release branches and roll out new builds on the spot. Partners will be able to choose to integrate the stable version or test the unstable version that is in active developed.
We also started to roll out builds of both the stable an unstable versions on a daily basis (nightly builds). Partners don't need to wait any longer until the end of a milestone cycle to obtain a new package.
A new versioning schema
The new agile release strategy is also be reflected in Nooku's new versioning schema. The versioning schema now follows the x.x.x format, in the same way as Joomla! does.
We started by renaming Milestone 10 to version 0.5.0, and the planned Milestone 11 will then become 0.6.0 and so on. This change allows us to do very agile maintenance or bug fix updates of the release branches. For example we just released 0.5.2 yesterday to fix a few minor bugs and are now collecting bug reports for 0.5.3.
Each minor release is focussed around one or two large features. For the upcoming minor releases of Nooku we have identified (based on the feedback of the partners) three large features yet to be implemented for Nooku 1.0. More on those in a next blog post.
This change in strategy will allow our partners to start implementing Nooku knowing that we can provide support and bug fixes on a minor release basis.
For those of you who are interested to read up on svn branching strategies can check out this excellent blog post.