Differences between revisions 6 and 7
Revision 6 as of 2013-10-26 22:43:01
Size: 4103
Comment: Note the order of announcements and updating the KEYS file.
Revision 7 as of 2013-10-26 23:10:36
Size: 4878
Comment: Add several trivial checks before tagging. Add "java.7.home" line to build.properties example
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:

== 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.
Line 39: Line 45:

# 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

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)

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=

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

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://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"

ReleaseProcess (last edited 2014-07-27 13:51:51 by VioletaGeorgieva)