Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Auto Closed
-
None
-
None
-
None
Description
A new interesting feature would be useful for some projects.
The promotion process.
First of all, what is a promotion ?
The promotion is the process of validating a version as stabilized by changing a version.
Promotion steps are SNAPSHOT --> alpha --> beta --> rc --> Main version.
Use case
Artifact : promotiontest-project
Version : 1.0-alpha-1-SNAPSHOT
Developers work on the SNAPSHOT from the trunk.
Once the SNAPSHOT pass the unit test, it is decided to release it (using release plugin).
The version is then tagged and deployed to the repository as 1.0-alpha-1. The next development version us the 1.0-alpha-2-SNAPSHOT
The assembly step aims at test the alpha version. If the version is validated, We would like to promote it to beta.
Promoting the version to beta just change the version name from 1.0-alpha-1 to 1.0-beta-1, tag this new version, and deployed it to the repository.
The integration step aims at test the beta version. If the version is validated, We would like to promote it to release candidate (rc).
Finally the version could be promoted as 1.0 version.
Proposition
mvn release:promote -DversionToPromote=1.0-alpha-1
The goal should work in a similar way as the branch goal, excepting it forces the branch name using the versionToPromote name and it does not change the local copy.
1/ By using release information, the plugin retrieves the scm tag of the versionToPromote
2/ It checks out the version from the scm
3/ It changes the pom.xml versions and scm tags.
4/ It creates the new tag
5/ It checkout the new tag an perform the release (deploy to the repository)