How to create and announce an ActiveMQ release. This release is based on General guide for releasing Maven-based project at Apache , so be sure to check it out before continuing and meet all prerequisites.

Maven 2 Setup

Before you deploy anything to the maven repository using Maven 2, you should configure your ~/.m2/settings.xml file
so that the file permissions of the deployed artifacts are group writeable. If you do not do this, other developers will not able to overwrite your SNAPSHOT releases with newer versions.

It is also essential that you configure your umask to 2 on people.apache.org for non-interactive login. If your shell is tcsh you can edit .cshrc to include

Other shell initialization files may interfere with this setting but if this is the only umask setting it appears to work. Instructions for other shells would be welcome.

Additional local configuration for using release and staging plugins.

To effectively use the release and staging plugins you need some information about where the staging will happen and signing information for gpg. Your ~/.m2/settings.xml should contain a profile like this:

Creating the ActiveMQ Release

The release plugin will prompt for a release version, tag and next release version. Use a three digit release version of the form: 5.x.x and for the tag use a string of the form: activemq-5.x.x. The next version string should use the two digit from: 5.x-SNAPSHOT as this can be consistent for future SNAPSHOT releases.

  1. Verify the to-be-released version identifier exists in the META-INF/spring.schema mappings file, if not add it and commit. It should contain:
  2. Verify headers with rat
  3. Do a release dry run to check for problems
    Check that you are happy with the results. The poms for the proposed tags will be in pom.xml.tag. When you like the results, clean up:
  4. Prepare the release
    This will create the tag in git and leave various stuff around locally to direct the perform phase.
  5. Make a local copy of the release configuration in case something goes wrong
  6. Perform the release to the staging repo
    This uses both the activemq release profile which directs building source jars, javadoc jars, and signing everything, and also the settings release profile that says where to
    put stuff and how to sign it.
  7. Close the staging repository
    Quote from the Maven release guide for Apache projects

    Login to https://repository.apache.org using your Apache LDAP credentials. Click on "Staging". Then click on "maven" in the list of repositories. In the panel below you should see an open repository that is linked to your username and ip. Right click on this repository and select "Close". This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything. Enter the name and version of the artifact being released in the "Description" field and then click "Close". This will make it easier to identify it later.

    See the image in the original guide for more info.
  8. Verify staged artifacts
    Quote from the original guide

    If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If the you don't like the content of the repository, right click your repository and choose "Drop". You can then rollback your release and repeat the process.
    Note the repository URL, you will need this in your vote email.

  9. Stage the maven generated site
    Note that the -Prelease profile is needed to specify the profile in settings.xml that configures the staging location.
    Build the site from the tag that release:perform checked out into target/checkout in the previous step.
    This will copy to the staging.siteURL set up in your settings.xml release profile.
  10. Call a vote on the dev list, listing the great new features of the release.
  11. After it passes, promote the release
  12. replicate the contents of mvn apache-activemq/<version> directory to the dist website on people.apache.org
    ssh [apacheId]@people.apache.org
    mdir siteUpdate;cd siteUpdate
    curl --remote-name-all https://repository.apache.org/content/repositories/releases/org/apache/activemq/activemq-parent/<version>/activemq-parent-<version>{.pom,-source-release.zip}{.asc,.asc.md5,.asc.sha1,.sha1,.md5,}
    curl --remote-name-all https://repository.apache.org/content/repositories/releases/org/apache/activemq/apache-activemq/<version>/apache-activemq-<version>{.pom,-bin.tar.gz,-bin.zip}{.asc,.asc.md5,.asc.sha1,.sha1,.md5,}
    mkdir /www/www.apache.org/dist/activemq/apache-activemq/<version>
    mv * /www/www.apache.org/dist/activemq/apache-activemq/<version>
    chmod -R g+w /www/www.apache.org/dist/activemq/apache-activemq/<version>
    
  13. Populate the schema site in svn
    svn co https://svn.apache.org/repos/infra/websites/production/activemq/content
    cd content/schema/core
    curl --remote-name-all https://repository.apache.org/content/repositories/releases/org/apache/activemq/activemq-spring/<version>/activemq-spring-<version>{-schema.html,.xsd}{.asc,.asc.md5,.asc.sha1,.sha1,.md5,}
    for i in activemq-spring-5.9.0*; do mv -- "$i" "${i//spring/core}"; done;
    svn add activemq-core-5.9.0*
    svn rm activemq-core.xsd
    ln -s activemq-core-5.9.0.xsd activemq-core.xsd
    and commit once it looks good.
    
  14. Continue with the Announcing section below
  15. Created a in progress wiki page for the next release

Announcing the ActiveMQ Release

  1. Perform a release in JIRA and create a new release version in JIRA.
    1. Move unresolved issues to the next release first, in a bulk (do not send email) update
    2. You might also want to search for resolved/closed issues with no fix version just in case
  2. Create a download page for the release in the WIKI similar like the ActiveMQ 5.3.0 Release
  3. Update the Xml Reference page with a link to the HTML and XSD
  4. Update latest release link on home page
  5. Update QuickLinks and JavaDocs pages
  6. Mail the dev & user lists
  7. Post a news entry on the WIKI
  8. tweet
  9. Have a beer! (smile)
© 2004-2011 The Apache Software Foundation.
Apache ActiveMQ, ActiveMQ, Apache, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram