You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 43 Next »

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

DRAFT

Requirements

  • a Java JDK in according with target JDK (java 5 for JMeter 2.7)
  • a recent ant binary (1.8+)
  • subversion (svn) installed
  • a text editor
  • hostname must resolve to ip address (not loopback)

Preparation

  • request Bugzilla version update (on INFRA or if you are JMeter committer, ask for sufficient Bugzilla karma to do this yourself)
  • ensure changes.xml is up to date. If necessary, commit after update.
  • ensure unit tests pass
  • do not update the version in build.xml yet; trunk should remain a SNAPSHOT
  • check out SVN trunk into a clean workspace, for example (assuming current trunk is 2.7-SNAPSHOT in preparation for releasing 2.7):
svn co https://svn.apache.org/repos/asf/jmeter/trunk jmeter_2.7_RC1
  • Move to new workspace:
cd jmeter_2.7_RC1
  • update the versions in the new workspace: JMeterVersion.java (version and year), build.xml (version) and NOTICE (year)
    • (src/core/org/apache/jmeter/util/JMeterVersion.java)
    • build.xml: section: <property name="jmeter.version" value="2.7"/>
  • update xdocs/download_jmeter.xml to the new version
    • section: <!ENTITY release '2.7'>
  • Download external jars
ant download_jars 
  • build site documents, having first cleaned out existing files (so obsolete files will be removed):
    • TODO should this be done on trunk, before creating the clean checkout? Are there any references to the current version in the docs?
ant clean-docs
ant docs-site
  • create the new RC tag, e.g. v2_7_RC1 from the workspace
    • (Problem to fix: update overview.html is make by the ant distribution task)
svn copy . https://svn.apache.org/repos/asf/jmeter/tags/v2_7_RC1
  • this will create the tag from the contents of the workspace. Only the updated files will be shown in the commit message; most files will be shown as being copied from trunk.
    • N.B. Tags must be immutable, i.e. must not be changed once created. A tag can be deleted if it is no longer needed, but must not be recreated.
      • If there is a problem with the contents of an RC tag, create a new tag, for example v2_7_RC2
      • If the tag is part of an ongoing release vote, do not delete it whilst the vote is ongoing, even if the vote is now using a later tag. It can be useful to be able to compare the contents of tags as part of the voting process.
      • Once the release vote is over, intermediate tags are no longer needed, and can be deleted.
      • If the tag has not been used in a release vote, it can be deleted immediately.
  • build code to make a testing binary with this ant task:
ant -Djmeter.version=2.7 -Duser.name=username@apache.org distribution
  • test the new binaries
    • GUI and non-GUI using host with graphic capability
    • non-GUI only using host with no graphic capability
    • ideally test on minimum supported Java and latest Java - especially for GUI
  • THIS NEEDS FIXING; no need to fetch the tag again, as we already have a clean workspace*

Generate Release

  • extract files from SVN using the RC tag into a new directory tree
svn co https://svn.apache.org/repos/asf/jmeter/tags/v2_7_RC1 jmeter_v2_7_RC1
  • Move to new directory:
cd jmeter_v2_7_RC1/
  • download jars needed to build: "ant download_jars"
ant download_jars
  • create distribution files:
    • Distribution ant task: ant distribution -lib=<libextra> -Djmeter.version=m.n -Duser.name=user-AT-apache.org
ant distribution -Djmeter.version=2.7 -Duser.name=username@apache.org
  • sign distribution files and maven files via ant tasks:
ant _dist_maven -Djmeter.version=2.7
ant sign_dist -Dgpg.keyname=<YOUR_KEY_ID> -Dgpg.secretKeyring=<path to secring.gpg i.e. ~/.gnupg/secring.gpg>
  • Upload to Maven repository:
ant maven_upload -Djmeter.version=2.7 -DrepoType=releases
  • Go to Apache Repository
    • Section Staging Repositories
    • You will receive a email with JMeter Maven Repo URLs
      • The main URL must be added to email vote.
  • Generate RAT report (example on Linux with Java)
java -jar $RAT_HOME/apache-rat-0.8.jar ./apache-jmeter-2.7.tgz > rat-report-jmeter-2.7RC1.txt
unix2dos rat-report-jmeter-2.7RC1.txt

Checks to do before send vote email

  • to do: add some checks (zip/tgz binary files vs src files, etc.)

Vote on release

  • Login to people.apache.org in SSH
  • Create temporary location to receive dist files
mkdir -p ~/JMETER_2_7_RC1/dist/
  • From your computer, upload dist files and RAT report to the temporary location (e.g. personal dir: ~/JMETER_2_7_RC1/dist/) in people.apache.org
  • Return to people.apache.org
  • Preparation RC publishing
mkdir -p ~/public_html/jmeter-2.7RC1/dist/
  • copy archives, sigs and hashes to dist
cp ~/JMETER_2_7_RC1/dist/* ~/public_html/jmeter-2.7RC1/dist/
  • check hashes (before / after uploads)
    • Install the site docs:
cd ~/public_html/jmeter-2.7RC1/
svn co https://svn.apache.org/repos/asf/jmeter/tags/v2_7_RC1/docs docs
  • Extract Javadocs: unzip -x jmeter-m.n.o.zip '*/docs/api/*' and move to docs/api
    • Example:
cd $HOME
cp  ~/public_html/jmeter-2.7RC1/dist/apache-jmeter-2.7.tgz $HOME
tar xfz apache-jmeter-2.7.tgz
cd apache-jmeter-2.7/docs/
mv api ~/public_html/jmeter-2.7RC1/docs/api
rm -r $HOME/apache-jmeter-2.7
  • send round [VOTE] e-mail to dev

  • Wait for any feedback (at least 72 hours); address any issues raised, if necessary by creating another release tag
  • If at least 3 PMC votes, then continue

After VOTE success

  • send round [VOTE] [RESULT] e-mail to same mailing lists

  • Copy the RC tag to the release tag
svn copy https://svn.apache.org/repos/asf/jmeter/tags/v2_7_RC1 https://svn.apache.org/repos/asf/jmeter/tags/v2_7

Move RC dist files to release

  • Connect to people.apache.org in SSH
  • Go to RC dist repository (e.g. personal dir)
cd ~/public_html/jmeter-2.7RC1/dist
  • Make sure that file group is set to jmeter (chgrp jmeter apache-jmeter*)
chgrp jmeter apache-jmeter*
chmod g+w apache-jmeter*
  • copy archives to /www/www.apache.org/dist/jmeter/binaries and /www/www.apache.org/dist/jmeter/source as appropriate
cp apache-jmeter-2.7_src* /www/www.apache.org/dist/jmeter/source
cp apache-jmeter-2.7.zip* /www/www.apache.org/dist/jmeter/binaries
cp apache-jmeter-2.7.tgz* /www/www.apache.org/dist/jmeter/binaries

Update Site dist

  • Checkout dist project on your computer
svn co  https://svn.apache.org/repos/asf/jmeter/dist dist-jmeter
  • Edit HEADER.html to modifiy with new version number
  • Optional, add your GPG public key to KEYS
  • Commit with svn
svn commit
  • Login to people.apache.org in SSH
    • Go to dist dir:
cd /www/www.apache.org/dist/jmeter
  • Execute a svn update
svn update

Update JMeter site

  • login to people.apache.org
  • Go to:
cd /www/jmeter.apache.org/
svn switch http://svn.apache.org/repos/asf/jmeter/branches/docs-2.7/docs
  • If the documentation needs to be updated between releases, create a branch docs-vm_n_o from the tag and switch to that
  • for later updates, use "svn switch" or "svn update" as appropriate (use svn info to find current setting)
  • The Javadocs are not in SVN so these need to be copied from the staging area
    • Example:
cd /www/jmeter.apache.org/
rm -r /www/jmeter.apache.org/api
cd ~/public_html/jmeter-2.7RC1/docs
cp -R api /www/jmeter.apache.org
chmod -R g+w /www/jmeter.apache.org/api
  • N.B. wait for few hours so site updates catch up

Maven Release

  • Go to Apache Repository
  • Section Staging Repositories
  • You will receive a email with JMeter Maven Repo URLs
    • The main URL can be added to email announce

Announce

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

  • update Wiki version details
  • update doap_JMeter.rdf details in trunk and commit
  • send [ANNOUNCE] e-mail to user@jmeter.a.o, dev@jmeter.a.o

    • 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 mail to Announce

Tidy up

  • remove old archives from /www/www.apache.org/jmeter/dist
  • No labels