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

Compare with Current View Page History

« Previous Version 17 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.

Pre-requisites

  • 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 build.properties 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 build.properties file with the following configuration (adjust paths for your environment)
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
  • 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://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

  • No labels