Branching and Release Management Policy
There are usually two active branches at any given time:
The stable branch
The development branch
Release packages from stable and development branches are linked on the home page.
Between releases, the latest code is always available from our Subversion repository
Stable branch policy
The stable branch should receive only the most important bug fixes, so that:
The development resources are focused on development branch, avoiding porting efforts when possible.
The stable branch is kept very stable and hence guarantee a safe upgrade path for everybody
For these reasons, we will fix on the stable branch the following kind of issues:
Bugs with category “security”
Critical bugs like deployment stoppers, blank screens, installation and upgrade issues
Bugs that are generating a lot of support requests
If unsure, feel free to ask on the mantisbt-dev mailing list
Development Branch Policy
The development branch (i.e. SVN trunk) is where all the “interesting” things happens; new features and bug fixes are usually applied here first, then tested and ported to the stable branch when deemed necessary.
Whenever the development branch reaches a state considered good enough for becoming the “stable” one, the following happens:
A new branch is created from SVN trunk
A release candidate (RC) is created off this new branch
The RC branch enters in a “feature freeze” mode (no new features added)
Testing and bug fixing continue on the RC branch until it can be declared stable
During feature freeze:
New features can still enter SVN trunk, but all developers are encouraged to help polishing the RC branch before focusing again on the development branch.
No official releases are composed from SVN trunk (that is, the soon-to-be development branch)
ONLY CRITICAL FIXES are applied to the stable branch
At release time:
The RC branch becomes the new stable branch
Support ends for the old stable branch
Normal development resumes on SVN trunk