#!/bin/sh -pve
# Author: Marc Prud'hommeaux <[EMAIL PROTECTED]>
# Performs the release steps described at:
#
# http://cwiki.apache.org/openjpa/releasing-openjpa.html
#
# It will do the following:
#
# 1. Check out a fresh version of openjpa
# 2. Update the openjpa pom.xml files to have the new version
# 3. Commit the pom.xml changes
# 4. Make the release files
# 5. Verify the signature
# 6. Test the examples in the release
# 7. Perform the deploy
# 8. Tag the view using "svn copy"
# 9. Update the pom.xml versions to be the next version
# 10. Commit the new pom.xml files
BASEDIR=/tmp/openjpa-staging/
RELEASEDIR=${BASEDIR}/openjpa
EXAMPLESDIR=${BASEDIR}/examples
rm -rf ${BASEDIR} || echo Staging directory already deleted
# OLDVERSION=0.9.6-incubating-SNAPSHOT
# RELEASEVERSION=0.9.6-incubating
# NEXTVERSION=0.9.7-incubating-SNAPSHOT
OLDVERSION=${1}
RELEASEVERSION=${2}
NEXTVERSION=${3}
shift;
shift;
shift;
[EMAIL PROTECTED]
# example usage:
# openjpa.mkrelease 0.9.6-incubating-SNAPSHOT 0.9.6-incubating 0.9.7-incubating-SNAPSHOT
# openjpa.mkrelease 0.9.6-incubating-SNAPSHOT 0.9.6-incubating 0.9.7-incubating-SNAPSHOT \
# [EMAIL PROTECTED]
test ! -z ${NEXTVERSION} || echo "Usage: ${0} OLDVERSION RELEASEVERSION NEXTVERSION"
test ! -z ${NEXTVERSION}
svn co https://svn.apache.org/repos/asf/incubator/openjpa/trunk/ ${RELEASEDIR}
cd ${RELEASEDIR}
perl -pi -e "s;<version>${OLDVERSION}</version>;<version>${RELEASEVERSION}</version>;g" pom.xml */pom.xml
svn commit -m "Updated to version ${RELEASEVERSION}"
# Pre-build: need to do this to get around bugs in aggregate javadocs, as
# well as making a signature we can test
mvn clean install -Pdocbook-profile,sign-release "${EXTRAARGS}"
# Verify the signatures
gpg --multifile --verify openjpa-project/target/assembly/*.asc
# Test the examples to make sure they work
OLDDIR=`pwd`
rm -rf ${EXAMPLESDIR} || true
mkdir -p ${EXAMPLESDIR}
cd ${EXAMPLESDIR}
unzip ${RELEASEDIR}/openjpa-project/target/assembly/*-binary.zip
for build in openjpa-*/examples/*/build.xml
do
ant -f ${build}
done
cd ${OLDDIR}
# Now actually build the javadocs and perform the deploy upload
mvn verify deploy -Pjavadoc-profile,sign-release "${EXTRAARGS}"
# Now tag the view
svn copy -m "OpenJPA Release ${RELEASEVERSION}" \
https://svn.apache.org/repos/asf/incubator/openjpa/trunk \
https://svn.apache.org/repos/asf/incubator/openjpa/tags/${RELEASEVERSION}
# Update to the next version
perl -pi -e "s;<version>${RELEASEVERSION}</version>;<version>${NEXTVERSION}</version>;g" pom.xml */pom.xml
# Commit the next versions
svn commit -m "Updated to version ${NEXTVERSION}"