jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Milamber <milam...@apache.org>
Subject Re: [Jmeter Wiki] Update of "ReleaseCreation" by Milamber
Date Mon, 01 Oct 2012 07:03:26 GMT


Le 30/09/2012 22:25, sebb a ecrit :
> On 30 September 2012 13:12, Apache Wiki<wikidiffs@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)


Mime
View raw message