Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Follow the steps 11-19 from Major release procedure. If required, it can include steps 3-9 for running RAT, verifying licenses and building alpha (with difference of checking out sources from svn branch).
This document summarizes the steps of release procedure for Qpid Java Components
The Qpid release process is based on [Publishing of Maven Documents|http://www.apache.org/dev/publishing-maven-artifacts.html]
The purspose of this document is to describe the release procedure for Qpid Java Components.
Pre-Requirements:
The release manager should be familiar with [Apache Release Policy|http://www.apache.org/dev/release.html]
and [Release Signing|http://www.apache.org/dev/release-signing.html] and have installed GNU Privacy Guard from [OpenPGP|]
and have generated and signed PGP keys. Please, refer [Release Signing|http://www.apache.org/dev/release-signing.html]
about PGP public key cryptography. The document contains basic information about release signing and contains link to various resources about
PGP public key cryptography and how to use GNU Privacy Guard to generate and sign the PGP key.
Briefly,
1) install [GNU Privacy Guard|http://www.gnupg.org]
  for readhat based system (Fedora, Centos OS, Red Hat Enterprise Linux) simply use yum to install gpg:
{noformat}
sudo yum install gnupg
{noformat}
2) generate your master key and sub-key following steps provided [here|http://www.apache.org/dev/openpgp.html#generate-key]
3) sign the keys
Maven
The Qpid Java Components requires 3.x version of Maven.
Add Apache maven repo into maven settings.xml as required in [Publishing of Maven Documents|http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env]
Please, node that repoository id (server id) in setting xml should be <b>apache.releases.https</b>.
Using different id would result in failures to publish release artefacts into stagin maven repo.
Java
JDK 1.7 is required
SVN
Latest SVN client should be installed
Major release procedure
1. Checkout Qpid sources from [trunk|https://svn.apache.org/repos/asf/qpid/java/trunk] using svn client. Alternatively, git and git-svn can be used.
{noformat}
svn co https://svn.apache.org/repos/asf/qpid/java/trunk qpid-java
cd ./qpid-java
{noformat}
2. Check that you can build using profile <b>apache-release</b>
{noformat}
mvn clean install -Papache-release -DskipTests
{noformat}
The build should finish successfully. The gpg plugin will prompt for the key for signing of the build artefacts.
3. Run RAT tool to verify that all source files have license header
{noformat}
mvn  apache-rat:check
{noformat}
Add licesnses to the files which do not have licesnce headers or update RAT excludes if required.
4. Verify third party licenses
{noformat}
mvn -Pdependency-check prepare-package
{noformat}
5. Build alpha
Alpha does not requires branching. Thus, it can be built using maven versions plugin to change version and revert it back after build and deploy, for example
{noformat}
mvn versions:set -DnewVersion=6.0.0-alpha ; mvn clean install deploy -Papache-release ; mvn versions:revert
{noformat}
6. The build is deployed into staging repo, which needs to be closed in order to be publically available.
Login into [Apache Nexus UI|https://repository.apache.org/#stagingRepositories], select the repo under "Staging Repositoty" and click Close button to close staging repository for any publishing of artefacts.
After closing, a permanent link to the staging repository will be available.
7. Send and email into "users@qpid.apache.org" about alpha availability with a link to the staging repository
8. When beta is ready to be created and publish, delete the staging repo  by login into [Apache Nexus UI|https://repository.apache.org/#stagingRepositories] and selecting the repository and clicking "Drop" button.
10. Check JIRA system for any unresolved JIRAs for the release and notify authors about the release
11. Cut the branch using release:branch. Please, refer [maven release plugin documentation|http://maven.apache.org/maven-release/maven-release-plugin/examples/branch.html] for more details
{noformat}
mvn release:branch -DbranchName=6.0.x -DupdateBranchVersions=true -DupdateWorkingCopyVersions=true
{noformat}
12. Checkout branch sources, for example
{noformat}
svn co https://svn.apache.org/repos/asf/qpid/java/branches/6.0.x
cd 6.0.x
{noformat}
13. Cut the tag and buld the release build using maven:prepare
{noformat}
mvn release:clean
mvn release:prepare -Papache-release,qpid-bdb.0-9
{nofromat}
Preparing the release will create the new tag in SVN, automatically checking in on your behalf.
14. Stage the release for voting
{noformat}
mvn release:perform  -Papache-release,qpid-bdb.0-9
{noformat}
15. The build is deployed into staging repo, which needs to be closed in order to be publically available.
Login into [Apache Nexus UI|https://repository.apache.org/#stagingRepositories], select the repo under "Staging Repositoty" and click Close button to close staging repository for any publishing of artefacts.
After closing, a permanent link to the staging repository will be available.
16. Send and email into "users@qpid.apache.org" about RC availability with a link to the staging repository
17. If RC is OK and voting passes, promote the artefacts from staging repo into the world by pressing Release button in [Apache Nexus UI|https://repository.apache.org/#stagingRepositories].
Otherwise, drop staging repository and repeate steps 13-17 untill voting passes.
18. Update qpid web site Qpid Java Component pages and publish new release documentation.
19. Mark release as released in JIRA and close any unclosed JIRAs if required
20. Wait for 24 hours and send the release notification email into "users@qpid.apache.org"
Minor release procedure
Follow the steps 12-20 from Major release procedure. If required, it can include steps 3-8 for running RAT, verifying licenses and building alpha (with difference of checking out sources from svn branch)