On 30 September 2012 13:12, Apache Wiki <[email protected]> wrote: > 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)
BTW, it's not necessary to update the page for every release ... > * 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 [email protected] distribution > + ant -Djmeter.version=2.8 [email protected] 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). This seems rather complicated. Surely it's only necessary to checkout the tag and expand the archive, and then use diff on them? > + > + 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 [email protected], [email protected] > * Double check all URL in email announce! > * also copy to announce AT ao (has to be sent from an ao e-mail address)
