...
...
Then run the source build script (Replacing the parameters: X.Y.Z.0=your official version number for the release; X.Y=the branch (can be mastermain) that the release is coming from; CCCC=the GPG Key to sign both the artifacts and the git tag with):
...
Code Block | ||
---|---|---|
| ||
$ git checkout X.Y-RC$TIMESTAMP # checkout the RC branch $ git tag X.Y.Z.0 # the tag has already been created by build_asf.sh $ git push origin X.Y.Z.0 # push the tag to origin # if Z=0 / i.e. NEW release (X.Y.0.0) # Rename the RC branch and set the next POMs version in this new branch $ git branch -m X.Y-RC$TIMESTAMP X.Y $ git push -u origin X.Y $ bash tools/build/setnextversion.sh -b X.Y -v X.Y.1.0-SNAPSHOT -s /root/cloudstack # replace with local working directory $ grep -r "X.Y.0.0" . # doublecheck by grepping for the older POM version - should return a few git refs and comments - not the POMs/code - and if all good push $ git push origin X.Y # Merge the new branch into the mastermain AND set the nextversions in the mastermain branch $ git checkout mastermain $ git pull $ git merge X.Y $ bash tools/build/setnextversion.sh -b mastermain -v X.Y+1.0.0-SNAPSHOT -s /root/cloudstack # replace with local working directory $ grep -r "X.Y.1.0" . # doublecheck by grepping for the older POM version - should return a few git refs and comments - not the POMs/code - and if all good push $ git push origin mastermain # else Z!=0 (LTS maintenance release, X.Y.Z.0) # Merge the RC branch into the release branch AND set the nextversions in the current X.Y branch $ git checkout X.Y $ git pull $ git merge X.Y-RC$TIMESTAMP $ bash tools/build/setnextversion.sh -b X.Y -v X.Y.Z+1.0-SNAPSHOT -s /root/cloudstack # replace with local working directory $ grep -r "X.Y.Z.0" . # doublecheck by grepping for the older POM version - should return a few git refs and comments - not the POMs/code - and if all good push $ git push origin X.Y # end of IF/ELSE block, delete older RC branches (repeat for all RC branches) $ git branch -d X.Y-RC$TIMESTAMP # delete the RC branch locally $ git push origin :X.Y-RC$TIMESTAMP # deletes the RC branch on origin |
...
Code Block | ||
---|---|---|
| ||
Example for 4.14.0.0 **new** release $ git checkout 4.14.0.0-RC20200511T1503 # checkout the RC branch $ git tag 4.14.0.0 # the tag has already been created by build_asf.sh $ git push origin 4.14.0.0 # push the tag to origin # Rename the RC branch and set the next version in this new branch $ git branch -m 4.14.0.0-RC20200511T1503 4.14 $ git push -u origin 4.14 $ bash tools/build/setnextversion.sh -b 4.14 -v 4.14.1.0-SNAPSHOT -s /root/cloudstack # replace with local working directory $ grep -r "4.14.0.0" . # doublecheck by grepping for the older POMs version - should return a few git refs and comments - not the POMs/code - and if all good push $ git push origin 4.14 # Merge the new branch into the mastermain AND set the nextversions in the mastermain branch $ git checkout mastermain $ git pull $ git merge 4.14 $ bash tools/build/setnextversion.sh -b mastermain -v 4.15.0.0-SNAPSHOT -s /root/cloudstack #replace with local working directory $ grep -r "4.14.1.0" . # doublecheck by grepping for the older POM version - should return a few git refs and comments - not the POMs/code - and if all good push $ git push origin mastermain # delete older RC branches (repeat for all RC branches) $ git branch -d 4.14.0.0-RC20200511T1503 # delete the RC branch locally $ git push origin :4.14.0.0-RC20200511T1503 # deletes the RC branch on origin Example for 4.13.1.0 **maintenance** release $ git checkout 4.13.1.0-RC20200423T1917 # checkout the RC branch $ git tag 4.13.1.0 # the tag has already been created by build_asf.sh $ git push origin 4.13.1.0 # push the tag to origin # Merge 4.13.1.0-RC20200423T1917 into the 4.13 AND set the nextversions in the current/4.13 branch $ git checkout 4.13 $ git pull $ git merge 4.13.1.0-RC20200423T1917 $ bash tools/build/setnextversion.sh -b 4.13 -v 4.13.2.0-SNAPSHOT -s /root/cloudstack #replace with local working directory $ grep -r "4.13.1.0" . # doublecheck by grepping for the older POM version - should return a few git refs and comments - not the POMs/code - and if all good push $ git push origin 4.13 # delete older RC branches (repeat for all RC branches) - BUT better NOT delete the voted RC branch before generating the API doc - see below note on updating http://cloudstack.apache.org/ $ git branch -d 4.13.1.0-RC20200423T1917 # delete the RC branch locally $ git push origin :4.13.1.0-RC20200423T1917 # deletes the RC branch on origin |
...
...
...
...
The downloads page at http://cloudstack.apache.org/downloads.html must be updated - this involves updating the /data/cloudstack.yaml in http://github.com/apache/cloudstack-www and then building the website (build.sh).
Also, API docs need to be updated if this is a new release (i.e. not maintenance release) - this is done by adding the generated API docs to the https://github.com/apache/cloudstack-www/tree/mastermain/source/api/ folder. (i.e. apidocs are generating as part of "mvn -Pdeveloper -Dnoredist clean install -pl :cloud-apidoc" when running this script - and will be located in the "tools/apidoc/" folder)
...