Author: buildbot
Date: Mon Dec 10 19:19:31 2012
New Revision: 841499

Log:
Staging update by buildbot for isis

Added:
    websites/staging/isis/trunk/content/contributors/verifying-releases.html
Modified:
    websites/staging/isis/trunk/cgi-bin/   (props changed)
    websites/staging/isis/trunk/content/   (props changed)
    websites/staging/isis/trunk/content/contributors/about.html
    websites/staging/isis/trunk/content/contributors/release-process.html
    websites/staging/isis/trunk/content/contributors/release-snapshot.html
    websites/staging/isis/trunk/content/documentation.html

Propchange: websites/staging/isis/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Dec 10 19:19:31 2012
@@ -1 +1 @@
-1419515
+1419680

Propchange: websites/staging/isis/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Dec 10 19:19:31 2012
@@ -1 +1 @@
-1419515
+1419680

Modified: websites/staging/isis/trunk/content/contributors/about.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/about.html (original)
+++ websites/staging/isis/trunk/content/contributors/about.html Mon Dec 10 
19:19:31 2012
@@ -198,7 +198,10 @@
 <ul>
 <li><a href="updating-the-cms-site.html">Updating the CMS site</a></li>
 <li><a href="release-snapshot.html">Release snapshot</a> [wip]</li>
-<li><a href="release-process.html">Release process</a> [wip]</li>
+<li><a href="release-process.html">Release process</a> [wip]
+<!--</li>
+<li><a href="verifying-releases.html">Verifying releases</a> [wip]
+--></li>
 <li><a href="key-generation.html">Key Generation</a></li>
 </ul>
 

Modified: websites/staging/isis/trunk/content/contributors/release-process.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/release-process.html 
(original)
+++ websites/staging/isis/trunk/content/contributors/release-process.html Mon 
Dec 10 19:19:31 2012
@@ -301,124 +301,662 @@ mvn clean install -o
 All remaining steps should be performed in the base directory of the module 
being released.
 </div></p>
 
-<h3>Code cleanup / formatting</h3>
+<!--
+- site builds ok
+
+
+
+8daeb02ea775a67d739f8b27afce0e56
+
+
+
+
+
+60f9fef3ce8fa7f4c9ac817ef6d43ba3
+
+
+
+
+74cd298b4ccd450e8e87b027b532ad2f
+
+
+
+Make sure that all source code has been cleaned up and formatted according to 
the Apache Isis and ASF conventions.  Full details are in [Isis coding 
conventions](coding-conventions.html).
+
+
+
+f762b180b7af28fab242c26d0c5f48b8
+
+
+
+The Apache Release Audit Tool `RAT` (from the [Apache 
Creadur](http://creadur.apache.org) project) checks for missing license header 
files.
+
+The parent `pom.xml` of each releasable module specifies the RAT Maven plugin, 
with a number of custom exclusions.
+
+To run the RAT tool, use:
+
+
+
+9c6ea6ce5e449ec8111b32d6271f5131
+
+
+
+where `rat.numUnapprovedLicenses` property is set to a high figure, 
temporarily overriding the default value of 0.  This will allow the command to 
run over all submodules, rather than failing after the first one.
+
+<div class="note">
+Do *not* use `mvn rat:check`; depending on your local Maven configuratoin this 
may bring down the obsolete `mvn-rat-plugin` from Codehaus repo.
+</div>
+
+All being well the command should complete.  For each failing submodule, it 
will have written out a `target\rat.txt`; missing license notes are indicated 
using the key `!???`.  You can collate these together using something like:
+
+
+34cc167261a1dd19efcf253f0f73de73
+
+
+
+Investigate and fix any reported violations, typically by either:
+
+
+
+d9f0f52c516be130c53e93535bd5980f
+
+
+To add missing headers, you can if you wish use the groovy script 
`addmissinglicenses.groovy` to automatically insert missing headers for certain 
file types.  The actual files checked are those with extensions specified in 
the line `def fileEndings = [".java", ".htm"]`:
+
+
+
+93bfa782cabaac71742021050c9e50cc
+
+
+b460e06e4a17f240d0e761b506f13641
+
+
+
+
+
+ed32a4e87365839d451b6b0cf3c405b5
+
+
+1896300a163310f827c151fb370939d7
+
+
+
+Once you've fixed all issues, confirm once more that `apache-rat-plugin` no 
longer reports any license violations, this time leaving the 
`rat.numUnapprovedLicenses` property to its default, 0:
+
+
+
+af6d53c19c7d372861554d4a4e414f96
+
+
+
+
+
+
+6148a0ccbf70a2dc3ec77678ce7d1b13
+
+
+
+Although Apache Isis has no dependencies which have incompatible licenses, the 
POMs for some of these dependencies (in the Maven central repo) do not 
necessarily contain the required license information.  Without appropriate 
additional configuration, this would result in the generated `DEPENDENCIES` 
file and generated Maven site indicating dependencies as having "unknown" 
licenses.
+
+Fortunately, Maven allows the missing information to be provided by 
configuring the `maven-remote-resources-plugin`.  This is stored in the 
`src/main/appended-resources/supplemental-models.xml` file in the parent 
`[oai:isis]` module.
+
+To capture the missing license information, use:
+
+
+
+8c71e43fd0463059c7b0fc3acaf5adca
 
-<p>Make sure that all source code has been cleaned up and formatted according 
to the Apache Isis and ASF conventions.  Full details are in <a 
href="coding-conventions.html">Isis coding conventions</a>.</p>
 
-<h2>License header notices (RAT tool)</h2>
 
-<p>The Apache Release Audit Tool <code>RAT</code> (from the <a 
href="http://creadur.apache.org";>Apache Creadur</a> project) checks for missing 
license header files.</p>
+This Maven plugin creates a `licensexml` file in the 
`target/generated-resources` directory of each module.
 
-<p>The parent <code>pom.xml</code> of each releasable module specifies the RAT 
Maven plugin, with a number of custom exclusions.</p>
+Then, run the following script (shown here relative to the `core` module).
 
-<p>To run the RAT tool, use:</p>
+
+
+417bbfc3142d352bf5241ba1acaae3c9
+
+
+
+This searches for all `licenses.xml` files, and compares them against the 
contents of the `supplemental-models.xml` file.   For example, the output could 
be something like:
+
+
+
+87975db852b62990bd1a4becc1a32fcf
+
+
+
+If any missing entries are listed or are spurious, then update 
`supplemental-models.xml` and try again.
+
+<div class="note">
+Ignore any missing license warnings for the TCK modules; this is a result of 
the TCK modules for the viewers (eg `bdd-concordion-tck`) depending on the TCK 
dom, fixtures etc.
+</div>
+
+
+
+
+ffda6510d6461f9b86dee513a96bdf4e
+
+
+
+In order to prepare a release, you must have a public/private key pair, and 
have configured Maven.  See the page on [key generation](key-generation.html) 
for more details.
+
+In order to prepare the release, you'll (need to) have a `~/.gnupg` directory 
with the relevant files (`gpg.conf`, `pubring.gpg`, `secring.gpg` etc).
+
+<div class="note">
+If on Windows, the equivalent directory is 
`c:\users\xxx\appdata\roaming\gnupg`.  For `gpg`, use either 
[cygwin.com](http://cygwin.com) or [gpg4win.org](http://www.gpg4win.org).  Note 
also that the mSysGit version of `gpg` (as provided by GitHub's bash client) is 
not compatible with that provided by cygwin.
+</div>
+
+
+<!--
+TODO: a section like this will be required when considering archetypes and/or 
maven sites.
+
+
+
+dd1e3819ad00060b111c7ca749b4855e
+
+
+
+There are a couple of locations where the version must be bumped up manually.
+-->
+
+<!--
+TODO: something equivalent to this will need to be documented for the 
archetype modules.
+
+
+
+ee6f07276c9cce1e49b88bfb3407c500
+
+
+
+The release plugin (used in the sections that follow) will automatically bump 
up the `<version>` of all of the POMs (first to remove the `-SNAPSHOT` prefix 
while the release is being cut, and then update to the next iterations 
`-SNAPSHOT` after that). However, what it doesn't do, unfortunately, is to 
update the `<isis.version>` property in the archetype resources for the 
quickstart archetype.
+
+Therefore, open up the `src/main/resources/archetype-resources/pom.xml` in the 
`oai:quickstart-archetype` module, and update the `<isis.version>` property:
+
+
+
+473a27b308c556ac2ee13a7c80e8c5fd
+
+
+Then commit the pom.xml file.
+-->
+
+<!--
+TODO: something like this will be need to be considered when we get Maven site 
running again.
+
+
+
+ec30588e92e313f15529ce85cb54a885
+
+
+
+The parent module's `site.xml` file defines the skin that is used by the 
parent module and every inheriting child module. Since the Maven release 
process does not automatically increment this version, it must be updated 
manually first.
+
+Therefore, open up the `src/site/site.xml` in the `oai.core:isis` parent 
module, and update the `<version>`:
+
+
+
+453e6e27e87ddbf1d60e5c755b787e7f
+
+
+Then commit the `site.xml` file.
+-->
+
+<h3>Dry-run</h3>
 
 <pre>
-mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=50 -o
+mvn release:prepare -P apache-release -D dryRun=true
 </pre>
 
-<p>where <code>rat.numUnapprovedLicenses</code> property is set to a high 
figure, temporarily overriding the default value of 0.  This will allow the 
command to run over all submodules, rather than failing after the first one.</p>
-
 <p><div class="note">
-Do <em>not</em> use <code>mvn rat:check</code>; depending on your local Maven 
configuratoin this may bring down the obsolete <code>mvn-rat-plugin</code> from 
Codehaus repo.
+Some modules might have additional profiles to be activated.  For example, the 
sql OS requires <code>-P apache-release,integration-tests</code> so that its 
integration tests are also run.
 </div></p>
 
-<p>All being well the command should complete.  For each failing submodule, it 
will have written out a <code>target\rat.txt</code>; missing license notes are 
indicated using the key <code>!???</code>.  You can collate these together 
using something like:</p>
+<p>This should generate something like:</p>
 
 <pre>
-for a in `find . -name rat.txt -print`; do grep '!???' $a; done
+$ mvn release:prepare -P apache-release -D dryRun=true
+[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Build Order:
+[INFO]
+[INFO] Apache Isis Core
+[INFO] Isis Core AppLib
+[INFO] Isis Core Unit Test Support
+[INFO] Isis Core MetaModel
+[INFO] Isis Core Runtime
+[INFO] Isis Core WebServer
+[INFO] Isis Core CgLib Bytecode
+[INFO] Isis Core Javassist Bytecode
+[INFO] Isis Core In-Memory ObjectStore
+[INFO] Isis Core In-memory ProfileStore
+[INFO] Isis Core No-op Security
+[INFO] Isis Core TCK App
+[INFO] Isis Core TCK DOM
+[INFO] Isis Core Integration Testing Support
+[INFO] Isis Core TCK Fixtures
+[INFO]
+[INFO] ------------------------------------------------------------------------
+[INFO] Building Apache Isis Core 0.3.1-SNAPSHOT
+[INFO] ------------------------------------------------------------------------
+[INFO]
+[INFO] --- maven-release-plugin:2.3.2:prepare (default-cli) @ isis ---
+[INFO] Resuming release from phase 'map-release-versions'
+What is the release version for "Apache Isis Core"? (org.apache.isis.core:isis)
+0.3.1: :
 </pre>
 
-<p>Investigate and fix any reported violations, typically by either:</p>
+<p>Then answer the next three questions, either accepting the offered values 
or overriding as required:</p>
 
-<ul>
-<li>adding genuinely missing license headers from Java (or other) source 
files, or</li>
-<li>updating the <code>&lt;excludes&gt;</code> element for the 
<code>apache-rat-plugin</code> plugin to ignore test files, log files and any 
other non-source code files
-<ul>
-<li>also look to remove any stale <code>&lt;exclude&gt;</code> entries</li>
-</ul></li>
-</ul>
+<pre>
+What is the release version for "Apache Isis Core"? (org.apache.isis.core:isis)
+0.3.1: :
+What is SCM release tag or label for "Apache Isis Core"? 
(org.apache.isis.core:i
+sis) isis-0.3.1: :
+What is the new development version for "Apache Isis Core"? 
(org.apache.isis.cor
+e:isis) 0.3.2-SNAPSHOT:
+</pre>
 
-<p>To add missing headers, you can if you wish use the groovy script 
<code>addmissinglicenses.groovy</code> to automatically insert missing headers 
for certain file types.  The actual files checked are those with extensions 
specified in the line <code>def fileEndings = [".java", ".htm"]</code>:</p>
+<p>The next step, assuming this completes successfully, is to re-run the 
command.  Before you do that, first delete the generated 
<code>release.properties</code> file:</p>
 
-<ul>
-<li>dry run:</li>
-</ul>
+<pre>
+rm release.properties
+</pre>
+
+<p><div class="note">
+The requirement to delete this file is a side-effect of using <code>mvn</code> 
with a decentralized version control system such <code>git</code> rather than 
with a centralized version control system such as <code>svn</code>
+</div></p>
+
+<p>Then, re-run the command, but without the <code>dryRun</code> flag.  You 
can also set the <code>skipTests</code> flag since they would have been run 
during the previous dry run:</p>
 
 <pre>
-groovy addmissinglicenses.groovy
+mvn release:prepare -P apache-release -D skipTests=true
 </pre>
 
+<h3>Post-prepare sanity check</h3>
+
+<p>You should end up with artifacts in your local repo with the new version 
<code>x.y.z</code>. There are then a couple of sanity checks that you can 
perform:</p>
+
 <ul>
-<li>or to actually execute:</li>
+<li>unzip the source-release ZIP and check it builds</p>
+
+<p>For example, if building core, then the ZIP file will be called 
<code>isis-x.y.z-source-release.zip</code> and should reside in 
<code>~/.m2/repository/org/apache/isis/core/isis/x.y.z</code> directory.</p>
+
+<p>Unzip in a new directory, and build (see Chapter 3, Building Isis from 
Source).</li>
+<li>Inspect the <code>DEPENDENCIES</code> file.</p>
+
+<p>This file should be in the root of the extracted ZIP. In particular, check 
that there are no category-x dependencies.</li>
 </ul>
 
+<!--
+TODO: for archetype projects
+* Use the locally built quickstart archetype to generate the application, and 
make sure that the generated application runs ok.
+
+mvn archetype:generate  \
+    -D groupId=com.mycompany \
+    -D artifactId=myapp \
+    -D archetypeCatalog=local \
+    -D archetypeGroupId=org.apache.isis \
+    -D archetypeArtifactId=quickstart-archetype \
+    -D archetypeVersion=0.x.x-incubating
+Check that the generated app's artifacts point to the correct version of Isis 
(specifically: without a -SNAPSHOT suffix), and runs as expected.
+-->
+
+<p>If you find problems and the release was performed on a branch, then just 
delete the branch and start over.</p>
+
+<h2>Upload Release for Voting</h2>
+
+<p>Once the release has been built locally, it should be uploaded for voting. 
This is done by deploying the Maven artifacts to a staging directory (this 
includes the source release ZIP file which will be voted upon).</p>
+
+<p>The Apache staging repository runs on Nexus server, hosted at <a 
href="https://repository.apache.org";>repository.apache.org</a>. The process of 
uploading will create a staging repository that is associated with the host (IP 
address) performing the release. Once the repository is staged, the newly 
created staging repository is "closed" in order to make it available to 
others.</p>
+
+<p>Before you start, make sure you've defined the staging repo in your local 
<code>~/.m2/settings.xml</code> file:</p>
+
 <pre>
-groovy addmissinglicenses.groovy -x
+&lt;settings&gt;
+  &lt;servers&gt;
+    &lt;!-- To publish a snapshot of some part of Maven --&gt;
+    &lt;server&gt;
+      &lt;id&gt;apache.releases.https&lt;/id&gt;
+      &lt;username&gt;xxxxxxx&lt;/username&gt;
+      &lt;password&gt;yyyyyyy&lt;/password&gt;
+    &lt;/server&gt;
+    ...
+  &lt;/servers&gt;
+  ...
+&lt;/settings&gt;
 </pre>
 
-<p>Once you've fixed all issues, confirm once more that 
<code>apache-rat-plugin</code> no longer reports any license violations, this 
time leaving the <code>rat.numUnapprovedLicenses</code> property to its 
default, 0:</p>
+<p>where <code>xxxxxxx</code> and <code>yyyyyyy</code> are your Apache LDAP 
username and password.   For more information, see these <a 
href="http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env";>ASF 
docs</a>.</p>
+
+<p><div class="note">
+It is also possible to configure to use <code>.ssh</code> secure keys, and 
thereby avoid hardcoding your Apache LDAP password into your 
<code>.m2/settings.xml</code> file. A description of how to do this can be 
found, for example, <a 
href="http://incubator.apache.org/bval/cwiki/release-setup.html";>here</a>.
+</div></p>
+
+<h3>Perform the Release</h3>
+
+<p>The command to stage the release is:</p>
 
 <pre>
-mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=0 -o
+mvn release:perform -P apache-release
+</pre>
 
-for a in `find . -name rat.txt -print`; do grep '!???' $a; done
+<p>The command starts off by checking out the codebase from the tag:</p>
+
+<pre>
+...
+[INFO] --- maven-release-plugin:2.3.2:perform (default-cli) @ isis ---
+[INFO] Performing a LOCAL checkout from 
scm:git:file:///C:\APACHE\isis-git-rw\co
+re
+[INFO] Checking out the project to perform the release ...
+[INFO] Executing: cmd.exe /X /C "git clone --branch isis-0.4.0 
file:///C:\APACHE
+\isis-git-rw\core C:\APACHE\isis-git-rw\core\target\checkout"
+[INFO] Working directory: C:\APACHE\isis-git-rw\core\target
+[INFO] Performing a LOCAL checkout from scm:git:file:///C:\APACHE\isis-git-rw
+[INFO] Checking out the project to perform the release ...
+[INFO] Executing: cmd.exe /X /C "git clone --branch isis-0.4.0 
file:///C:\APACHE
+\isis-git-rw C:\APACHE\isis-git-rw\core\target\checkout"
+[INFO] Working directory: C:\APACHE\isis-git-rw\core\target
+[INFO] Executing: cmd.exe /X /C "git ls-remote file:///C:\APACHE\isis-git-rw"
+[INFO] Working directory: C:\Users\ADMINI~1\AppData\Local\Temp
+[INFO] Executing: cmd.exe /X /C "git fetch file:///C:\APACHE\isis-git-rw"
+[INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
+[INFO] Executing: cmd.exe /X /C "git checkout isis-0.4.0"
+[INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
+[INFO] Executing: cmd.exe /X /C "git ls-files"
+[INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
+[INFO] Invoking perform goals in directory 
C:\APACHE\isis-git-rw\core\target\che
+ckout\core
+[INFO] Executing goals 'deploy'...
+...
 </pre>
 
-<h2>Missing License Check</h2>
+<p>All being well this command will complete successfully.</p>
+
+<h3>Check the Repository</h3>
+
+<p>If the mvn release:perform has worked then it will have put release 
artifacts into a newly created staging repository .</p>
+
+<p>Log onto <a href="http://repository.apache.org";>repository.apache.org</a> 
(using your ASF LDAP account) and check that the release has been staged:</p>
+
+<!--
+TODO: update screenshot
+-->
+
+<p><img 
src="http://incubator.apache.org/isis/docbkx/html/guide/images/release/nexus-staging-1.png";
 alt="" /></p>
+
+<p>If nothing appears in a staging repo you should stop here and work out 
why.</p>
+
+<p>Assuming that the repo has been populated, make a note of its repo id; this 
is needed for the voting thread. In the screenshot above the id is 
<code>org.apache.isis-008</code>.</p>
+
+<h3>Close the Repository</h3>
+
+<p>After checking that the staging repository contains the artifacts that you 
expect you should close the staging repository. This will make it available so 
that people can check the release.</p>
+
+<p>Press the Close button and complete the dialog:</p>
+
+<!--
+TODO: update screenshot
+-->
+
+<p><img 
src="http://incubator.apache.org/isis/docbkx/html/guide/images/release/nexus-staging-2.png";
 alt="" /></p>
+
+<p>All being well, the close should complete successfully:</p>
+
+<!--
+TODO: update screenshot
+-->
+
+<p><img 
src="http://incubator.apache.org/isis/docbkx/html/guide/images/release/nexus-staging-3.png";
 alt="" /></p>
 
-<p>Although Apache Isis has no dependencies which have incompatible licenses, 
the POMs for some of these dependencies (in the Maven central repo) do not 
necessarily contain the required license information.  Without appropriate 
additional configuration, this would result in the generated 
<code>DEPENDENCIES</code> file and generated Maven site indicating dependencies 
as having "unknown" licenses.</p>
+<p>The Nexus repository manager will also email you with confirmation of a 
successful close.</p>
 
-<p>Fortunately, Maven allows the missing information to be provided by 
configuring the <code>maven-remote-resources-plugin</code>.  This is stored in 
the <code>src/main/appended-resources/supplemental-models.xml</code> file in 
the parent <code>[oai:isis]</code> module.</p>
+<p>If Nexus has problems with the key signature, however, then the close will 
be aborted:</p>
 
-<p>To capture the missing license information, use:</p>
+<!--
+TODO: update screenshot
+-->
+
+<p><img 
src="http://incubator.apache.org/isis/docbkx/html/guide/images/release/nexus-staging-4.png";
 alt="" /></p>
+
+<p>Use <code>gpg --keyserver hkp://pgp.mit.edu --recv-keys nnnnnnnn</code> to 
confirm that the key is available.</p>
+
+<p><div class="note">
+Unfortunately, Nexus does not seem to allow subkeys to be used for signing. 
See <a href="key-generation.html">Key Generation</a> for more details.
+</div></p>
+
+<h3>Push changes</h3>
+
+<p>Finally, push your local branch to a new, similarly named branch on the 
central origin server:</p>
 
 <pre>
-mvn license:download-licenses
+git push -u origin release/x.y.z
 </pre>
 
-<p>This Maven plugin creates a <code>licensexml</code> file in the 
<code>target/generated-resources</code> directory of each module.</p>
+<h2>Voting</h2>
+
+<p>Once the artifacts have been uploaded, you can call a vote.</p>
+
+<p>In all cases, votes last for 72 hours and require a +3 (binding) vote from 
members.</p>
 
-<p>Then, run the following script (shown here relative to the 
<code>core</code> module).</p>
+<h3>Start voting thread on [email protected]</h3>
+
+<p>The following boilerplate is for a release of the Apache Isis 
<code>core</code>.  Adapt as required:</p>
+
+<p>Use the following subject:</p>
 
 <pre>
-groovy ../scripts/checkmissinglicenses.groovy
+[VOTE] Apache Isis Core release x.y.z
 </pre>
 
-<p>This searches for all <code>licenses.xml</code> files, and compares them 
against the contents of the <code>supplemental-models.xml</code> file.   For 
example, the output could be something like:</p>
+<p>And use the following body:</p>
 
 <pre>
-licenses to add to supplemental-models.xml:
+I've staged a release for Apache Isis Core, namely x.y.z.
+
+The artifacts have been staged to staging repository on repository.apache.org:
+* 
https://repository.apache.org/content/repositories/orgapacheisis-nnn/org/apache/isis/core/isis/x.y.z/isis-x.y.z-source-release.zip
 (zip file)
+* 
https://repository.apache.org/content/repositories/orgapacheisis-nnn/org/apache/isis/core/isis/x.y.z/isis-x.y.z-source-release.zip.asc
 (signature)
 
-[org.slf4j, slf4j-api, 1.5.7]
-[org.codehaus.groovy, groovy-all, 1.7.2]
+In the source code repo the code has been tagged as release/isis-x.y.z.
 
+Our website contains some suggestions of how to verify the release, see
+http://isis.apache.org/contributors/verifying-releases.html
 
-licenses to remove from supplemental-models.xml (are spurious):
+Please verify the release and cast your vote.  The vote will be open for 72 
hours.
 
-[org.slf4j, slf4j-api, 1.5.2]
+[ ] +1
+[ ]  0
+[ ] -1
 </pre>
 
-<p>If any missing entries are listed or are spurious, then update 
<code>supplemental-models.xml</code> and try again.</p>
+<p>12.6.2. Other contributors cast their vote</p>
 
-<p><div class="note">
-Ignore any missing license warnings for the TCK modules; this is a result of 
the TCK modules for the viewers (eg <code>bdd-concordion-tck</code>) depending 
on the TCK dom, fixtures etc.
-</div></p>
+<p>It is the responsibility of other contributors (or any ASF member) to cast 
their vote on the release. This section provides some guidance on this 
process.</p>
 
-<h2>Preparing a Release (<code>mvn release:prepare</code>)</h2>
+<p>12.6.2.1. Verifying the source release artifacts</p>
 
-<p>In order to prepare a release, you must have a public/private key pair, and 
have configured Maven.  See the page on <a href="key-generation.html">key 
generation</a> for more details.</p>
+<p>Download both the ZIP and .ASC files from the location specified in the 
voting email. To verify that the signature is correct, use:</p>
 
-<p><div class="note">
-... in progress ...
-</div></p>
+<p>gpg --verify isis-x.x.x-incubating.zip.asc isis-x.x.x-incubating.zip
+The ZIP file should then be unpacked.</p>
 
-<pre>
-git checkout
-</pre>
+<p>Once unpacked, it is recommended that voters at a minimum sanity check the 
contents, as per Section 12.1.2, “Sanity check”.</p>
+
+<p>In particular, when building locally, confirm that the versions in your 
local repository (~/.m2/repository/org/apache/isis) are correct.</p>
+
+<p>12.6.2.2. Verifying the binary release artifacts</p>
+
+<p>Optionally, voters can verify the binary releases (in the Maven staging 
repository). For this it is necessary to download each artifact from Nexus and 
its corresponding .ASC file. Since there are many such artifacts, we suggest 
you just choose one or two at random.</p>
+
+<p>12.6.2.3. Casting a Vote</p>
+
+<p>When the above checks have been made (and any other checks that the voter 
thinks is relevant), they should cast a vote by replying to the email thread 
above.</p>
+
+<p>12.6.3. After the isis-dev vote</p>
+
+<p>Once the vote has completed, post the results to the isis-dev mailing 
list.</p>
+
+<p>Use the following subject:</p>
+
+<p>[RESULT] [VOTE] Apache Isis release 0.x.x-incubating
+with the body:</p>
+
+<p>The vote has completed with the following result :</p>
+
+<p>+1 (binding): &lt;<list of names>>
+  +1 (non binding): &lt;<list of names>></p>
+
+<p>If the vote has been unsuccessful, then delete the branches and SVN tag, 
drop the staging repository, address the problems in trunk, and go again.</p>
+
+<p>12.7. Promoting Release to Distribution</p>
+
+<p>12.7.1. Release Binaries to Maven Central Repo</p>
+
+<p>From the Nexus pages, select the staging repository and select 'release' 
from the top menu.</p>
+
+<p>This moves the release artifacts into an Apache releases repository, from 
there they will be automatically moved to the Maven repository.</p>
+
+<p>12.7.2. Release Source Zip</p>
+
+<p>Releasing the source ZIP is a matter of copying the ZIP into the 
/www/www.apache.org/dist/incubator/isis directory on people.apache.org.</p>
+
+<p>Note</p>
+
+<p>There is an alternative and newer approach, namely to check in the release 
to subversion. At some stage these procedures will be updated to reflcet this 
newer approach.</p>
+
+<p>Assuming you've downloaded the ZIP file and signature file from the staging 
repo, and the dist directory already exists, use scp to copy the files up:</p>
+
+<p>scp isis-x.x.x-incubating-source-release.* 
people.apache.org:/www/www.apache.org/dist/incubator/isis/.
+12.7.3. Promote and update the Website</p>
+
+<p>To promote the site, first log onto people.apache.org. Then:</p>
+
+<p>switch to the website directory:</p>
+
+<p>$ cd /www/incubator.apache.org
+Either:</p>
+
+<p>move the previous site to one side:</p>
+
+<p>$ mv isis isis-0.x.w-incubating
+where 0.x.w is the previous version was uploaded</p>
+
+<p>or simply delete the site:</p>
+
+<p>$ rm -rf isis
+Move the new site into place, and for good measure touch every file to ensure 
it is picked up:</p>
+
+<p>$ mv isis-0.x.x-incubating isis
+$ find isis -exec touch {} \;
+Finally, check that the download links are valid, as specified in 
downloads.html. If there are any errors or adjustments, make them directly, but 
remember to apply the same changes back to the source tree for the next 
iteration.</p>
+
+<p>The new site should become available within a couple of hours.</p>
+
+<p>12.7.4. Announce the release</p>
+
+<p>Announce the release to [email protected] mailing list.</p>
+
+<p>Use the following subject:</p>
+
+<p>Subject: [ANN] Apache Isis version 0.x.x-incubating Released
+And use the following body (summarizing the main points as required):</p>
+
+<p>The Isis team is pleased to announce the release of Apache Isis version 
0.x.x-incubating</p>
+
+<p>http://incubator.apache.org/isis</p>
+
+<p>&lt;<summary of the main points of the release>></p>
+
+<p>Full release notes are available at [1] on the Isis website.</p>
+
+<p>You can access this release directly from the Maven central repo [2], use 
the Maven archetype to configure an initial project [3],
+or download the release and build it from source [4].</p>
+
+<p>Enjoy!</p>
+
+<p>-The Isis team</p>
+
+<p>[1] http://incubator.apache.org/isis/release-notes-0.x.x-incubating.html
+[2] http://search.maven.org
+[3] http://incubator.apache.org/isis/quickstart-app.html
+[4] http://incubator.apache.org/isis/downloads.html</p>
+
+<p>12.8. Prepare for next iteration</p>
+
+<p>12.8.1. Merge changes from branch back into trunk</p>
+
+<p>Because we release from a branch, the changes made in the branch (changes 
to pom.xml made automatically by the release-plugin, or any manual edits) 
should be merged back from the release branch back into trunk. There are two 
ways to do this:</p>
+
+<p>The "official" way is to use SVN's merge command for this (using the 
"reintegrate" flag):</p>
+
+<p>$ cd .../trunk/framework
+$ svn merge --reintegrate 
https://svn.apache.org/repos/asf/incubator/isis/branches/0.x.x-incubating/framework
 .
+$ svn commit -m "reintegrating release branch 0.x.x-incubating ready for next 
iteration"
+However, you will find that this is very slow (the merge command alone takes 
something like ~1 hour) and will generate a massive change set which also will 
take an age to commit.</p>
+
+<p>Alternatively, then, you may well find it easy to perform the edits 
manually:</p>
+
+<p>one option is to use a directory comparison tool such as Beyond Compare or 
WinMerge to compare the branch workspace with the trunk workspace.</p>
+
+<p>Set the tool's filters to compare only pom.xml files, because these are the 
only files that the release process in the branch will have updated and require 
merging in.</p>
+
+<p>or, you could use UNIX command line tools to perform an update.</p>
+
+<p>The following command will locate every pom.xml and perform in place 
updates, saving the original file to pom.xml.bak:</p>
+
+<p>find . -name pom.xml -exec sed -i.bak -e 's/0.1.0/0.2.0/g' {} \;
+The above works on Cygwin, too (though you may need to fully qualified the 
find command as /usr/bin/find).</p>
+
+<p>12.8.2. Manually update versions to snapshot versions</p>
+
+<p>After the release there are a couple of locations where the version must be 
bumped up manually to the next SNAPSHOT version.</p>
+
+<p>12.8.2.1. Update <version> in archetype resources</p>
+
+<p>Open up the src/main/resources/archetype-resources/pom.xml in the 
[oai:quickstart-archetype] module, and update the <isis.version> property:</p>
+
+<p><properties>
+    <isis.version>0.x.y-incubating-SNAPSHOT</isis.version>
+</properties>
+Then commit the pom.xml file.</p>
+
+<p>12.8.2.2. Update skin <version></p>
+
+<p>Open up the src/site/site.xml in the [oai:isis] parent module, and update 
the <version>:</p>
+
+<p><skin>
+    ...
+    <version>0.x.y-incubating-SNAPSHOT</version>
+</skin>
+Then commit the site.xml file.</p>
+
+<p>12.8.3. Update examples etc (source code outside of trunk/framework)</p>
+
+<p>Finally, remember that the version in the pom.xml for any modules that are 
not in the release - specifically those outside of trunk/framework, such as the 
examples and domain-libs modules - should be manually updated also.</p>
+
+<p>12.9. Update Isis Project Incusbation Status page</p>
+
+<p>Update the Isis Project Incubation Status page to capture the new status of 
the project. In particular:</p>
+
+<p>The News section should document the new release</p>
+
+<p>The Project Info section should be reviewed and updated if required</p>
+
+<p>Any links to missing Incubation status reports should be added</p>
+
+<p>The file is updated by checking out and editing the following file from 
SVN:</p>
+
+<p>https://svn.apache.org/repos/asf/incubator/public/trunk/site-author/projects/isis.xml</p>
+
+<p>For additional information, see this guidance on the incubator website.</p>
 
 <h2>Post-Release</h2>
 
+<h3>Merge changes back to mainline</h3>
+
+<p>TODO: to document.</p>
+
 <h3>Close All JIRA tickets for the release</h3>
 
 <p>All JIRA tickets for the release should be closed, or moved to future 
releases if not yet addressed.</p>
@@ -434,6 +972,16 @@ git checkout
 <li>a the core or component's about page, provide a link to release notes 
providing details of the contents of the release.</li>
 </ul>
 
+<!--
+
+
+1974efeb3c28e0c118cbc388807db0fe
+
+
+
+TODO: some sort of process required here...
+-->
+
 <h3>Update <code>STATUS</code> file</h3>
 
 <p>The trunk holds a <a 
href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=blob_plain;f=STATUS;hb=HEAD";>STATUS</a>
 file which is a brief summary of the current status of the project.  Update 
this file with details of the release.</p>

Modified: websites/staging/isis/trunk/content/contributors/release-snapshot.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/release-snapshot.html 
(original)
+++ websites/staging/isis/trunk/content/contributors/release-snapshot.html Mon 
Dec 10 19:19:31 2012
@@ -188,7 +188,7 @@
 This page is a work-in-progress; it needs to be updated with respect to the <a 
href="release-process.html">release process</a> for multiple releasable modules.
 </div></p>
 
-<p>The only prerequisites for performing a release is that the contributor has 
configured their environment. This involves updating your 
<code>~/.m2/settings.xml</code> file:</p>
+<p>Before you start, make sure you've defined the snapshots repo in your local 
<code>~/.m2/settings.xml</code> file:</p>
 
 <pre>
 &lt;settings&gt;
@@ -196,8 +196,8 @@ This page is a work-in-progress; it need
     &lt;!-- To publish a snapshot of some part of Maven --&gt;
     &lt;server&gt;
       &lt;id&gt;apache.snapshots.https&lt;/id&gt;
-      &lt;username&gt;xxx&lt;/username&gt;
-      &lt;password&gt;yyy&lt;/password&gt;
+      &lt;username&gt;xxxxxxx&lt;/username&gt;
+      &lt;password&gt;yyyyyyy&lt;/password&gt;
     &lt;/server&gt;
     ...
   &lt;/servers&gt;
@@ -205,9 +205,7 @@ This page is a work-in-progress; it need
 &lt;/settings&gt;
 </pre>
 
-<p>where <code>xxx</code> and <code>yyy</code> constitute your apache LDAP 
username and password.</p>
-
-<p>This information is as documented in the <a 
href="http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env";>ASF 
documentation</a>.</p>
+<p>where <code>xxxxxxx</code> and <code>yyyyyyy</code> are your Apache LDAP 
username and password.     For more information, see these <a 
href="http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env";>ASF 
docs</a>.</p>
 
 <p><div class="note">
 It is also possible to configure to use <code>.ssh</code> secure keys, and 
thereby avoid hardcoding your Apache LDAP password into your 
<code>.m2/settings.xml</code> file. A description of how to do this can be 
found, for example, <a 
href="http://incubator.apache.org/bval/cwiki/release-setup.html";>here</a>.

Added: websites/staging/isis/trunk/content/contributors/verifying-releases.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/verifying-releases.html 
(added)
+++ websites/staging/isis/trunk/content/contributors/verifying-releases.html 
Mon Dec 10 19:19:31 2012
@@ -0,0 +1,263 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title>Verifying Releases
</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script 
src="http://html5shim.googlecode.com/svn/trunk/html5.js";></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../bootstrap.css" rel="stylesheet">
+    <link href="./../prettify.css" rel="stylesheet">
+    <link href="./../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .stub,note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, 
from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, 
color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: 
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', 
endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 
0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  
"https://twitter.com/intent/tweet?url="+document.URL+"&text=Verifying Releases
",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" 
href="./../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" 
href="./../images/apple-touch-icon-114x114.png">
+
+    <script src="./../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../javascript/jquery-latest.js"></script>
+    <script src="http://platform.twitter.com/widgets.js"; 
type="text/javascript"></script>
+    <script src="./../javascript/common.js"></script>
+    <script src="./../javascript/prettyprint.js"></script>
+
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-2717626-1']);
+      _gaq.push(['_setDomainName', 'apache.org']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../index.html">Apache Isis</a>
+          <ul class="nav">
+            <li><a href="./../index.html">Home</a></li>
+            <li><a href="./../download.html">Download</a></li>
+            <li><a href="./../documentation.html">Documentation</a></li>
+            <li><a href="./../support.html">Support</a></li>
+          </ul>
+
+            <!-- Google CSE Search Box Begins -->
+            <div style="float: right; position: relative; ">
+          <form action="http://www.google.com/cse"; id="cse-search-box" 
_lpchecked="1">
+            <div>
+                <input type="hidden" name="cx" 
value="001500763902520246267:purt3m54z98">
+                <input type="hidden" name="ie" value="UTF-8">
+                <input type="text" name="q" size="31" style="border: 1px solid 
rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); 
background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                <input type="submit" name="sa" value="Search">
+            </div>
+            <input name="siteurl" type="hidden" 
value="incubator.apache.org/isis/">
+            <input name="ref" type="hidden" value="">
+            <input name="ss" type="hidden" value="677j458329j2">
+        </form>
+        </div>
+            <!-- Google CSE Search Box Ends -->
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a 
href="./../contributors/about.html">Contributors</a></p>
+<h1>Verifying Releases
+
+</h1>
+</div>
+
+<p>12.6.2. Other contributors cast their vote</p>
+
+<p>It is the responsibility of other contributors (or any ASF member) to cast 
their vote on the release. This section provides some guidance on this 
process.</p>
+
+<p>12.6.2.1. Verifying the source release artifacts</p>
+
+<p>Download both the ZIP and .ASC files from the location specified in the 
voting email. To verify that the signature is correct, use:</p>
+
+<p>gpg --verify isis-x.x.x-incubating.zip.asc isis-x.x.x-incubating.zip
+The ZIP file should then be unpacked.</p>
+
+<p>Once unpacked, it is recommended that voters at a minimum sanity check the 
contents, as per Section 12.1.2, ÎéÎíSanity checkÎéÎí.</p>
+
+<p>In particular, when building locally, confirm that the versions in your 
local repository (~/.m2/repository/org/apache/isis) are correct.</p>
+
+<p>12.6.2.2. Verifying the binary release artifacts</p>
+
+<p>Optionally, voters can verify the binary releases (in the Maven staging 
repository). For this it is necessary to download each artifact from Nexus and 
its corresponding .ASC file. Since there are many such artifacts, we suggest 
you just choose one or two at random.</p>
+
+<p>12.6.2.3. Casting a Vote</p>
+
+<p>When the above checks have been made (and any other checks that the voter 
thinks is relevant), they should cast a vote by replying to the email thread 
above.</p>
+
+<p>12.6.3. After the isis-dev vote</p>
+
+<p>Once the vote has completed, post the results to the isis-dev mailing 
list.</p>
+
+<p>Use the following subject:</p>
+
+<p>[RESULT] [VOTE] Apache Isis release 0.x.x-incubating
+with the body:</p>
+
+<p>The vote has completed with the following result :</p>
+
+<p>+1 (binding): &lt;<list of names>>
+  +1 (non binding): &lt;<list of names>></p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly 
appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to 
do much more than fix typos or links.  If you see a page that could benefit 
from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if 
we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in 
question, all editable content available from apache.org is presumed to be 
licensed under the Apache License (AL) version 2.0 and hence all submissions to 
apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and 
enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a 
href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))"
 class="btn">Yes</a>
+                <a 
href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))"
 class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
the Apache License, Version 2.0.
+        <br/>
+        Apache and the Apache feather logo are trademarks of The Apache 
Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Modified: websites/staging/isis/trunk/content/documentation.html
==============================================================================
--- websites/staging/isis/trunk/content/documentation.html (original)
+++ websites/staging/isis/trunk/content/documentation.html Mon Dec 10 19:19:31 
2012
@@ -240,7 +240,10 @@
 <ul>
 <li><a href="contributors/updating-the-cms-site.html">Updating the CMS 
site</a></li>
 <li><a href="contributors/release-snapshot.html">Release snapshot</a> 
[wip]</li>
-<li><a href="contributors/release-process.html">Release process</a> [wip]</li>
+<li><a href="contributors/release-process.html">Release process</a> [wip]
+<!--</li>
+<li><a href="contributors/verifying-releases.html">Verifying releases</a> [wip]
+--></li>
 <li><a href="contributors/key-generation.html">Key Generation</a>
 </div>
 </div>


Reply via email to