This page is a brain dump of the various items needed for a release. It needs some work...
Preparation
DRAFT
Requirements
- a Java JDK in according with target JDK (Java 8 for JMeter 5.0+)
- a recent Gradle release (but if you use gradlew utility, the good gradle version will be installed during the build)
- subversion (svn) client installed (version 1.9+); the command-line utility svnmucc is needed (it should be included in the svn client installation (svn-tools dir), but please check)
- a git client installed (2.+)
- a text editor
- hostname must resolve to ip address (not loopback)
- Internet access
Preparation
For GPG signing, the Release Manager need to have his GPG key on his machine.
To check the key (for example):
No Format |
---|
$ 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 |
- request Bugzilla version update (on INFRA or if you are JMeter committer, ask for sufficient Bugzilla karma to do this yourself)request Bugzilla version update
- ensure changes.xml is up to date. If necessary, commit after update.
- ensure unit tests pass
- do not update the version in update JMeterVersion.java and build.xml
- build documents, having first cleaned out existing files (so obsolete files will be removed):
Wiki Markup \[clean-docs\] then \[docs-site\]
Wiki Markup \[clean-apidocs\] then \[docs-api\]
- update docs tree in SVN
- build code
- test
- GUI and non-GUI using host with graphic capability
- non-GUI only using host with no graphic capability
- ideally test on Java 1.4 and latest Java - especially for GUI
Generate Release
- tag all the files with a new RC tag, e.g. 2.3.2RC1
- extract files from SVN using the tag into a new directory tree
- create distribution files:
- ant distribution -Djmeter.version=m.n -Duser.name=user-AT-apache.org
- sign distribution files (gpg -ba file)
Vote on release
- yet; master branch should remain a SNAPSHOT
- check out Git master branch into a clean workspace (or run a git clone if jmeter git tree is not on your machine)
No Format |
---|
$ cd ~/GitRepos/JMeter/jmeter
$ git pull
Already up to date. |
- Update version to targeted version in gradle.properties
No Format |
---|
vi gradle.properties |
- update the version / year for NOTICE (year)
- ./NOTICE:
- section: Copyright 1998-2019 The Apache Software Foundation
- ./NOTICE:
- update xdocs/download_jmeter.xml to the new version
- section: <!ENTITY release '5.0'>
- Add modifications, commit and push to remote location
No Format |
---|
git add NOTICE xdocs/download_jmeter.xml
git commit -m "prepare new version 5.X.X"
git push |
Generate Release
- Clean the working space before
No Format |
---|
$ ./gradlew :src:dist:clean |
- To do a new release candidate, run theses commands:
No Format |
---|
$ ./gradlew prepareVote -Prc=1 -Pasf -PuseGpgCmd --info --stacktrace |
- Change -Prc=X with according the RC number
- Use -Pasf to use the ASF GitBox repository (indeed of GitHub)
- use -PuseGpgCmd to allow the signing of archives
- (if you work on a Linux machine, during the build, the GPG agent will ask your passphras for you GPG key.)
On success, a template for VOTE email are display with relevant informations
Checks to do before sending vote email
- review RAT report
- See ReleaseChecking for information on what to check
- Test ALL links in the vote message (use browser in incognito mode)
Vote on release
send round [VOTE] e-mail to dev
Subject: [VOTE] Release JMeter X.X.X RCx- Wait for any feedback (at least 72 hours)
- upload to temporary location (e.g. personal dir)
- cd public_html ; mkdir jmeter-m.n
- cd jmeter-m.n
- mkdir dist
- svn co
http://svn.apache.org/repos/asf/jakarta/jmeter/tags/vm_nxx/docs
Wiki Markup send round \[VOTE\] e-mail to jmeter-dev and general AT jakarta
- Wait for any feedback; address any issues raised, if necessary by creating another release tag (rc)
- If at least 3 PMC votes, then continue unmigrated-wiki-markup
After VOTE success
send
round
\[VOTE
\]
\[RESULT
\]
e-mail
to
same
mailing
lists
- Copy Publish the RC tag to the release tag
Upload files
- copy archives to /www/www.apache.org/dist/jakarta/jmeter/binaries and /www/www.apache.org/dist/jakarta/jmeter/source
- Make sure that file group is set to jakarta
- delete any obsolete releases (keep the current one for now)
- check files are visible and downloadable from www.apache.org (2+ hours)
- wait a day or so for mirrors to catch up
Update Jakarta download details and JMeter site
...
No Format |
---|
$ ./gradlew publishDist -Prc=1 -Pasf -PuseGpgCmd |
Update main distribution files
- Checkout the top-level of the live dist project on your computer:
No Format |
---|
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
|
- Edit HEADER.html to modify with new version number
- If necessary, add your GPG public key to KEYS
- If necessary, update the META file with your GPG key id (if you act as the release manager for the first time. Please visit https://checker.apache.org/doc/README.html )
- The META file needs to be signed by the PMC Chair of project with this command:
No Format |
---|
gpg -u emailOfPmcChairJMeter@apache.org --armor --output META.asc --detach-sig META
|
- To verify the good signature, use this command:
No Format |
---|
$ 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]
|
- Commit with svn
No Format |
---|
svn commit -m "JMeter 5.4.2 release - Prepare update site" dist-jmeter
|
Maven Release
- Go to Apache Repository
- Section Staging Repositories
- Check the RC box, add click on Release button (see: Release a staging repository)
- Comment: "JMeter 5.0 release"
- Maven Central will catch up the new release in next sync (check: ga)
Wait for the update of central maven
- wait a day or so Maven Central update.
Update Doap file
- Get latest Doap file from Git master branch
No Format |
---|
$ cd ~/GitRepos/JMeter/jmeter
$ git pull
$ vi doap_JMeter.rdf |
- update doap_JMeter.rdf to add the new release
- and commit
No Format |
---|
$ 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:
No Format |
---|
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!
No Format |
---|
$ cp -a site/* ~/GitRepos/JMeter/jmeter-site/ |
Add changes in stage git
No Format |
---|
$ git add . |
Get lastest version Doap file and add to git too:
No Format |
---|
$ 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:
No Format |
---|
$ 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 Wiki version details
...
Announce
- update Wiki version details
- update doap_JMeter.rdf details in trunk
jmeter-user, jmeter-dev, announcements@jakartaWiki Markup send \[ANNOUNCE\] e-mail to
user@jmeter.a.o, dev@jmeter.a.o
- See ReleaseAnnounceEmailTemplate
- Double check all URL in email announce!
- also copy to announce AT ao (has to be sent from an ao e-mail address)
- N.B. to track bounces and unsubscribes, it may be a good idea to use a separate mails mail to Jakarta and Announce, and include a simple marker to distinguish them, e.g. To: Jakarta, To: Announce.
Tidy up
...
- Announce
Update reporter.apache.org
Add release data (version and date) to reporter.apache.org - https://reporter.apache.org/addrelease.html?jmeter
Tidy up
- a few days after the release has been announced, remove any superseded releases from the binaries and source directories under https://dist.apache.org/repos/dist/release/jmeter/ using the following command:
No Format |
---|
ant release_delete -Djmeter.old.version=4.0 -DrepoType=live [-Dasf.ldap.password=secret [-Dasf.ldap.usermame=user] ]
|