<div class="wiki-content maincontent"><p>How to create and announce an ActiveMQ release. This release is based on <a shape="rect" href="http://maven.apache.org/developers/release/apache-release.html">General guide for releasing Maven-based project at Apache </a>, so be sure to check it out before continuing and meet all prerequisites.</p><h2>Maven 2 Setup</h2><p>Before you deploy anything to the maven repository using Maven 2, you should configure your ~/.m2/settings.xml file<br clear="none"> 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.</p><structured-macro ac:macro-id="75ba3cea-b7a5-49f8-bea6-cef8c4e09a40" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;settings&gt;
  ...
  &lt;servers&gt;

    &lt;server&gt;
      &lt;id&gt;apache.snapshots.https&lt;/id&gt;
      &lt;username&gt;dejanb&lt;/username&gt;
    &lt;/server&gt;
    &lt;!-- To publish a website of some part of Maven --&gt;
    &lt;server&gt;
      &lt;id&gt;apache.website&lt;/id&gt;
      &lt;username&gt;dejanb&lt;/username&gt;
      &lt;filePermissions&gt;664&lt;/filePermissions&gt;
      &lt;directoryPermissions&gt;775&lt;/directoryPermissions&gt;
    &lt;/server&gt;
    &lt;!-- To stage a release of some part of Maven --&gt;
    &lt;server&gt;
      &lt;id&gt;apache.releases.https&lt;/id&gt;
      &lt;username&gt;dejanb&lt;/username&gt;
    &lt;/server&gt;
    &lt;!-- To stage a website of some part of Maven --&gt;
    &lt;server&gt;
      &lt;id&gt;stagingSite&lt;/id&gt; &lt;!-- must match hard-coded repository identifier in site:stage-deploy --&gt;
      &lt;username&gt;dejanb&lt;/username&gt;
      &lt;filePermissions&gt;664&lt;/filePermissions&gt;
      &lt;directoryPermissions&gt;775&lt;/directoryPermissions&gt;
    &lt;/server&gt;

  &lt;/servers&gt;
  ...
&lt;/settings&gt;
</plain-text-body></structured-macro><p>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</p><structured-macro ac:macro-id="991c1010-e00b-4ee9-9a7d-f7a1b2a797ea" ac:name="code" ac:schema-version="1"><plain-text-body>umask 2
</plain-text-body></structured-macro><p>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.</p><h3>Additional local configuration for using release and staging plugins.</h3><p>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:</p><structured-macro ac:macro-id="e4d0820a-d791-42cc-8d68-74e6521b5133" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;settings&gt;
    &lt;profiles&gt;
        &lt;profile&gt;
          &lt;id&gt;apache-release&lt;/id&gt;
          &lt;properties&gt;
             &lt;gpg.passphrase&gt;secretPhrase&lt;/gpg.passphrase&gt;
         &lt;/properties&gt;
        &lt;/profile&gt;
    &lt;/profiles&gt;
 ...
&lt;/settings&gt;
</plain-text-body></structured-macro><h2>Creating the ActiveMQ Release</h2><p>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.</p><ol><li><p>Verify the to-be-released version identifier exists in the <a shape="rect" href="https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob;f=activemq-spring/src/main/resources/META-INF/spring.schemas;hb=HEAD">META-INF/spring.schemas</a> mappings file AND&#160;<a shape="rect" href="https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob;f=activemq-osgi/src/main/resources/META-INF/spring.schemas;hb=HEAD">activemq-osgi/src/main/resources/META-INF/spring.schemas</a> file, if not add it and commit. It should contain:</p><structured-macro ac:macro-id="be57ba07-af94-4309-9fc3-17bb1b703d8f" ac:name="code" ac:schema-version="1"><plain-text-body>http\://activemq.apache.org/schema/core/activemq-core-${pom.version}.xsd=activemq.xsd</plain-text-body></structured-macro></li><li><p>Verify headers with <a shape="rect" href="http://incubator.apache.org/rat/apache-rat-plugin/usage.html">rat</a></p><structured-macro ac:macro-id="728bb745-de7e-4f0d-a9eb-d032af3bc637" ac:name="code" ac:schema-version="1"><plain-text-body>mvn -e apache-rat:check
grep -e ' !?????' target/rat.txt -- will show any files without licenses
</plain-text-body></structured-macro></li><li><p>Do a release dry run to check for problems</p><structured-macro ac:macro-id="6072536c-6c96-4842-8e2e-a98143781f0a" ac:name="code" ac:schema-version="1"><plain-text-body>mvn release:prepare -DdryRun=true
</plain-text-body></structured-macro><p>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:</p><structured-macro ac:macro-id="7ef5650e-abc3-4cdb-854d-12b89cb3dc62" ac:name="code" ac:schema-version="1"><plain-text-body>mvn release:clean
</plain-text-body></structured-macro></li><li><p>Prepare the release</p><structured-macro ac:macro-id="191d99fb-01a4-4e3b-b11a-fc5ab026076b" ac:name="code" ac:schema-version="1"><plain-text-body>mvn release:prepare
</plain-text-body></structured-macro><p>This will create the tag in git and leave various stuff around locally to direct the perform phase.</p></li><li><p>Make a local copy of the release configuration in case something goes wrong</p><structured-macro ac:macro-id="2f26725a-56e0-46d6-9005-e83477b647f1" ac:name="code" ac:schema-version="1"><plain-text-body>cd ..
cp -r activemq-release activemq-release-prepared
cd activemq-release
</plain-text-body></structured-macro></li><li><p>Perform the release to the staging repo</p><structured-macro ac:macro-id="b9c25523-2ece-4d52-9777-b1f0c9d73a47" ac:name="code" ac:schema-version="1"><plain-text-body>mvn release:perform
</plain-text-body></structured-macro><p>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<br clear="none"> put stuff and how to sign it.</p></li><li>Close the staging repository<br clear="none"> Quote from the <a shape="rect" href="http://maven.apache.org/developers/release/apache-release.html">Maven release guide for Apache projects</a><blockquote><p>Login to <a shape="rect" class="external-link" href="https://repository.apache.org">https://repository.apache.org</a> 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.</p></blockquote>See the image in the original guide for more info.</li><li>Verify staged artifacts<br clear="none"> Quote from the <a shape="rect" href="http://maven.apache.org/developers/release/apache-release.html">original guide</a><blockquote><p>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.<br clear="none"> Note the repository URL, you will need this in your vote email.</p></blockquote></li><li><p>Build the site from the tag that release:perform checked out into target/checkout in the previous step.<br clear="none"> Note that the -Prelease profile is needed to specify the profile in settings.xml that configures the staging location.</p><structured-macro ac:macro-id="53884a8b-109c-48fb-8e96-2af9ba34b936" ac:name="code" ac:schema-version="1"><plain-text-body>cd target/checkout
mvn site -Prelease</plain-text-body></structured-macro></li><li><p>Populate the Javadocs site in svn</p><structured-macro ac:macro-id="13bdb923-a453-4573-9ec3-e286b237df6c" ac:name="noformat" ac:schema-version="1"><plain-text-body>svn co https://svn.apache.org/repos/infra/websites/production/activemq/content
cd content/maven
mkdir &lt;version&gt;
#copy over apidocs folder that was created by the site plugin to &lt;version&gt;/apidocs
svn add &lt;version&gt;
svn rm apidocs
ln -s &lt;version&gt;/apidocs apidocs
svn add apidocs
# and commit once it looks good.</plain-text-body></structured-macro></li><li><p>Stage the official release artifacts in the SVN dist dev area for folks to test and vote on, using the helper script already in the repo:</p><structured-macro ac:macro-id="e82dca02-badd-4c46-842c-881423fdf5f6" ac:name="noformat" ac:schema-version="1"><plain-text-body>svn co https://dist.apache.org/repos/dist/dev/activemq/activemq/
cd activemq
./prepare-release.sh &lt;nexus-staging-repo-url&gt; &lt;version&gt;
# Example: ./prepare-release.sh https://repository.apache.org/content/repositories/orgapacheactivemq-1149 5.15.1
svn add &lt;version&gt;
and commit once it looks good.</plain-text-body></structured-macro></li><li>Call a vote on the dev list, listing the great new features of the release.</li></ol><h2>After the vote passes</h2><ol><li>Promote the release (i.e. release the staging repository): login to<span style="color: rgb(112,112,112);">&#160;</span><a shape="rect" class="external-link" href="https://repository.apache.org/">https://repository.apache.org</a>, navigate to the staging repository&#160;and click the "release" button.&#160;</li><li><p>Copy the staged release files from the SVN dist dev folder to the SVN dist release folder: <a shape="rect" href="https://dist.apache.org/repos/dist/release/activemq/">https://dist.apache.org/repos/dist/release/activemq/</a></p><structured-macro ac:macro-id="584ae20f-3171-4882-86e9-6cfd55889764" ac:name="noformat" ac:schema-version="1"><plain-text-body>svn cp -m "add files for activemq-&lt;version&gt;" https://dist.apache.org/repos/dist/dev/activemq/activemq/&lt;version&gt; https://dist.apache.org/repos/dist/release/activemq/&lt;version&gt;
# Example: svn cp -m "add files for activemq-5.15.1" https://dist.apache.org/repos/dist/dev/activemq/activemq/5.15.1 https://dist.apache.org/repos/dist/release/activemq/5.15.1</plain-text-body></structured-macro></li><li><p>Populate the schema site in svn</p><structured-macro ac:macro-id="2747fd28-e8ca-4029-9e68-e27f4826c66a" ac:name="noformat" ac:schema-version="1"><plain-text-body>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/&lt;version&gt;/activemq-spring-&lt;version&gt;{-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
svn add activemq-core.xsd
# and commit once it looks good.
</plain-text-body></structured-macro></li><li>Continue with the Announcing section below</li><li>Created a in progress wiki page for the next release</li><li>Remove any releases from the dist site that are no longer supported and update the wiki page for that release to point to the archives for downloads.</li></ol><h2>Announcing the ActiveMQ Release</h2><ol><li>Perform a release in JIRA and create a new release version in JIRA.<ol><li>Move unresolved issues to the next release first, in a bulk (do not send email) update</li><li>You might also want to search for resolved/closed issues with no fix version just in case</li></ol></li><li>Create a download page for the release in the WIKI similar like the <link><page ri:content-title="ActiveMQ 5.3.0 Release"></page></link>; also update the main <link><page ri:content-title="Download"></page></link> page as appropriate</li><li>Update the <link><page ri:content-title="Xml Reference"></page></link> page with a link to the HTML and XSD</li><li>Update latest release link on home page</li><li>Change the links for the prior release to reference the archive (at&#160;<a shape="rect" href="http://archive.apache.org/dist/activemq/">http://archive.apache.org/dist/activemq/</a>); otherwise, users will not be able to locate the older release for download</li><li>Update <link><page ri:content-title="QuickLinks"></page></link> and <link><page ri:content-title="JavaDocs"></page></link> pages</li><li>Mail the <a shape="rect" href="mailto:dev@activemq.codehaus.org">dev</a> &amp; <a shape="rect" href="mailto:user@activemq.codehaus.org">user</a> lists</li><li><a shape="rect" href="http://cwiki.apache.org/confluence/pages/viewrecentblogposts.action?key=ACTIVEMQ">Post</a> a news entry on the WIKI</li><li>tweet</li><li>Have a beer! <emoticon ac:name="smile"></emoticon></li></ol></div>

