		How to do a mod_jk 1.2 release

If you haven't already, add your public PGP key to
jakarta-tomcat-connectors/KEYS.

Check out a clean copy of jakarta-tomcat-connectors from CVS to
make sure you don't have any lingering configure or build files.
This will make sure that the source distribution created is clean.

Update version numbers as needed
--------------------------------

Do a find for all the docs which include the previous version string
and replace it with the new version.  These are the docs I found which
had to be updated:

xdocs/jk/aphowto.xml
xdocs/jk/quickhowto.xml
xdocs/jk/workershowto.xml

Update the version in jk/native/configure.in.

Update the version in jk/native/common/jk_version.h, here is
a cvs diff that shows what I changed:

Index: native/common/jk_version.h
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_version.h,v
retrieving revision 1.9
diff -c -w -r1.9 jk_version.h
*** native/common/jk_version.h  17 Dec 2002 10:36:16 -0000      1.9
--- native/common/jk_version.h  26 Apr 2003 18:05:27 -0000
***************
*** 67,80 ****
  /************** START OF AREA TO MODIFY BEFORE RELEASING *************/
  #define JK_VERMAJOR     1
  #define JK_VERMINOR     2
! #define JK_VERFIX       2
  #define JK_VERSTRING    "1.2.5"
  
  /* Beta number */
  #define JK_VERBETA      0
  #define JK_BETASTRING   "1"
  /* set JK_VERISRELEASE to 1 when release (do not forget to commit!) */
! #define JK_VERISRELEASE 0
  /************** END OF AREA TO MODIFY BEFORE RELEASING *************/
  
  #define PACKAGE "mod_jk/"
--- 67,80 ----
  /************** START OF AREA TO MODIFY BEFORE RELEASING *************/
  #define JK_VERMAJOR     1
  #define JK_VERMINOR     2
! #define JK_VERFIX       3
  #define JK_VERSTRING    "1.2.5"
  
  /* Beta number */
  #define JK_VERBETA      0
  #define JK_BETASTRING   "1"
  /* set JK_VERISRELEASE to 1 when release (do not forget to commit!) */
! #define JK_VERISRELEASE 1
  /************** END OF AREA TO MODIFY BEFORE RELEASING *************/
  
  #define PACKAGE "mod_jk/"

After updating revision numbers, commit your changes to CVS.

Tag and branch jk in CVS
------------------------

Change directory (cd) to jakarta-tomcat-connectors/jk
Use the pattern below for branching and tagging the jk directory.

cvs tag -b JK_{MAJOR_REVISION}_{MINOR_REVISION}_{RELEASE}

Here is an example for mod_jk 1.2.5

cvs tag -b JK_1.2.5

Build the mod_jk 1.2 documentation
----------------------------------

cd jakarta-tomcat-connectors/jk
ant docs

Create the new source distribution
----------------------------------

Create the directory
jakarta-tomcat-connectors-jk-{MAJOR_REVISION}-{MINOR_REVISION}-{RELEASE}-src

For this example mkdir jakarta-tomcat-connectors-jk-1.2.5-src

Copy the files KEYS and LICENSE from jakarta-tomcat-conectors to
the source distribution directory.

cp jakarta-tomcat-connectors/KEYS jakarta-tomcat-connectors-jk-1.2.5-src
cp jakarta-tomcat-connectors/LICENSE jakarta-tomcat-connectors-jk-1.2.5-src

Copy the directory jakarta-tomcat-connectors/scandoc to the source
distribution directory.

cp -pr jakarta-tomcat-connectors/scandoc jakarta-tomcat-connectors-jk-1.2.5-src

Copy the directory jakarta-tomcat-connectors/common to the source
distribution directory.

cp -pr jakarta-tomcat-connectors/common jakarta-tomcat-connectors-jk-1.2.5-src

Make the jk directory in the source distribution.

mkdir jakarta-tomcat-connectors-jk-1.2.5-src/jk

Copy the file BUILD.txt from jakarta-tomcat-conectors/jk to 
the source distribution jk directory.

cp -p jakarta-tomcat-connectors/jk/BUILD.txt jakarta-tomcat-connectors-jk-1.2.5-src/README.txt

Copy the directory jakarta-tomcat-connectors/build/docs to the source
distribution directory.

cp -pr jakarta-tomcat-connectors/jk/build/docs jakarta-tomcat-connectors-jk-1.2.5-src/jk

Copy the directory jakarta-tomcat-connectors/tools to the source
distribution directory.

cp -pr jakarta-tomcat-connectors/jk/tools jakarta-tomcat-connectors-jk-1.2.5-src/jk

Make the jk conf directory in the source distribution.

mkdir jakarta-tomcat-connectors-jk-1.2.5-src/jk/conf

Copy the worker.properties file to the jk/conf directory.

cp -p jakarta-tomcat-connectors/jk/conf/worker.properties jakarta-tomcat-connectors-jk-1.2.5-src/jk/conf

Copy the directory jakarta-tomcat-connectors/support to the source
distribution directory.

cp -pr jakarta-tomcat-connectors/jk/support jakarta-tomcat-connectors-jk-1.2.5-src/jk

Copy the directory jakarta-tomcat-connectors/native to the source
distribution directory.

cp -pr jakarta-tomcat-connectors/jk/native jakarta-tomcat-connectors-jk-1.2.5-src/jk

Remove all the CVS directories from the new source distribution.

find jakarta-tomcat-connectors-jk-1.2.5-src -type d -name CVS | xargs rm -rf

Create a tar gzip'd archive

tar zcf jakarta-tomcat-connectors-jk-1.2.5-src.tar.gz jakarta-tomcat-connectors-jk-1.2.5-src

Sign the release using PGP. Here is an example using gpg:

gpg -abs -o jakarta-tomcat-connectors-jk-1.2.5-src.tar.gz.asc jakarta-tomcat-connectors-jk-1.2.5-src.tar.gz

Upload source distribution and documentation to www.apache.org
-------------------------------------------------------------------
ssh to www.apache.org and create the release directory.

mkdir /www/www.apache.org/dist/jakarta/tomcat-connectors/jk/v1.2.5

scp jakarta-tomcat-connectors/KEYS to the
/www/www.apache.org/dist/jakarta/tomcat-connectors
directory on thewww.apache.org server.

Copy a previous release directory README.html file to the new release
directory and edit as necessary.

Make the following directories in the release directory.

mkdir bin doc rpms src

Make the following directories in the bin directory.

mkdir aix freebsd iseries linus macosx netware solaris6 solaris7 solaris8 win32

scp jakarta-tomcat-connectors/jk/build/docs to the release doc directory.

scp ~/jakarta-tomcat-connectors-jk-1.2.5-src.tar.gz* to the release src
directory.

scp -r jakarta-tomcat-connectors/jk/build/docs/* www.apache.org:/www/www.apache.org/dist/jakarta/tomcat-connectors/jk/v1.2.5/doc

Make sure the group write bit is set on all files and directories
in the new release directory.

chmod -R g+w /www/www.apache.org/dist/jakarta/tomcat-connectors/jk/v1.2.5

Build binaries and upload distributions to www.apache.org
--------------------------------------------------------------

Build mod_jk for a specific web server and OS.  Package it as appropriate for

the OS and sign the archive using PGP. Please include the ASF License, the
generated docs, and the tools.

scp the binary distribution and pgp signature file to the appropriate bin/{os} directory.
Create or modify that bin/{os} directory README.html file for the binary release.
You can find previous README.html files as a template in earlier releases.

Make sure the group write bit is on for all files you upload.

Update source for next version
------------------------------

Reset JK_VERISRELEASE to 0 and update JK_VERSTRING, JK_VERMAJOR,
JK_VERMINOR, and JK_VERFIX as needed.  Commit your changes to CVS.

Move old release distributions to archive.apache.org
----------------------------------------------------

Move any old mod_jk distribution directories to the
/www/archive.apache.org/dist/jakarta/tomcat-connectors/jk/
directory on the archive.apache.org server.

Announcements
-------------

The release distribution directories are mirrored so that the
releases can be downloaded from multiple sites.  Please wait
24 hours before sending out the announcement so that the mirrors
get a chance to get the new release distributions.

Send an email announcement to announcements@jakarta.apache.org,
tomcat-user@jakarta.apache.org, tomcat-dev@jakarta.apache.org,
and announce@apache.org.

