Dear Wiki user, You have subscribed to a wiki page or wiki category on "Jmeter Wiki" for change notification.
The "ReleaseCreation" page has been changed by Milamber: http://wiki.apache.org/jmeter/ReleaseCreation?action=diff&rev1=48&rev2=49 '''DRAFT''' = Requirements = - * a Java JDK in according with target JDK (java 5 for JMeter 2.7) + * a Java JDK in according with target JDK (java 5 for JMeter 2.8) * a recent ant binary (1.8+) * subversion (svn) installed * a text editor * hostname must resolve to ip address (not loopback) + * Internet access = Preparation = * request Bugzilla version update (on [[https://issues.apache.org/jira/browse/INFRA|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): + * 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_7_RC3 + svn co https://svn.apache.org/repos/asf/jmeter/trunk jmeter_v2_8_RC1 }}} * Move to new workspace: {{{ - cd jmeter_v2_7_RC3 + cd jmeter_v2_8_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 = "2.7";'' + * section: ''private static final String VERSION = "2.8";'' * section: ''private static final String COPYRIGHT = "Copyright (c) 1998-2012 The Apache Software Foundation";'' * ./NOTICE: * section: ''Copyright 1998-2012 The Apache Software Foundation'' * update xdocs/download_jmeter.xml to the new version - * section: <!ENTITY release '2.7'> + * section: <!ENTITY release '2.8'> * Download external jars {{{ ant download_jars @@ -40, +41 @@ {{{ ant clean-docs ant docs-site - ant docs-api -Djmeter.version=2.7 + ant docs-api -Djmeter.version=2.8 }}} * commit docs changes {{{ - svn commit -m "Prepare next release 2.7: update docs tree and overview" + svn commit -m "Prepare next release 2.8: update docs tree and overview (RC1)" }}} * make a last SVN update to update revision number for your workspace {{{ @@ -52, +53 @@ }}} * edit '''now''' the version for build.xml (remove -SNAPSHOT) * ./build.xml: - * section: ''<property name="jmeter.version" value="2.7"/>'' + * section: ''<property name="jmeter.version" value="2.8"/>'' - * create the new RC tag, e.g. v2_7_RC3 from the workspace + * 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_7_RC3 + svn copy -m "Tag for pre-release" . https://svn.apache.org/repos/asf/jmeter/tags/v2_8_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_RC3 + * If there is a problem with the contents of an RC tag, create a new tag, for example v2_8_RC1 * 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/v2_7_RC3 + svn switch https://svn.apache.org/repos/asf/jmeter/tags/v2_8_RC1 }}} * build code to make a testing binary with this ant task: {{{ - ant -Djmeter.version=2.7 -Duser.name=usern...@apache.org distribution + ant -Djmeter.version=2.8 -Duser.name=milam...@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 @@ -77, +78 @@ * ideally test on minimum supported Java and latest Java - especially for GUI = Generate Release = - * If tests are ok, from the workspace jmeter_v2_7_RC3 + * If tests are ok, from the workspace jmeter_v2_8_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=2.7 + ant _dist_maven -Djmeter.version=2.8 - ant sign_dist -Dgpg.keyname=<YOUR_KEY_ID> -Dgpg.secretKeyring=<path to secring.gpg i.e. ~/.gnupg/secring.gpg> + ant sign_dist -Dgpg.keyname=0612B399 -Dgpg.secretKeyring=~/.gnupg/secring.gpg }}} * Upload to Maven repository: {{{ - ant maven_upload -Djmeter.version=2.7 -DrepoType=releases + ant maven_upload -Djmeter.version=2.8 -DrepoType=releases }}} * Go to [[https://repository.apache.org/|Apache Repository]] * Section '''Staging Repositories''' @@ -97, +98 @@ * Generate [[http://incubator.apache.org/rat/|RAT]] report (example on Linux with Java) {{{ cd dist/ - java -jar $RAT_HOME/apache-rat-0.8.jar ./apache-jmeter-2.7.tgz > rat-report-jmeter-2.7RC3.txt + 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.7RC3.txt + unix2dos rat-report-jmeter-2.8RC1.txt }}} = Checks to do before send vote email = - * to do: add some checks (zip/tgz binary files vs src files, etc.) * review RAT report + * to do: add some checks (zip/tgz binary files vs src files, SVN tree vs SRC files, etc.) + + == 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 = * Login to people.apache.org in SSH * Create temporary location to receive dist files {{{ - mkdir -p ~/jmeter_v2_7_RC3/dist/ + mkdir -p ~/jmeter_v2_8_RC1/dist/ }}} - * '''From your computer''', upload dist files and RAT report to the temporary location (e.g. personal dir: ~/jmeter_v2_7_RC3/dist/) in people.apache.org + * '''From your computer''', upload dist files and RAT report to the temporary location (e.g. personal dir: ~/jmeter_v2_8_RC1/dist/) in people.apache.org + 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/ * Return to people.apache.org * Preparation RC publishing {{{ - mkdir -p ~/public_html/jmeter-2.7RC3/dist/ + mkdir -p ~/public_html/jmeter-2.8RC1/dist/ }}} * copy archives, sigs and hashes to dist {{{ - cp ~/jmeter_v2_7_RC3/dist/* ~/public_html/jmeter-2.7RC3/dist/ + cp ~/jmeter_v2_8_RC1/dist/* ~/public_html/jmeter-2.8RC1/dist/ }}} * check hashes (before / after uploads) + == 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 + }}} + - * Install the site docs: + * Install the site docs: {{{ - cd ~/public_html/jmeter-2.7RC3/ + cd ~/public_html/jmeter-2.8RC1/ - svn co https://svn.apache.org/repos/asf/jmeter/tags/v2_7_RC3/docs docs + svn export https://svn.apache.org/repos/asf/jmeter/tags/v2_8_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.7RC3/dist/apache-jmeter-2.7.tgz $HOME + cp ~/public_html/jmeter-2.8RC1/dist/apache-jmeter-2.8.tgz $HOME - tar xfz apache-jmeter-2.7.tgz + tar xfz apache-jmeter-2.8.tgz - cd apache-jmeter-2.7/docs/ + cd apache-jmeter-2.8/docs/ - mv api ~/public_html/jmeter-2.7RC3/docs/api + mv api ~/public_html/jmeter-2.8RC1/docs/api cd $HOME - rm -r $HOME/apache-jmeter-2.7 + rm -r $HOME/apache-jmeter-2.8 }}} * 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 @@ -151, +237 @@ * 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_RC3 https://svn.apache.org/repos/asf/jmeter/tags/v2_7 + 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 = * Connect to people.apache.org in SSH * Go to RC dist repository (e.g. personal dir) {{{ - cd ~/public_html/jmeter-2.7RC3/dist + cd ~/public_html/jmeter-2.8RC1/dist }}} * Make sure that file group is set to jmeter (chgrp jmeter apache-jmeter*) {{{ @@ -167, +253 @@ }}} * 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.8_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.8.zip* /www/www.apache.org/dist/jmeter/binaries - cp apache-jmeter-2.7.tgz* /www/www.apache.org/dist/jmeter/binaries + cp apache-jmeter-2.8.tgz* /www/www.apache.org/dist/jmeter/binaries }}} * check files are visible and downloadable from www.apache.org (2+ hours) * http://www.apache.org/dist/jmeter/binaries/ * http://www.apache.org/dist/jmeter/source/ - * wait a day or so for mirrors to catch up + * '''wait a day''' or so for mirrors to catch up + + + = Update Site dist = * Checkout dist project on your computer @@ -186, +275 @@ * Optional, add your GPG public key to KEYS * Commit with svn {{{ - svn commit + svn commit -m "JMeter 2.8 release - Prepare update site" }}} * Login to people.apache.org in SSH * Go to dist dir: @@ -199, +288 @@ }}} = 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" + }}} * login to people.apache.org * Go to: @@ -209, +302 @@ * `svn switch http://svn.apache.org/repos/asf/jmeter/tags/vm_n_o/docs` * Example: {{{ - svn switch http://svn.apache.org/repos/asf/jmeter/branches/docs-2.7/docs + svn switch http://svn.apache.org/repos/asf/jmeter/branches/docs-2.8/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) @@ -218, +311 @@ {{{ cd /www/jmeter.apache.org/ rm -r /www/jmeter.apache.org/api - cd ~/public_html/jmeter-2.7RC3/docs + cd ~/public_html/jmeter-2.8RC1/docs cp -R api /www/jmeter.apache.org chmod -R g+w /www/jmeter.apache.org/api }}} @@ -228, +321 @@ * Go to [[https://repository.apache.org/|Apache Repository]] * Section '''Staging Repositories''' * Check the RC box, add click on Release button (see: [[https://docs.sonatype.org/display/Repository/Releasing+a+Staging+Repository|Release a staging repository]]) + * Comment: "JMeter 2.8 release" * You will receive a email with JMeter Maven Repo URLs * The main URL can be added to email announce @@ -236, +330 @@ '''Make sure: JMeter website is update AND download mirrors too.''' * update Wiki version details * update doap_JMeter.rdf details in trunk and commit + * + {{{ + svn commit -m "JMeter 2.8 release" + }}} * 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)