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 send vote email

Check: JMeter SVN tree vs JMeter archive sources

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.

Vote on release

mkdir -p ~/jmeter_v2_8_RC1/dist/

cd ./dist/ scp apache-jmeter-2.8* minautor:/home/milamber/jmeter_v2_8_RC1/dist/ scp rat-report-jmeter-2.8RC1.txt minautor:/home/milamber/jmeter_v2_8_RC1/dist/

mkdir -p ~/public_html/jmeter-2.8RC1/dist/

cp ~/jmeter_v2_8_RC1/dist/* ~/public_html/jmeter-2.8RC1/dist/

MD5 checks (local)

Example, on local Linux box:

cd /release_dir/dist
find . -name "*.md5" -exec cat {} \; -exec echo "" \;

Results (copy/paste to email vote):

98838d5dc4f2b735b522abc8425aec0d *apache-jmeter-2.8_src.zip
9a1740e7828a4d25e439934974672b8b *apache-jmeter-2.8.tgz
b5283a2099fe4186f8978a3ccfb4e8d6 *apache-jmeter-2.8_src.tgz
ca70cf7fdf8b98ded1dc0494bdc9de14 *apache-jmeter-2.8.zip

After upload on people.apache.org

Check MD5 sums on people.apache.org, with bash shell, check the md5 files sum vs files .md5 hashes.

cd ~/public_html/jmeter-2.8RC1/dist/

Copy/paste all lines in one time

LIST=`find . -regex ".*\.zip" -or -regex ".*\.tgz"`
for ARCHIVE in ${LIST} ;
do
      if test `awk '{ print $1 }' ${ARCHIVE}.md5` = `md5 -q ${ARCHIVE}`; then
          echo MD5 OK; 
      else 
          echo MD5 checksum KO; 
      fi;
done

Good results are:

MD5 OK
MD5 OK
MD5 OK
MD5 OK

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

cd ~/public_html/jmeter-2.8RC1/dist

chgrp jmeter apache-jmeter*
chmod g+w apache-jmeter*

cp apache-jmeter-2.8_src* /www/www.apache.org/dist/jmeter/source
cp apache-jmeter-2.8.zip* /www/www.apache.org/dist/jmeter/binaries
cp apache-jmeter-2.8.tgz* /www/www.apache.org/dist/jmeter/binaries

Update Site dist

svn co  https://svn.apache.org/repos/asf/jmeter/dist dist-jmeter

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

cd /www/www.apache.org/dist/jmeter

svn update

Update JMeter site

svn copy https://svn.apache.org/repos/asf/jmeter/tags/v2_8 https://svn.apache.org/repos/asf/jmeter/branches/docs-2.8  -m "Create branch docs 2.8" 

cd /www/jmeter.apache.org/

svn switch http://svn.apache.org/repos/asf/jmeter/branches/docs-2.8/docs

cd /www/jmeter.apache.org/
rm -r /www/jmeter.apache.org/api
cd ~/public_html/jmeter-2.8RC1/docs
cp -R api /www/jmeter.apache.org
chmod -R g+w /www/jmeter.apache.org/api

Maven Release

Announce

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

svn commit -m "JMeter 2.8 release"

Tidy up