Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Current »

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.


  • A git client installed and on your path
  • Apache Ant installed and on your path (see BUILDING.txt in the root of the code repository 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

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 git clone and switch to the correct branch
  • Edit and change the line version.suffix=-dev to version.suffix=
  • Edit webapps\docs\changelog.xml and remove rtext="in development" from the latest version
  • Commit these changes
    • git commit -a -m "Tag 7.0.94"
    • git tag 7.0.94
    • git push origin 7.0.94
  • Check the diff mailed to the dev list

I found it simplest to keep this clone for tagging to ensure no other edits found their way into the tag.

Build the release

  • mkdir /c/releases/TOMCAT_7_0_94
  • git archive 7.0.94 | tar -x -C /c/releases/TOMCAT_7_0_94/

I'm using Git Bash for the above. Adjust as necessary for you choice of tools.

  • Add a 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

Generate the Maven artifacts

See steps 1 to 3 (not step 4!)

Call a vote

If the vote passes

If the vote does not pass

  • No labels