We are currently switching from Subversion to Git, and we plan on using git flow. So this plugin looks like a perfect fit for us. But I do have some questions about versioning and how that impacts QA and the final release version numbers.
From what I can tell, release-start creates the release branch. In the git flow world, it seems the correct thing to do is to give a build off that release branch to QA and if all is well, ship it. However, the release branch is still a SNAPSHOT. While at that point, we could just run release-finish and get the no-SNAPSHOT version, it seems odd to rebuild and ship a binary artifact that was not passed through QA, even if we do completely trust our build process.
I've seen other blogs about maven/gitflow that discuss the release branch being changed to a -rc1, etc instead of keeping the SNAPSHOT. Alternatively, add a fourth digit to an otherwise 3-digit version (effectively an rc, with the "rc" in the name, so it wouldn't be customer visible). Yet another alternative would be to bump the develop middle version number and allow the release branch to own that major.minor version forever (effectively the same as the 4th digit as well, but the inverse and only using 3 digits).
In all these cases, however, the release-finish would fail due to merge conflicts back to develop.
I should note that our final artifact is more of a cellophane-wrapped style, since it is a binary image for an embedded product. The customer must see the version number to know if they should upgrade their product or not.
In general, we want to follow the mainstream - so what does the jgitflow plugin have to say about this issue?
Thanks,
Ben
PS If the answer is always run release-start release-finish together, which certainly seems viable, it seems to negate the purpose of the release-branch from a gitflow point of view. (But I guess when trying to reconcile to opposing systems (gitflow vs maven release), something has go to give...)