First Things First

Get your own PGP or GPG key (see http://wiki.apache.org/incubator/SigningReleases).

Update the iBATIS KEYS file found in /www/www.apache.org/dist/ibatis/ with your key.

iBATIS Release Process

BETA Quality Release

Announce an intent to release (a release plan) on dev@.

By convention, try to give the community at least 24 hours to review the plan (lazy consensus).

Update doc/release.txt and build/version.properties

TAG the SVN Repository at the trunk level with the release number – See current tags for examples http://svn.apache.org/repos/asf/ibatis/tags/

If needed, update the directory structure in /www/www.apache.org/dist/ibatis/

Sign the distribution to create a detached signature file (.asc)

Place the BETA distribution, signature file, and MD5 sum in:

/www/www.apache.org/dist/ibatis/

Yes, this is the same directory as GA. In our history we have never rolled back a release, nor do we aggressively release betas unless we intend to release them to GA. Any pre-beta/alpha is expected to be grabbed from SVN directly. Thus, we put betas directly in the GA repository (allowed as per http://apache.org/dev/release.html).

Make sure the KEYS file is up to date.

Check the upload with the signature and MD5 sum.

Change iBATIS web site download links to point to new BETA

Wait at least 24 hours for mirrors to obtain latest release file(s).

Check mirrors for files.

If needed, contact Vadim about statistics.

Announce BETA on user lists.

GENERAL AVAILABILITY (GA) Quality Release

If a BETA release is pending, give the community a reasonable amount of time to try the release. If feedback positive, call for a VOTE to promote the distribution from BETA to a GA (General Availability) release.

To reach GA status, a release must have a total of three +1 votes by iBATIS PMC members and more positive votes than negative votes. If the votes are not forthcoming, scratch this release plan and start over with a new plan and a new version number.

Relink "current release" links on the website

Announce promotion of the build to GA on user lists.

Note: Just because we say that a release is of GA grade today, does not mean we can't change our minds. If a security issue arose, we could downgrade the quality to BETA.

Java-specific Checklist

Steps

Update release.txt with changes (usually can be copied straight from JIRA roadmap

Update version.properties and build.properties with appropriate MAJOR version numbers (don't modify build number by hand)

Run build.bat, ensure SUCCESSFUL build

Check the exploded directory for proper directory structure

Check the deploy directory for the ZIP file, with proper filename version

Deploying to iBiblio the Apache way

Create a local directory to mirror the people.apache.org maven rsync repo. I just do: mkdir -p ~/apache-m2-repo/org/apache/ibatis

This will retrieve a copy of existing releases in the apache maven repo so that when you run your local deploy it will properly setup the maven-metadata.xml files.

Get the ant build zip distribution from whoever built it and unzip it to a local directory

cd to the src directory in the ibatis distribution where the ibatis-sources.zip file is located and run the following:

Please note

Be sure to replace the <...> content with correct information.

The local-directory is the absolute path to the top level directory you setup in step 1 (ex. /Users/brandongoodin/apache-m2-repo)

Warning

You MUST deploy src first because if you try to deploy it after it will overwrite the ibatis-sqlmap<version>.pom with a java-source packaging. Setting the -DgeneratePom=false will cause a nullpointer exception (yeah maven! :/).