Differences between revisions 64 and 65
Revision 64 as of 2016-11-27 10:09:14
Size: 11155
Editor: Milamber
Comment: Update process with the new way for Doap file
Revision 65 as of 2016-11-27 10:17:40
Size: 11156
Editor: Milamber
Comment: Update the version with 3.2 (next release with Java 8)
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
 * check out SVN trunk into a clean workspace, for example (assuming current trunk is 2.8-SNAPSHOT in preparation for releasing 2.8):
{{{
svn co https://svn.apache.org/repos/asf/jmeter/trunk jmeter_v2_8_RC1
 * check out SVN trunk into a clean workspace, for example (assuming current trunk is 3.2-SNAPSHOT in preparation for releasing 3.2):
{{{
svn co https://svn.apache.org/repos/asf/jmeter/trunk jmeter_v3_2_RC1
Line 23: Line 23:
cd jmeter_v2_8_RC1 cd jmeter_v3_2_RC1
Line 27: Line 27:
    * section: ''private static final String VERSION = "2.8";''
    * section: ''private static final String COPYRIGHT = "Copyright (c) 1998-2012 The Apache Software Foundation";''
    * section: ''private static final String VERSION = "3.2";''
    * section: ''private static final String COPYRIGHT = "Copyright (c) 1998-2016 The Apache Software Foundation";''
Line 30: Line 30:
    * section: ''Copyright 1998-2012 The Apache Software Foundation''     * section: ''Copyright 1998-2016 The Apache Software Foundation''
Line 32: Line 32:
  * section: <!ENTITY release '2.8'>   * section: <!ENTITY release '3.2'>
Line 42: Line 42:
ant docs-api -Djmeter.version=2.8 ant docs-api -Djmeter.version=3.2
Line 50: Line 50:
svn commit -m "Prepare next release 2.8: update docs tree and overview (RC1)" svn commit -m "Prepare next release 3.2: update docs tree and overview (RC1)"
Line 58: Line 58:
    * section: ''<property name="jmeter.version" value="2.8"/>''
 * create the new RC tag, e.g. v2_8_RC1 from the workspace
{{{
svn copy -m "Tag for pre-release" . https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1
    * section: ''<property name="jmeter.version" value="3.2"/>''
 * create the new RC tag, e.g. v3_2_RC1 from the workspace
{{{
svn copy -m "Tag for pre-release" . https://svn.apache.org/repos/asf/jmeter/tags/v3_2_RC1
Line 65: Line 65:
     * If there is a problem with the contents of an RC tag, create a new tag, for example v2_8_RC2      * If there is a problem with the contents of an RC tag, create a new tag, for example v3_2_RC2
Line 71: Line 71:
svn switch https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1 svn switch https://svn.apache.org/repos/asf/jmeter/tags/v3_2_RC1
Line 75: Line 75:
ant -Djmeter.version=2.8 -Duser.name=milamber@apache.org distribution ant -Djmeter.version=3.2 -Duser.name=milamber@apache.org distribution
Line 83: Line 83:
 * If tests are ok, from the workspace jmeter_v2_8_RC1  * If tests are ok, from the workspace jmeter_v3_2_RC1
Line 87: Line 87:
ant _dist_maven -Djmeter.version=2.8 ant _dist_maven -Djmeter.version=3.2
Line 92: Line 92:
ant maven_upload -Djmeter.version=2.8 -DrepoType=releases ant maven_upload -Djmeter.version=3.2 -DrepoType=releases
Line 103: Line 103:
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
java -jar $RAT_HOME/apache-rat-0.12.jar ./apache-jmeter-3.2.tgz > rat-report-jmeter-3.2RC1.txt
unix2dos rat-report-jmeter-3.2RC1.txt
Line 127: Line 127:
svn cp -m"Create docs branch" https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1 https://svn.apache.org/repos/asf/jmeter/branches/docs-2.8/ svn cp -m"Create docs branch" https://svn.apache.org/repos/asf/jmeter/tags/v3_2_RC1 https://svn.apache.org/repos/asf/jmeter/branches/docs-3.2/
Line 134: Line 134:
svn import -m "Add Javadocs" docs/api https://svn.apache.org/repos/asf/jmeter/branches/docs-2.8/docs/api svn import -m "Add Javadocs" docs/api https://svn.apache.org/repos/asf/jmeter/branches/docs-3.2/docs/api
Line 154: Line 154:
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" svn copy https://svn.apache.org/repos/asf/jmeter/tags/v3_2_RC1 https://svn.apache.org/repos/asf/jmeter/tags/v3_2 -m "Vote succeeded, create the 3.2 tag"
Line 176: Line 176:
svn commit -m "JMeter 2.8 release - Prepare update site" dist-jmeter svn commit -m "JMeter 3.2 release - Prepare update site" dist-jmeter
Line 183: Line 183:
   * Comment: "JMeter 2.8 release"    * Comment: "JMeter 3.2 release"
Line 197: Line 197:
svn commit -m "JMeter 2.8 release" svn commit -m "JMeter 3.2 release"
Line 210: Line 210:
https://svn.apache.org/repos/asf/jmeter/branches/docs-2.8/docs https://svn.apache.org/repos/asf/jmeter/branches/docs-3.2/docs
Line 218: Line 218:
Change the /docs-2.8/ path segment above as appropriate! Change the /docs-3.2/ path segment above as appropriate!
Line 222: Line 222:
svnmucc -m "Update website for the new release JMeter 2.8" -X updatesite.txt svnmucc -m "Update website for the new release JMeter 3.2" -X updatesite.txt
Line 252: Line 252:
ant release_delete -Djmeter.old.version=2.7 -DrepoType=live [-Dasf.ldap.password=secret [-Dasf.ldap.usermame=user] ]
}}}
ant release_delete -Djmeter.old.version=3.1 -DrepoType=live [-Dasf.ldap.password=secret [-Dasf.ldap.usermame=user] ]
}}}

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 8 for JMeter 3.2)
  • a recent Ant binary (1.9.3+)
  • 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 text editor
  • hostname must resolve to ip address (not loopback)
  • Internet access

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 3.2-SNAPSHOT in preparation for releasing 3.2):

svn co https://svn.apache.org/repos/asf/jmeter/trunk jmeter_v3_2_RC1
  • Move to the new workspace:

cd jmeter_v3_2_RC1
  • update the version / year in the new workspace: JMeterVersion.java (version and year) and NOTICE (year)
    • ./src/core/org/apache/jmeter/util/JMeterVersion.java:
      • section: private static final String VERSION = "3.2";

      • section: private static final String COPYRIGHT = "Copyright (c) 1998-2016 The Apache Software Foundation";

    • ./NOTICE:
      • section: Copyright 1998-2016 The Apache Software Foundation

  • update xdocs/download_jmeter.xml to the new version
    • section: <!ENTITY release '3.2'>

  • 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
ant docs-api -Djmeter.version=3.2
  • check if you need to add some new files or remove some deleted files from docs directory (using svn status command)

svn status
  • commit docs changes (CHECK IF THEY HAVE NEW PAGES/FILES : make a svn add before commit)

svn commit -m "Prepare next release 3.2: update docs tree and overview (RC1)"
  • make a last SVN update to update revision number for your workspace

svn update
  • edit now the version for build.xml (remove -SNAPSHOT)

    • ./build.xml:
      • section: <property name="jmeter.version" value="3.2"/>

  • create the new RC tag, e.g. v3_2_RC1 from the workspace

svn copy -m "Tag for pre-release" . https://svn.apache.org/repos/asf/jmeter/tags/v3_2_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 v3_2_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.
  • Switch to the new tag

svn switch https://svn.apache.org/repos/asf/jmeter/tags/v3_2_RC1
  • build code to make a testing binary with this ant task:

ant -Djmeter.version=3.2 -Duser.name=milamber@apache.org distribution
  • test the new binaries (move/extract binaries in a temporary directory outside the workspace)
    • 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

Generate Release

  • If tests are ok, from the workspace jmeter_v3_2_RC1
    • (no need to fetch the tag again, as we already have a clean workspace)
  • sign distribution files and maven files via ant tasks:

ant _dist_maven -Djmeter.version=3.2
ant sign_dist -Dgpg.keyname=0612B399 -Dgpg.secretKeyring=~/.gnupg/secring.gpg
  • Upload Maven files to Maven repository:

ant maven_upload -Djmeter.version=3.2 -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)

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

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.username=user] ]

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

Create docs branch

The site documentation now needs to be copied to the appropriate branch directory from the tag. [Note: if the vote fails, the branch will need to be removed and recreated]

svn cp -m"Create docs branch" https://svn.apache.org/repos/asf/jmeter/tags/v3_2_RC1 https://svn.apache.org/repos/asf/jmeter/branches/docs-3.2/

The Javadocs are not yet part of SVN at this point. For simplicity when reviewing the release candidate, they should be added to the docs branch here:

svn import -m "Add Javadocs" docs/api https://svn.apache.org/repos/asf/jmeter/branches/docs-3.2/docs/api

It would be possible to add them directly to the live SVN directory later, but they need to be available for review, so it's easiest to create the branches/docs-m.n/docs tree as an exact copy of what will be released.

Checks to do before sending vote email

Vote on release

  • 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/v3_2_RC1 https://svn.apache.org/repos/asf/jmeter/tags/v3_2 -m "Vote succeeded, create the 3.2 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.username=user] ]

Update main distribution files

  • Checkout the top-level of the live dist project on your computer:

svn co --depth files  https://dist.apache.org/repos/dist/release/jmeter/ dist-jmeter
  • Edit HEADER.html to modifiy with new version number
  • If necessary, add your GPG public key to KEYS
  • Commit with svn

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

Maven Release

Wait for the update mirrors and central maven

  • wait a day or so for mirrors to catch up distribution files and Maven Central update. Note: the mirrors list can be checked Here

Update Doap file

  • Get latest Doap file from SVN.

svn co https://svn.apache.org/repos/asf/jmeter/doap
  • update doap_JMeter.rdf to add the new release
  • and commit

svn commit -m "JMeter 3.2 release"

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-3.2/docs
https://svn.apache.org/repos/asf/jmeter/site

cp HEAD
https://svn.apache.org/repos/asf/jmeter/doap/doap_JMeter.rdf
https://svn.apache.org/repos/asf/jmeter/site/doap_JMeter.rdf

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

Now use svnmucc to update the live site:

svnmucc -m "Update website for the new release JMeter 3.2" -X updatesite.txt

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

Note: the branches/docs-m.n SVN tree is created from trunk when the release is created. Subsequent updates to trunk documents may not be appropriate to the current release - e.g. changes to test elements - so any necessary changes to the site should be made to the branch (and trunk if appropriate). Then rebuild the branch (not the Javadocs!) and update the SVN branch with the changed files The site can then be updated as above.

Announce

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

  • update Wiki version details
  • send [ANNOUNCE] e-mail to user@jmeter.a.o, dev@jmeter.a.o

  • 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

Update reporter.apache.org

Tidy up

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

ReleaseCreation (last edited 2016-11-27 10:17:40 by Milamber)