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

DRAFT

Requirements

Preparation

For GPG signing, the Release Manager need to have his GPG key on his machine.

To check the key (for example):

$ gpg --list-secret-keys --keyid-format LONG
[...]
sec   rsa4096/AC214CAA0612B399 2010-08-14 [SC]
      C4923F9ABFB2F1A06F08E88BAC214CAA0612B399
uid                 [ultimate] Milamber (ASF) <milamber@a.o>
uid                 [ultimate] Milamber (Milamberspace) <milamberspace@xxxxx.com>
ssb#  rsa4096/88A342BB4B10546A 2010-08-14 [E]

Optionally, you can add the user signing key in Git configuration for the JMeter repository, this allow to sign each commit.

Go to the Git clone directory of JMeter project:
$ cd ~/GitRepos/JMeter/jmeter 

Execute this git command to configure the user signing key, please change the key ID with your own key id:
$ git config user.signingkey AC214CAA0612B399 
$ cd ~/GitRepos/JMeter/jmeter 

$ git pull
Already up to date.
 vi gradle.properties 
git add NOTICE xdocs/download_jmeter.xml
git commit -m "prepare new version 5.X.X" 
git push

Generate Release

 $ ./gradlew :src:dist:clean 
 $ ./gradlew prepareVote -Prc=1 -Pasf -PuseGpgCmd --info --stacktrace

On success, a template for VOTE email are display with relevant informations

Checks to do before sending vote email

Vote on release

After VOTE success

$ ./gradlew publishDist -Prc=1 -Pasf -PuseGpgCmd 

Update main distribution files

mkdir ~/JMETER_releases/jmeter_5_4_2
cd ~JMETER_releases/jmeter_5_4_2
svn co --depth files  https://dist.apache.org/repos/dist/release/jmeter/ dist-jmeter
gpg -u emailOfPmcChairJMeter@apache.org --armor --output META.asc --detach-sig META
$ gpg --verify META.asc META

gpg: Signature made mar. 12 sept. 2017 18:05:19 WEST
gpg:                using RSA key C4923F9ABFB2F1A06F08E88BAC214CAA0612B399
gpg:                issuer "milamber@apache.org"
gpg: Good signature from "Milamber (ASF) <milamber@apache.org>" [ultimate]
gpg:                 aka "Milamber (Milamberspace) <milamberspace@gmail.com>" [ultimate]
svn commit -m "JMeter 5.4.2 release - Prepare update site" dist-jmeter

Maven Release

Wait for the update of central maven

Update Doap file

$ cd ~/GitRepos/JMeter/jmeter 
$ git pull
$ vi doap_JMeter.rdf
$ git add doap_JMeter.rdf 
$ git commit -m "Add the 5.4.2 release" 

Update the JMeter web site

Clone (or pull) the git repo for JMeter web site:

Optionally: 
cd ~/GitRepos/JMeter
$ git clone https://gitbox.apache.org/repos/asf/jmeter-site.git
Or
$ cd ~/GitRepos/JMeter/jmeter-site/ 
$ git pull

Copy new web site files from jmeter git source directory to the site directory

Change the path segment above as appropriate!

$ cp -a site/* ~/GitRepos/JMeter/jmeter-site/ 

Add changes in stage git

$ git add .

Get lastest version Doap file and add to git too:

$ wget "https://gitbox.apache.org/repos/asf?p=jmeter.git;a=blob_plain;f=doap_JMeter.rdf;hb=HEAD" -O doap_JMeter.rdf
$ git add doap_JMeter.rdf  

Commit and push:

$ git commit -m "Update website for the new release Apache JMeter 5.4.2"
$ git push

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

Announce

Make sure: JMeter website is update.

Update reporter.apache.org

Add release data (version and date) to reporter.apache.org - https://reporter.apache.org/addrelease.html?jmeter

Tidy up

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