You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by sebb <se...@gmail.com> on 2012/10/01 00:25:46 UTC
Re: [Jmeter Wiki] Update of "ReleaseCreation" by Milamber
On 30 September 2012 13:12, Apache Wiki <wi...@apache.org> 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 -Duser.name=username@apache.org distribution
> + ant -Djmeter.version=2.8 -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
> @@ -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 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)
Re: [Jmeter Wiki] Update of "ReleaseCreation" by Milamber
Posted by Milamber <mi...@apache.org>.
Le 30/09/2012 22:25, sebb a ecrit :
> On 30 September 2012 13:12, Apache Wiki<wi...@apache.org> 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 -Duser.name=username@apache.org distribution
>> + ant -Djmeter.version=2.8 -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
>> @@ -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?
The diff (tag export vs src.tgz) results is:
$ diff -r jmeter_v2_8_RC1/ apache-jmeter-2.8
Only in jmeter_v2_8_RC1/bin: heapdump.cmd
Only in jmeter_v2_8_RC1/bin: heapdump.sh
Only in jmeter_v2_8_RC1/: doap_JMeter.rdf
Only in jmeter_v2_8_RC1/: docs
Only in jmeter_v2_8_RC1/lib: api
Only in jmeter_v2_8_RC1/lib: doc
Only in jmeter_v2_8_RC1/lib: ext
Only in jmeter_v2_8_RC1/lib: junit
Only in jmeter_v2_8_RC1/: rat-excludes.txt
Only in jmeter_v2_8_RC1/: STATUS
Seems be complementary to the git test. I can add this in wiki page.
The check section in this wiki page can be updated with some simplest
tests if you know.
>
>> +
>> + 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)