Follow the instructions below when carrying out a Apache Stratos release:
Email the dev list to let them know that the release process is beginning.
Complete JIRA issues reported for this release version.
Update Notice and License files. For more information, see Licensing.
Update the license text in the source files and scripts.
Verify the source for the required license headers using Apache Rat tool:
mvn -P pedantic verify -Dmaven.test.skip=true
Update the README files, Puppet scripts, installer, and any other non-Maven managed files that contain a SNAPSHOT version with the release version. Once completed, commit and push the changes to the remote repository. The Maven release plugin does not update these files during the release build. As a result, when the tag is created by the release plugin, these files may have SNAPSHOT versions.
Important
pom.xml
files will be automatically changed to the release version by the Maven release plugin once the mvn release:perform
command is executed in step 12.settings.xml
file and place it in the ~/.m2/
folder:Add your Apache username, Apache password, GPG key name, and GPG pass-phrase:
<settings> <servers> <!-- Snapshots repository --> <server> <id>apache.snapshots.https</id> <username></username> <password></password> </server> <!-- Staging repository --> <server> <id>apache.releases.https</id> <username></username> <password></password> </server> </servers> <profiles> <profile> <id>apache-release</id> <properties> <gpg.keyname></gpg.keyname> <gpg.useagent>true</gpg.useagent> <gpg.passphrase></gpg.passphrase> </properties> </profile> </profiles> <activeProfiles> <activeProfile>apache-release</activeProfile> </activeProfiles> </settings>
mvn deploy
Execute the following command to prepare the Maven artifacts for the release. The given release tag will be created as the last step.
mvn release:clean release:prepare -DreleaseVersion=<release-version> -Dtag=<release-tag> -DdevelopmentVersion=<development-version> -DpushChanges=false;
Execute the following command to publish Maven artifacts to the staging repository.
mvn clean release:perform -DconnectionUrl=scm:git:file://`pwd`/.git -Dtag=<release-tag> -Darguments="-DskipTests";
Close the Nexus staging repository.
Push the release commits and RC tags to the remote repos.
Generate the source release by executing the following command in the root source folder:
git archive --format zip --output apache-stratos-<version>-source-release.zip
<version>
For example:
git archive --format zip --output apache-stratos-4.0.0-source-release.zip 4.0.0
The source package generated by Maven release plugin contains the .git
folder. Therefore, we need to create the source package using the above git
command.
Sign all the release artifacts by executing the following script:
#!/bin/sh rm *.asc rm *.md5 rm *.sha1 rm KEYS for f0 in *.zip do echo $f0 asc=".asc" md5=".md5" sha1=".sha1" f1=$f0$asc gpg --armor --output $f1 --detach-sig $f0 f2=$f0$md5 md5sum $f0 > $f2 f3=$f0$sha1 sha1sum $f0 > $f3 done gpg --armor --export $1 > KEYS
Download the signed binary packages from Apache staging repository using the following commands:
repo_id= #staging repository id, ex: orgapachestratos-1004 wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/load/balancer/apache-stratos-load-balancer/<version>/apache-stratos-load-balancer-<version>.zip wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/load/balancer/apache-stratos-load-balancer/<version>/apache-stratos-load-balancer-<version>.zip.asc wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos-cartridge-agent/<version>/apache-stratos-cartridge-agent-<version>-bin.zip wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos-cartridge-agent/<version>/apache-stratos-cartridge-agent-<version>-bin.zip.asc wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos-cli/<version>/apache-stratos-cli-<version>.zip wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos-cli/<version>/apache-stratos-cli-<version>.zip.asc wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos-haproxy-extension/<version>/apache-stratos-haproxy-extension-<version>-bin.zip wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos-haproxy-extension/<version>/apache-stratos-haproxy-extension-<version>-bin.zip.asc wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos/<version>/apache-stratos-<version>.zip wget https://repository.apache.org/service/local/repositories/${repo_id}/content/org/apache/stratos/apache-stratos/<version>/apache-stratos-<version>.zip.asc
Check in the source release, binary files, and their signatures to Apache dist:
https://dist.apache.org/repos/dist/dev/stratos/releases/<release-candidate>
Send a release discussion email to the dev list. A sample email format is shown below:
[Discuss] Release Apache Stratos <version> Hi All, This thread is for discussion of the first release candidate for Apache Stratos <version>. Please use this thread for discussion of issues uncovered in the RC, questions you may have about the RC, etc. The RC release packs could be found here [1]. A git tag (<version>) [2] has been created for this release and its tree view could be seen here [3]. [1] https://dist.apache.org/repos/dist/dev/stratos/releases/<version>/ [2] https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=tag;h=cd5f427d4c77380ae24c85971c3d7a1a1c4497b3 [3] https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=tree;h=refs/tags/<version>;hb=refs/tags/<version> Thanks
Send a release voting email to the dev list. A sample email format is shown below:
[Vote] Release Apache Stratos <version> Hi All, This is the first release candidate of Apache Stratos <version>. This is a PPMC vote - if this passes, we'll move it onward to an IPMC vote. Please use the [DISCUSS] thread for anything but votes. This release fixes the following issues: https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12326291&styleName=Html&projectId=12314521 *** Please download, test and vote. The vote runs for 72 hours, until Sunday, April 27, 2014, 11:00:00 AM PST, Sunday, April 27, 2014, 11:30:00 PM IST. Note that we are voting upon the source (tag), binaries are provided for convenience. Binary files: https://dist.apache.org/repos/dist/dev/incubator/stratos/releases/<version>/ Maven staging repo: https://repository.apache.org/content/repositories/orgapachestratos-1004/ The tag to be voted upon: https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=tag;h=cd5f427d4c77380ae24c85971c3d7a1a1c4497b3 Tree view of the tag: https://git-wip-us.apache.org/repos/asf?p=incubator-stratos.git;a=tree;h=refs/tags/<version>;hb=refs/tags/<version> Stratos KEYS file containing PGP keys we use to sign the release: https://dist.apache.org/repos/dist/dev/incubator/stratos/releases/<version>/KEYS Testing procedure: https://cwiki.apache.org/confluence/display/STRATOS/<version>+Testing+Procedure [ ] +1 [ ] 0 [ ] -1 (explain why) Thanks
For more information, go to Release Management.