Release cycle

From Freeplane - free mind mapping and knowledge management software
Revision as of 18:03, 5 March 2010 by Ewl (talk | contribs) (Add other view.)

Release Cycle

Freeplane Release model

As shown above, the release cycle of Freeplane consists of 4 phases:

Alpha 
3 months of "wild" development on MAIN/HEAD/trunk (CVS resp. SVN talk)

⇒ Branch the next release e.g. Branch_1.0.x - developers can continue to bring in new features on MAIN/HEAD/trunk.

Beta 
2 months of bug fixing releases on Branch_1.0.x - that would be Beta releases.

⇒ Create RC1 (Release Candidate) - call for translations, 3rd party plugins and packaging.

Release Candidate (RC) 
1 month of integration of translations + critical bug fixing (3rd party plugins and packaging as well, but final packaging can only happen after final release so we can only make sure that it all happen in a limited timeframe).

⇒ Create Final release, e.g. 1.1.0.

Stable 
new bug fixing / stable releases can be done as required, called 1.1.1, 1.1.2...

⇒ Restart the cycle e.g. for 1.2.x

Another way to show the approach is the following 3 pictures. The blue line turns clockwise while we progress through a release cycle; what is right of the line (in Green) is allowed to be done, what is left of the line (in Red) isn't. This means that everything is allowed during Alpha phase, that in Beta we should avoid major rewrite unless it's needed to fix a critical bug, and, as we come to RC, almost nothing is allowed but to fix critical bugs.

Side note
the line progresses continuously, it's not a sudden jump, e.g. during beta, we implement always less new things, even if they're easy to do, and fix always more bug, thus regularly stabilizing the code basis.

Alpha phaseBeta phaseRelease Candidate phase