Differences between revisions 11 and 12
Revision 11 as of 2014-07-27 13:51:51
Size: 5275
Revision 12 as of 2015-07-06 08:54:25
Size: 5393
Deletions are marked like this. Additions are marked like this.
Line 82: Line 82:
 * Add release data (version and date) to reporter.apache.org - https://reporter.apache.org/addrelease.html?tomcat

Apache Tomcat Release Process


This is written primarily for Apache Tomcat release managers although it may also be of interest to anyone looking to validate and/or replicate the release process. This page uses Tomcat 7 as an example but the same process applies to later versions as well. Note that earlier versions have a slightly different, more complex release process.


  • A subversion client installed and on your path
  • Apache Ant installed and on your path (see BUILDING.txt in the root of the svn repo for version requirements)
  • The latest release of the minimum Java version that the Tomcat version runs on installed and on your path
  • Windows OS (you can do it on Linux but it involves a lot more hassle)
  • GnuPG installed
  • A public key that is part of the Apache web of trust
  • A reasonable internet connection (you will need to upload ~100MB)

Preliminary checks

  • Check that the version numbers have been incremented after the previous release, as expected. (e.g. http://svn.apache.org/viewvc?view=revision&revision=1500094)

  • Check that the changelog file mentions your login name as release manager for this release (e.g. "Tomcat 7.0.42 (markt)").
  • Check whether the KEYS file differs from https://dist.apache.org/repos/dist/release/tomcat/tomcat-7/KEYS one. The latter one will be replaced after you do a release. Check that the KEYS file contains your public key.

Create the tag

The aim is to create a copy of the current trunk but without the "-dev" appended to the end of the version number.

  • Perform an svn checkout of tc7.0.x/trunk (e.g. to 7.0.x-release)
  • Edit 7.0.x-release/build.properties and change the line version.suffix=-dev to version.suffix=

  • Remove repository's property "subclipse:tags"
  • svn cp . https://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_XX

  • Check the diff mailed to the dev list

I found it simplest to keep this checkout with the modified build.properties.default and just do an svn up prior to each tag. I only used the checkout for tagging to ensure no other edits found their way into the tag.

Build the release

  • svn export https://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_XX TOMCAT_7_0_XX

  • Add a build.properties file with the following configuration (adjust paths for your environment)




gpg.exec=C:/Program Files (x86)/GNU/GnuPG/gpg2.exe


# Tomcat 7 currently requires both JDK 6 and JDK 7 to build a release
# JAVA_HOME system property used by Ant has to point to JDK 6 and this points to JDK 7
java.7.home=C:/Program Files (x86)/Java/jdk1.7.0_45
  • ant release


  • GPG should be configured to use your Apache code signing key by default
  • I always ensured c:/temp/libs was empty so that the build had to download all the dependencies

Upload the release

Upload the contents of TOMCAT_7_0_XX/output/release to https://dist.apache.org/repos/dist/dev/tomcat/tomcat-7/

Generate the Maven artifacts

See https://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk/res/maven/README.txt steps 1 to 3 (not step 4!)

Call a vote

If the vote passes

If the vote does not pass

ReleaseProcess (last edited 2015-07-06 08:54:25 by VioletaGeorgieva)