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.

Pre-requisites

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.

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

Build the release

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

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

# 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

Notes:

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://github.com/apache/tomcat/blob/7.0.x/res/maven/README.txt steps 1 to 3 (not step 4!)

Call a vote

If the vote passes

If the vote does not pass