Hi volks,
I want to discuss how we work with the main version and the development branch on github.
Actually Openfire is on version 3.9.2 and we're working on a bugfix release 3.9.3. Some issue was raised in 3.9.2 that wasn't part of 3.9.1. This is a bit annoying for the customers I think. if a version number changes on the last place, the "bugfix"-place, the customers don't think that some issues are raised due new features.
I think many of us knew the version policy of apache maven: https://cwiki.apache.org/confluence/display/MAVEN/Version+number+policy
Today it's really common and I think we should use it too.
But what does it mean for our development lifecycle? Currently we develop all our stuff on the master (or on branches that are merged into the master). The better way in my opinion is to branch direct of just a few days after the Major/Minor-Release. Then we shift the version on the master at the place of the minor-number - the branch gets a bugfix-version-number.
Improvements, Development, Bugfixes are directly integrated into the master. But the Bugfixes should be also merged into the latest bugfix-version.
For example:
We release 3.9 today. The master gets the version 3.10-alpha. All further development is integrated here. Also the bugfixes. (The master could be renamed later if the the next release needs a major number).
In parallel we create a branch for 3.9 and name it 3.9.1-alpha. To this tree we merge our bugfixes by merging or cherry-picking from other branches/commits.
Why we should do this?
Actually we've to touch the software with "velvet glove" because we're waiting for the bugfix release 3.9.3. We can't integrate a refactoring, I've really fear to provide some pull requests to the buildsystem that could break an assembly or something that I would test less.
That isn't a complimentary ticket to break the build of the master or do refactorings with an axe! But I feel more comfortable with a real development branch where we could discuss the implementation and blame each other - regardless of our current bugfix release ;-D
Just my 2 cents,
Sven