Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Example shell script to perform the steps above

Code Block
none
none
titlemkopenjparelease.sh
borderStylesolid
#!/bin/sh -pve
# Author: Marc Prud'hommeaux <mprudhom@apache.org>
#
# USE AT YOUR OWN RISK!
#
# 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;
EXTRAARGS=${@}

# 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 \
#   -Dopenjpa.release.keyAlias=somegpgkeyalias@somedomain.org

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}" 


...