This page is a brain dump of the various items needed for a release.

Requirements

Preparation

svn co https://svn.apache.org/repos/asf/jmeter/trunk jmeter_v2_8_RC1

cd jmeter_v2_8_RC1

ant download_jars 

ant clean-docs
ant docs-site
ant docs-api -Djmeter.version=2.8

svn commit -m "Prepare next release 2.8: update docs tree and overview (RC1)"

svn update

svn copy -m "Tag for pre-release" . https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1

svn switch https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1

ant -Djmeter.version=2.8 -Duser.name=milamber@apache.org distribution

Generate Release

ant _dist_maven -Djmeter.version=2.8
ant sign_dist -Dgpg.keyname=0612B399 -Dgpg.secretKeyring=~/.gnupg/secring.gpg

ant maven_upload -Djmeter.version=2.8 -DrepoType=releases

cd dist/
java -jar $RAT_HOME/apache-rat-0.8.jar ./apache-jmeter-2.8.tgz > rat-report-jmeter-2.8RC1.txt
unix2dos rat-report-jmeter-2.8RC1.txt

Checks to do before sending vote email

Check: JMeter SVN tree vs JMeter archive sources

TODO: simplify this checking process and extend to Windows.

For JMeter sources, need a Linux box, SVN (apache) and GIT (local).

Export the RC tags to a temporay directory.

cd /tmp
svn export http://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1 jmeter_v2_8_RC1

Initialize a GIT local repository

cd jmeter_v2_8_RC1/
git init

Add and commit all files from the svn export

git add *
git commit -m "SVN export to initial import"

Untar the JMeter sources tgz file into a temporary directory, and copy the contents in the git repo.

tar xfz /tmp/releases/jmeter_2_8/jmeter_v2_8_RC1/dist/apache-jmeter-2.8_src.tgz -C /tmp
cp -a /tmp/apache-jmeter-2.8/* /tmp/jmeter_v2_8_RC1/

Check the differences with the git diff command:

cd /tmp/jmeter_v2_8_RC1/
git diff

Samples Results:

diff --git a/bin/jmeter b/bin/jmeter
old mode 100755
new mode 100644
diff --git a/bin/jmeter-server b/bin/jmeter-server
old mode 100755
new mode 100644
diff --git a/xdocs/download_jmeter.cgi b/xdocs/download_jmeter.cgi
old mode 100755
new mode 100644

Here, differences is only the permission on some files (not matter in this case)

After all checks, you can remove the temporary directories.

Upload release artifacts to staging directory

JMeter releases are now published using svnpubsub. For release votes, the files are uploaded to the dev/jmeter tree at https://dist.apache.org/repos/dist/dev/jmeter/ If the vote succeeds, they are renamed to the release directory at https://dist.apache.org/repos/dist/release/jmeter/ which is automatically published to the ASF mirror system.

ant RC_upload -DRC=RCn -DrepoType=live [-Dasf.ldap.password=secret [-Dasf.ldap.usermame=user] ]

The files should now be available under https://dist.apache.org/repos/dist/dev/jmeter/

Vote on release

cd ~/public_html/jmeter-2.8RC1/
svn export https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1/docs docs

cd $HOME
cp  ~/public_html/jmeter-2.8RC1/dist/apache-jmeter-2.8.tgz $HOME
tar xfz apache-jmeter-2.8.tgz
cd apache-jmeter-2.8/docs/
mv api ~/public_html/jmeter-2.8RC1/docs/api
cd $HOME
rm -r $HOME/apache-jmeter-2.8

After VOTE success

svn copy https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1 https://svn.apache.org/repos/asf/jmeter/tags/v2_8 -m "Vote succeeded, create the 2.8 tag"

Move RC dist files to release

This is done using svnmnucc. It moves the files from the staging director https://dist.apache.org/repos/dist/dev/jmeter/ to the live are at https://dist.apache.org/repos/dist/release/jmeter/

ant RC_publish -DRC=RCn -DrepoType=live [-Dasf.ldap.password=secret [-Dasf.ldap.usermame=user] ]

Update main distribution files

svn co --depth files  https://dist.apache.org/repos/dist/release/jmeter/ dist-jmeter

svn commit -m "JMeter 2.8 release - Prepare update site" dist-jmeter

Update JMeter site

This is now done using svnmucc. Create a script - for example "updatesite.txt" - containing the following:

rm
https://svn.apache.org/repos/asf/jmeter/site

cp
HEAD
https://svn.apache.org/repos/asf/jmeter/branches/docs-2.8/docs
https://svn.apache.org/repos/asf/jmeter/site

Change the /docs-2.8/ path segment above as appropriate!

Now use svnmucc to update the live site:

svnmucc -m "Create branch docs 2.8" -X updatesite.txt

The SvnPubSub system will update the live site within a few seconds.

Maven Release

Announce

Make sure: JMeter website is update AND download mirrors too.

svn commit -m "JMeter 2.8 release"

Tidy up

ant release_delete -Djmeter.old.version=2.7 -DrepoType=live [-Dasf.ldap.password=secret [-Dasf.ldap.usermame=user] ]