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

Compare with Current View Page History

« Previous Version 7 Next »

Apache Tomcat Release Process

Introduction

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.

Pre-requisites

  • 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)

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.

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

execute.validate=true

execute.test.bio=true
execute.test.nio=true
execute.test.apr=true

test.haltonfailure=true

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

base.path=C:/temp/libs
  • ant release

Notes:

  • 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

  • Update the release date in the changelog to "not released"
  • No labels