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