Releasing Maven

Maven differs slightly in its release process due to several extra steps.

Produce Release Candidates

For non-alpha/beta releases, release candidates are produced before the actual release.

Copy the binaries and src-tar.gz with their md5/asc to http://people.apache.org/builds/maven/$VERSION.

To produce a release candidate, follow the first seven steps only from the following procedure:

The version used should be the eventual version with -RC1, -RC2, etc. appended.

After producing the RC, request that the developers test the release on the list. If a regression is found, a new release candidate is rolled.

After a reasonable time without regressions found, a wider audience may be polled if the release manager desires (for example, users@).

Once happy with a release candidate, the full release is performed, with the final version in place.

Produce the Release

To produce a final release, the same process as for standard projects is followed:

Below describes the additional steps that need to be taken at the points where the website are updated in those instructions.

Update the DOAP Information

Edit https://svn.apache.org/repos/asf/maven/maven-3/trunk/doap_Maven.rdf to list the new release.

Update the Release Notes and Web Site

Checkout https://svn.apache.org/repos/asf/maven/site/trunk.

Note that release notes can be created and checked in, but other changes should not be checked in as it can be deployed 'live' at any time.

  • For 2.0.x: update the versions2x, current20xVersion and current20xReleaseDate properties in pom.xml
  • For 2.2.x: update the versions2x, current22xVersion and current22xReleaseDate properties in pom.xml
  • For 3.x: update the versions3x, currentStableVersion and currentStableReleaseDate properties in pom.xml

Next, create the release notes:

  • create docs/$version
  • populate docs/$version/release-notes.txt from JIRA
  • create docs/$version/release-notes.apt.vm (see other versions for an example)

Only deploy the site once the release is present on the mirrors, and the reference documentation has been deployed to /ref/.

Stage the Latest Documentation

Once the release is prepared, but before the release vote, the site needs to be staged.

  1. From the site checkout, stage the site (replacing $USER and $VERSION):
    mvn -Preporting site site:stage-deploy -DstagingSiteURL=scp://people.apache.org/home/$USER/public_html/staged-sites/maven-$VERSION

    Note: It requires Maven 2.1.0 or higher to successfully deploy to people.apache.org via SSH. Older Maven versions will fail due to com.jcraft.jsch.JSchException: Algorithm negotiation fail.

    http://people.apache.org/~USER/staged-sites/maven-VERSION

    Some developers have reported problems with the site:stage-deploy goal. In that case, you can stage the site locally and upload it manually:

    mvn -Preporting site site:stage
    scp -r target/staging/people.apache.org/home/$USER/public_html/staged-sites/maven-$VERSION USER@people.apache.org:/home/$USER/public_html/staged-sites/maven-$VERSION

Add New Version to ASF Distribution Directory

In addition to promoting the repository, the release archives should be copied to the following locations:

  • people.apache.org:/www/www.apache.org/dist/maven/binaries - apache-maven-$VERSION-bin.tar.gz, apache-maven-$VERSION-bin.zip, corresponding checksums (md5 and sha1) and signatures (asc)
  • people.apache.org:/www/www.apache.org/dist/maven/source - apache-maven-$VERSION-src.tar.gz, apache-maven-$VERSION-src.zip, corresponding checksums (md5 and sha1) and signatures (asc)

The files may need to be renamed from those given in the repository.

Deploy the Current References

The source code references and API docs need to be deployed before deploying the web site with the new version.

This is described in Deploying the Current References.

Deploying the Release Website

Once both of the above have synced to the main site and a suitable number of mirrors, proceed to update the web site and produce the announcement.

Commit your changes and then deploy the main Maven site checked out earlier.

mvn -Preporting clean site-deploy

Remove Old Versions from ASF Distribution Directory

Next, any superceded releases should be removed from the above locations (after confirming that they exist in /www/archive.apache.org/dist/maven).

Proceed with Announcement

You can now proceed with the steps outlined after deploying the website on Maven Project Common Release Procedure

Note: For Maven core releases, the announcement is additionally sent to announce@apache.org. This is best done as a separate message to avoid cross-posting replies.