You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/03/08 00:00:39 UTC

[41/44] isis-site git commit: ISIS-1594: provide an 'edit' button

http://git-wip-us.apache.org/repos/asf/isis-site/blob/83a3755a/content/guides/cgcom.html
----------------------------------------------------------------------
diff --git a/content/guides/cgcom.html b/content/guides/cgcom.html
index 90f050b..cdfb151 100644
--- a/content/guides/cgcom.html
+++ b/content/guides/cgcom.html
@@ -1,12 +1,10 @@
 <!doctype html>
 <html class="no-js" lang="en">
-<head>
-    <meta charset="utf-8"/>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
-
-    <title>Committers' Guide</title>
-
-    <!--
+ <head> 
+  <meta charset="utf-8"> 
+  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
+  <title>Committers' Guide</title> 
+  <!--
         Licensed to the Apache Software Foundation (ASF) under one
         or more contributor license agreements.  See the NOTICE file
         distributed with this work for additional information
@@ -23,31 +21,21 @@
         KIND, either express or implied.  See the License for the
         specific language governing permissions and limitations
         under the License.
-    -->
-
-    <!-- No caching headers -->
-    <meta http-equiv="cache-control" content="no-cache" />
-    <meta http-equiv="pragma" content="no-cache" />
-    <meta http-equiv="expires" content="-1" />
-
-
-    <!-- TODO: need to (re)instate CDN in the future (not using for now just so can develop off-line -->
-    <link href="../css/foundation/5.5.1/foundation.css" rel="stylesheet" />
-    <script src="../js/foundation/5.5.1/vendor/modernizr.js"></script>
-    <link href="../css/asciidoctor/colony.css" rel="stylesheet">
-    <link href="../css/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
-
-
-
-
-    <link href="../css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.css" rel="stylesheet" />
-    <!--[if lt IE 9]>
+    --> 
+  <!-- No caching headers --> 
+  <meta http-equiv="cache-control" content="no-cache"> 
+  <meta http-equiv="pragma" content="no-cache"> 
+  <meta http-equiv="expires" content="-1"> 
+  <!-- TODO: need to (re)instate CDN in the future (not using for now just so can develop off-line --> 
+  <link href="../css/foundation/5.5.1/foundation.css" rel="stylesheet"> 
+  <script src="../js/foundation/5.5.1/vendor/modernizr.js"></script> 
+  <link href="../css/asciidoctor/colony.css" rel="stylesheet"> 
+  <link href="../css/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"> 
+  <link href="../css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.css" rel="stylesheet"> 
+  <!--[if lt IE 9]>
       <link href="../css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.ie.css" rel="stylesheet" />
-    <![endif]-->
-
-
-
-    <style type="text/css">
+    <![endif]--> 
+  <style type="text/css">
         pre code {
             background-color: inherit;
             border-style: none;
@@ -192,9 +180,8 @@ table.CodeRay td.code>pre{padding:0}
         color:#fff;
         font-size: 1.1em;
     }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         @media only screen and (min-width: 40.063em) {
           .top-bar {
             .contain-to-grid .top-bar {
@@ -205,9 +192,8 @@ table.CodeRay td.code>pre{padding:0}
         .row {
             max-width: 80rem;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         .extended-quote,
         .extended-quote-first {
             margin-left: 40px;
@@ -231,9 +217,8 @@ table.CodeRay td.code>pre{padding:0}
             text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
         }
         
-    </style>
-
-    <style>
+    </style> 
+  <style>
         body {
           position: relative;
         }
@@ -255,6 +240,7 @@ table.CodeRay td.code>pre{padding:0}
 
         div#doc-content {
             margin-top: 30px;
+            padding-top: 30px;
         }
 
         div.documentation-page table.frame-all {
@@ -286,9 +272,8 @@ table.CodeRay td.code>pre{padding:0}
             min-height: 2000px;
         }
 
-    </style>
-
-    <style>
+    </style> 
+  <style>
 
         @media only screen and (min-width: 768px) {
           #toc.toc2 ul ul { margin-left: -10px; }
@@ -316,15 +301,13 @@ table.CodeRay td.code>pre{padding:0}
         body div#toc2 li.tocify-item.active a {
             color: red;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         footer {
             margin-top: 1000px;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         /* overriding colony.css stylesheet */
         .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] {
            /*padding: 1.25em 1.5625em 1.125em 1.5625em;*/
@@ -372,9 +355,8 @@ table.CodeRay td.code>pre{padding:0}
         .imageblock img {
             margin-bottom: 10px;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         /* from http://ben.balter.com/2014/03/13/pages-anchor-links/ */
         .header-link {
           position: absolute;
@@ -395,9 +377,8 @@ table.CodeRay td.code>pre{padding:0}
         h6:hover .header-link {
           opacity: 1;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         .top-bar
         {
             -webkit-transition-duration: .5s;
@@ -425,273 +406,196 @@ table.CodeRay td.code>pre{padding:0}
             -webkit-transition-property: -webkit-transform;
             transition-property: transform;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
         #doc-content a.guide {
             color: white;
         }
-    </style>
-
-    <style>
+    </style> 
+  <style>
+        .tocify {
+            margin-top: 80px;
+        }
+    </style> 
+  <style>
         .tocify {
             margin-top: 80px;
         }
-    </style>
-
-
-</script>
-
-</head>
-<body>
-
-<<div class="github-fork-ribbon-wrapper right" style="position: fixed;">
-    <div class="github-fork-ribbon">
-        <a href="https://github.com/apache/isis#fork-destination-box">Fork me on GitHub</a>
-    </div>
-</div>
-
-
-<div class="row">
-
-    <div class="fixed contain-to-grid header">
-        <nav class="top-bar" data-topbar role="navigation" style="max-width: 80rem">
-            <ul class="title-area">
-                <li class="name">
-                    <h1>
-                        <a href="/index.html">Apache Isis&trade;</a>
-                    </h1>
-                </li>
-                <!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
-                <li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
-            </ul>
-
-            <section class="top-bar-section">
-                <ul class="right">
-
-                    <li class="has-form">
-                       <FORM class="searchbox navbar-form navbar-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
-                        <div class="row collapse">
-                            <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
-                            <INPUT type="hidden" name="cof" value="FORID:0">
-                            <INPUT class="form-control" name="q" type="text" placeholder="Search">
-                        </div>
-                    </FORM>
-                     </li>
-
-                </ul>
-
-                <!-- Left Nav Section -->
-                <ul class="left">
-
-                    <li><a href="/documentation.html">Documentation</a></li>
-                    <li><a href="/downloads.html">Downloads</a></li>
-                    <li><a href="/help.html">Help</a></li>
-                    <li><a href="/asf.html">@ASF</a></li>
-
-                </ul>
-
-            </section>
-        </nav>
-    </div>
-</div>
-
-<div class="row">
-
-    <div id="doc-content-left" class="large-9 medium-9 columns">
-
-
-        <div id="doc-content">
-          <div class="sect1">
-<h2 id="_cgcom">1. Committers' Guide</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>This committers' guide is for committers of Apache Isis itself who want guidance on release process, publishing documents and other related procedures.</p>
-</div>
-<div class="sect2">
-<h3 id="_other_guides">1.1. Other Guides</h3>
-<div class="paragraph">
-<p>Apache Isis documentation is broken out into a number of user, reference and "supporting procedures" guides.</p>
-</div>
-<div class="paragraph">
-<p>The user guides available are:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="ugfun.html">Fundamentals</a></p>
-</li>
-<li>
-<p><a href="ugvw.html">Wicket viewer</a></p>
-</li>
-<li>
-<p><a href="ugvro.html">Restful Objects viewer</a></p>
-</li>
-<li>
-<p><a href="ugdno.html">DataNucleus object store</a></p>
-</li>
-<li>
-<p><a href="ugsec.html">Security</a></p>
-</li>
-<li>
-<p><a href="ugtst.html">Testing</a></p>
-</li>
-<li>
-<p><a href="ugbtb.html">Beyond the Basics</a></p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>The reference guides are:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="rgant.html">Annotations</a></p>
-</li>
-<li>
-<p><a href="rgsvc.html">Domain Services</a></p>
-</li>
-<li>
-<p><a href="rgcfg.html">Configuration Properties</a></p>
-</li>
-<li>
-<p><a href="rgcms.html">Classes, Methods and Schema</a></p>
-</li>
-<li>
-<p><a href="rgmvn.html">Apache Isis Maven plugin</a></p>
-</li>
-<li>
-<p><a href="rgfis.html">Framework Internal Services</a></p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>The remaining guides are:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="dg.html">Developers' Guide</a> (how to set up a development environment for Apache Isis and contribute back to the project)</p>
-</li>
-<li>
-<p><a href="#">Committers' Guide</a> (this guide)</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>This guide provides guidance for Apache Isis' own committers.</p>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_cgcom_merging-a-pull-request">2. Merging a Pull Request</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>The process for merging in github pull requests (so that they can be tested locally before committing) has been scripted in the <code>github-pr.sh</code> script.</p>
-</div>
-<div class="paragraph">
-<p>The script will merge the fork into a temporary branch, and then run a build.  Once you are happy, you can commit.</p>
-</div>
-<div class="sect2">
-<h3 id="_process_and_usage">2.1. Process and Usage</h3>
-<div class="paragraph">
-<p>The overall process is as follows:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>locate/raise corresponding JIRA ticket, eg ISIS-1162</p>
-</li>
-<li>
-<p>checkout branch from which PR was forked (usually just 'master')</p>
-</li>
-<li>
-<p>merge PR into temporary branch using the <code>github-pr.sh</code> script</p>
-</li>
-<li>
-<p>test the change locally (run the app, rebuild, manual regression tests etc)</p>
-</li>
-<li>
-<p>if required, tidy up/refactor code as required</p>
-</li>
-<li>
-<p>merge temporary branch into mainline, and commit</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>This <a href="https://youtu.be/CKSLZBBHjME">screencast</a> also shows the process.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_prerequisites">2.2. Prerequisites</h3>
-<div class="paragraph">
-<p>The script uses 'jq' to parse JSON.  To install:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>on Linux:<br></p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">aptitude install jq</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>on MacOS:<br></p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">brew install jq</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>on Windows:<br></p>
-<div class="paragraph">
-<p>Download exe from <a href="http://stedolan.github.io/jq/download/">website</a></p>
-</div>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_syntax">2.3. Syntax</h3>
-<div class="paragraph">
-<p>The syntax is:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">github-pr.sh isis 1162 31</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>where:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p><code>isis</code> is the JIRA project and repo</p>
-</li>
-<li>
-<p><code>1162</code> is the JIRA ticket number</p>
-</li>
-<li>
-<p><code>31</code>   is the gthub PR issue number</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_example_transcript">2.4. Example transcript</h3>
-<div class="paragraph">
-<p>The listing below shows the steps taken by the script:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">$ sh github-pr.sh isis 1162 31
+    </style>  
+ </head> 
+ <body> 
+  <div class="row"> 
+   <div class="fixed contain-to-grid header"> 
+    <nav class="top-bar" data-topbar role="navigation" style="max-width: 80rem"> 
+     <ul class="title-area"> 
+      <li class="name"> <h1> <a href="/index.html">Apache Isis\u2122</a> </h1> </li> 
+      <!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone --> 
+      <li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li> 
+     </ul> 
+     <section class="top-bar-section"> 
+      <ul class="right"> 
+       <li class="has-form"> 
+        <form class="searchbox navbar-form navbar-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse"> 
+         <div class="row collapse"> 
+          <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya"> 
+          <input type="hidden" name="cof" value="FORID:0"> 
+          <input class="form-control" name="q" type="text" placeholder="Search"> 
+         </div> 
+        </form> </li> 
+      </ul> 
+      <!-- Left Nav Section --> 
+      <ul class="left"> 
+       <li><a href="/documentation.html">Documentation</a></li> 
+       <li><a href="/downloads.html">Downloads</a></li> 
+       <li><a href="/help.html">Help</a></li> 
+       <li><a href="/asf.html">@ASF</a></li> 
+      </ul> 
+     </section> 
+    </nav> 
+   </div> 
+  </div> 
+  <div class="row"> 
+   <div id="doc-content-left" class="large-9 medium-9 columns"> 
+    <div id="doc-content">
+     <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/cgcom.adoc&quot;" style="float: right; font-size: small; padding: 6px;  "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
+     <div class="sect1"> 
+      <h2 id="_cgcom">1. Committers' Guide</h2>
+      <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_cgcom.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
+      <div class="sectionbody"> 
+       <div class="paragraph"> 
+        <p>This committers' guide is for committers of Apache Isis itself who want guidance on release process, publishing documents and other related procedures.</p> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_other_guides">1.1. Other Guides</h3> 
+        <div class="paragraph"> 
+         <p>Apache Isis documentation is broken out into a number of user, reference and "supporting procedures" guides.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The user guides available are:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p><a href="ugfun.html">Fundamentals</a></p> </li> 
+          <li> <p><a href="ugvw.html">Wicket viewer</a></p> </li> 
+          <li> <p><a href="ugvro.html">Restful Objects viewer</a></p> </li> 
+          <li> <p><a href="ugdno.html">DataNucleus object store</a></p> </li> 
+          <li> <p><a href="ugsec.html">Security</a></p> </li> 
+          <li> <p><a href="ugtst.html">Testing</a></p> </li> 
+          <li> <p><a href="ugbtb.html">Beyond the Basics</a></p> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The reference guides are:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p><a href="rgant.html">Annotations</a></p> </li> 
+          <li> <p><a href="rgsvc.html">Domain Services</a></p> </li> 
+          <li> <p><a href="rgcfg.html">Configuration Properties</a></p> </li> 
+          <li> <p><a href="rgcms.html">Classes, Methods and Schema</a></p> </li> 
+          <li> <p><a href="rgmvn.html">Apache Isis Maven plugin</a></p> </li> 
+          <li> <p><a href="rgfis.html">Framework Internal Services</a></p> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The remaining guides are:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p><a href="dg.html">Developers' Guide</a> (how to set up a development environment for Apache Isis and contribute back to the project)</p> </li> 
+          <li> <p><a href="#">Committers' Guide</a> (this guide)</p> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>This guide provides guidance for Apache Isis' own committers.</p> 
+        </div> 
+       </div> 
+      </div> 
+     </div> 
+     <div class="sect1"> 
+      <h2 id="_cgcom_merging-a-pull-request">2. Merging a Pull Request</h2>
+      <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_cgcom_merging-a-pull-request.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
+      <div class="sectionbody"> 
+       <div class="paragraph"> 
+        <p>The process for merging in github pull requests (so that they can be tested locally before committing) has been scripted in the <code>github-pr.sh</code> script.</p> 
+       </div> 
+       <div class="paragraph"> 
+        <p>The script will merge the fork into a temporary branch, and then run a build. Once you are happy, you can commit.</p> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_process_and_usage">2.1. Process and Usage</h3> 
+        <div class="paragraph"> 
+         <p>The overall process is as follows:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p>locate/raise corresponding JIRA ticket, eg ISIS-1162</p> </li> 
+          <li> <p>checkout branch from which PR was forked (usually just 'master')</p> </li> 
+          <li> <p>merge PR into temporary branch using the <code>github-pr.sh</code> script</p> </li> 
+          <li> <p>test the change locally (run the app, rebuild, manual regression tests etc)</p> </li> 
+          <li> <p>if required, tidy up/refactor code as required</p> </li> 
+          <li> <p>merge temporary branch into mainline, and commit</p> </li> 
+         </ul> 
+        </div> 
+        <div class="paragraph"> 
+         <p>This <a href="https://youtu.be/CKSLZBBHjME">screencast</a> also shows the process.</p> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_prerequisites">2.2. Prerequisites</h3> 
+        <div class="paragraph"> 
+         <p>The script uses 'jq' to parse JSON. To install:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p>on Linux:<br></p> 
+           <div class="listingblock"> 
+            <div class="content"> 
+             <pre class="CodeRay highlight"><code data-lang="bash">aptitude install jq</code></pre> 
+            </div> 
+           </div> </li> 
+          <li> <p>on MacOS:<br></p> 
+           <div class="listingblock"> 
+            <div class="content"> 
+             <pre class="CodeRay highlight"><code data-lang="bash">brew install jq</code></pre> 
+            </div> 
+           </div> </li> 
+          <li> <p>on Windows:<br></p> 
+           <div class="paragraph"> 
+            <p>Download exe from <a href="http://stedolan.github.io/jq/download/">website</a></p> 
+           </div> </li> 
+         </ul> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_syntax">2.3. Syntax</h3> 
+        <div class="paragraph"> 
+         <p>The syntax is:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">github-pr.sh isis 1162 31</code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>where:</p> 
+        </div> 
+        <div class="ulist"> 
+         <ul> 
+          <li> <p><code>isis</code> is the JIRA project and repo</p> </li> 
+          <li> <p><code>1162</code> is the JIRA ticket number</p> </li> 
+          <li> <p><code>31</code> is the gthub PR issue number</p> </li> 
+         </ul> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_example_transcript">2.4. Example transcript</h3> 
+        <div class="paragraph"> 
+         <p>The listing below shows the steps taken by the script:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">$ sh github-pr.sh isis 1162 31
 
 Found JIRA ticket
 Found github PR
@@ -716,97 +620,88 @@ Merge made by the 'recursive' strategy.
  .../apache/isis/security/shiro/IsisLdapRealm.java  | 198 +++++++++++++++++++--
  2 files changed, 186 insertions(+), 15 deletions(-)
 
-Merged the PR; hit enter to build</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The build now commences.  Once done, the script continues:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">If build successful and happy to merge, execute:
-
-git checkout master &amp;&amp; git merge --no-ff ISIS-1162_pr-31 &amp;&amp; git branch -d ISIS-1162_pr-31</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The screenshot belows shows the history we end up with:</p>
-</div>
-<div class="imageblock">
-<div class="content">
-<a class="image" href="images/committers/github-pr-history.png"><img src="images/committers/github-pr-history.png" alt="github pr history"></a>
-</div>
-</div>
-<div class="paragraph">
-<p>This shows the fork being merged into the temporary branch ("ISIS-1162_pr-31"), then some further tidy-up, and finally the merging of the temporary branch into mainline.</p>
-</div>
-<div class="paragraph">
-<p>Note that there is no rebasing in this model.  This is intentional: when the merged branch is pushed, github will automatically close the original pull request.</p>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_cgcom_cutting-a-release">3. Cutting a Release</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>The release process consists of:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>the release manager cutting the release (documented below)</p>
-</li>
-<li>
-<p>Members of the Apache Isis PMC <a href="#_cgcom_verifying-releases">verifying</a> and voting on the release</p>
-</li>
-<li>
-<p>the release manager performing post-release tasks, for either a <a href="#_cgcom_post-release-successful">successful</a> or an <a href="#_cgcom_post-release-unsuccessful">unsuccessful</a> vote.</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>Apache Isis itself consists of two separately releasable modules; relative to the <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=tree">source code root</a> there are:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p><code>core</code></p>
-</li>
-<li>
-<p><code>component/example/archetypes/simpleapp</code></p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>This section details the process for formally releasing Isis modules.  It describes the process for both <code>core</code> and then the archetype.  The subsequent sections describe how other committers can <a href="#_cgcom_verifying-releases">verify a release</a> and how the release manager can then perform <a href="#_cgcom_post-release">post-release</a> activities and set up for the next development iteration.</p>
-</div>
-<div class="paragraph">
-<p>If you&#8217;ve not performed a release before, then note that there are some configuration <a href="#_cgcom_release-process-prereqs">prerequisites</a> that must be configured first.  In particular, you&#8217;ll need signed public/private keys, and the ASF Nexus staging repo inlocal <code>~/.m2/settings.xml</code> file.</p>
-</div>
-<div class="paragraph">
-<p>These release notes using bash command line tools.  They should work on Linux and MacOS; for Windows, use mSysGit.</p>
-</div>
-<div class="sect2">
-<h3 id="_cgcom_cutting-a-release_obtain-consensus">3.1. Obtain Consensus</h3>
-<div class="paragraph">
-<p>Before releasing <code>core</code>, ensure there is consensus on the <a href="../support.html">dev mailing list</a> that this is the right time for a release. The discussion should include confirming the version number to be used, and to confirm content.</p>
-</div>
-<div class="paragraph">
-<p>These discussions should also confirm the version number of the module being released. This should be in line with our <a href="#_cgcom_versioning-policy">semantic versioning policy</a>.</p>
-</div>
-<div class="paragraph">
-<p>Make sure you have a JIRA ticket open against which to perform all commits.  In most cases a JIRA ticket will have been created at the beginning of the previous release cycle.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_cgcom_cutting-a-release_set-environment-variables">3.2. Set environment variables</h3>
-<div class="paragraph">
-<p>We use environment variables to parameterize as many of the steps as possible.  For example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cd core
+Merged the PR; hit enter to build</code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The build now commences. Once done, the script continues:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">If build successful and happy to merge, execute:
+
+git checkout master &amp;&amp; git merge --no-ff ISIS-1162_pr-31 &amp;&amp; git branch -d ISIS-1162_pr-31</code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The screenshot belows shows the history we end up with:</p> 
+        </div> 
+        <div class="imageblock"> 
+         <div class="content"> 
+          <a class="image" href="images/committers/github-pr-history.png"><img src="images/committers/github-pr-history.png" alt="github pr history"></a> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>This shows the fork being merged into the temporary branch ("ISIS-1162_pr-31"), then some further tidy-up, and finally the merging of the temporary branch into mainline.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Note that there is no rebasing in this model. This is intentional: when the merged branch is pushed, github will automatically close the original pull request.</p> 
+        </div> 
+       </div> 
+      </div> 
+     </div> 
+     <div class="sect1"> 
+      <h2 id="_cgcom_cutting-a-release">3. Cutting a Release</h2>
+      <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_cgcom_cutting-a-release.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
+      <div class="sectionbody"> 
+       <div class="paragraph"> 
+        <p>The release process consists of:</p> 
+       </div> 
+       <div class="ulist"> 
+        <ul> 
+         <li> <p>the release manager cutting the release (documented below)</p> </li> 
+         <li> <p>Members of the Apache Isis PMC <a href="#_cgcom_verifying-releases">verifying</a> and voting on the release</p> </li> 
+         <li> <p>the release manager performing post-release tasks, for either a <a href="#_cgcom_post-release-successful">successful</a> or an <a href="#_cgcom_post-release-unsuccessful">unsuccessful</a> vote.</p> </li> 
+        </ul> 
+       </div> 
+       <div class="paragraph"> 
+        <p>Apache Isis itself consists of two separately releasable modules; relative to the <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=tree">source code root</a> there are:</p> 
+       </div> 
+       <div class="ulist"> 
+        <ul> 
+         <li> <p><code>core</code></p> </li> 
+         <li> <p><code>component/example/archetypes/simpleapp</code></p> </li> 
+        </ul> 
+       </div> 
+       <div class="paragraph"> 
+        <p>This section details the process for formally releasing Isis modules. It describes the process for both <code>core</code> and then the archetype. The subsequent sections describe how other committers can <a href="#_cgcom_verifying-releases">verify a release</a> and how the release manager can then perform <a href="#_cgcom_post-release">post-release</a> activities and set up for the next development iteration.</p> 
+       </div> 
+       <div class="paragraph"> 
+        <p>If you\u2019ve not performed a release before, then note that there are some configuration <a href="#_cgcom_release-process-prereqs">prerequisites</a> that must be configured first. In particular, you\u2019ll need signed public/private keys, and the ASF Nexus staging repo inlocal <code>~/.m2/settings.xml</code> file.</p> 
+       </div> 
+       <div class="paragraph"> 
+        <p>These release notes using bash command line tools. They should work on Linux and MacOS; for Windows, use mSysGit.</p> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_cgcom_cutting-a-release_obtain-consensus">3.1. Obtain Consensus</h3> 
+        <div class="paragraph"> 
+         <p>Before releasing <code>core</code>, ensure there is consensus on the <a href="../support.html">dev mailing list</a> that this is the right time for a release. The discussion should include confirming the version number to be used, and to confirm content.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>These discussions should also confirm the version number of the module being released. This should be in line with our <a href="#_cgcom_versioning-policy">semantic versioning policy</a>.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Make sure you have a JIRA ticket open against which to perform all commits. In most cases a JIRA ticket will have been created at the beginning of the previous release cycle.</p> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_cgcom_cutting-a-release_set-environment-variables">3.2. Set environment variables</h3> 
+        <div class="paragraph"> 
+         <p>We use environment variables to parameterize as many of the steps as possible. For example:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">cd core
 export ISISTMP=/c/tmp                               <i class="conum" data-value="1"></i><b>(1)</b>
 export ISISDEV=1.16.0-SNAPSHOT
 export ISISREL=1.15.0
@@ -815,321 +710,309 @@ export ISISBRANCH=release-$ISISREL-$ISISRC
 export ISISJIRA=ISIS-9999                           <i class="conum" data-value="2"></i><b>(2)</b>
 export CATALINA_HOME=/c/java/apache-tomcat-8.0.30   <i class="conum" data-value="3"></i><b>(3)</b>
 
-env | grep ISIS | sort</code></pre>
-</div>
-</div>
-<div class="colist arabic">
-<table>
-<tr>
-<td><i class="conum" data-value="1"></i><b>1</b></td>
-<td>adjust by platform</td>
-</tr>
-<tr>
-<td><i class="conum" data-value="2"></i><b>2</b></td>
-<td>set to an "umbrella" ticket for all release activities.  (One should exist already, <a href="#_cgcom_post-release-successful_update-jira_create-new-jira">created at</a> the beginning of the development cycle now completing).</td>
-</tr>
-<tr>
-<td><i class="conum" data-value="3"></i><b>3</b></td>
-<td>adjust as required (Tomcat is used to smoke test the simpleapp archetype)</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Obviously, alter <code>$ISISDEV</code> and <code>$ISISREL</code> as required, and bump <code>$ISISRC</code> for re-releasing following an <a href="#_cgcom_post-release-unsuccessful">unsuccessful</a> releases.</p>
-</div>
-<div class="admonitionblock important">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-important" title="Important"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>Note that the branch name is <strong>not</strong> the same any of the eventual tag names (eg <code>isis-1.15.0</code> or <code>simpleapp-archetype-1.15.0</code>).</p>
-</div>
-<div class="paragraph">
-<p>If they did have the same name, then what would happen is that the <code>maven-release-plugin</code> would checkout the (HEAD of the) branch and thus upload a SNAPSHOT to the snapshot repository.  What it should of course do is checkout the tag and then upload that to the release staging repository.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_cgcom_cutting-a-release_pull-down-code-to-release">3.3. Pull down code to release</h3>
-<div class="paragraph">
-<p>Set the HEAD of your local git repo to the commit to be released.  This will usually be the tip of the origin&#8217;s <code>master</code> branch.  Then, create a release branch for the version number being released; eg:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git checkout master
+env | grep ISIS | sort</code></pre> 
+         </div> 
+        </div> 
+        <div class="colist arabic"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td><i class="conum" data-value="1"></i><b>1</b></td> 
+            <td>adjust by platform</td> 
+           </tr> 
+           <tr> 
+            <td><i class="conum" data-value="2"></i><b>2</b></td> 
+            <td>set to an "umbrella" ticket for all release activities. (One should exist already, <a href="#_cgcom_post-release-successful_update-jira_create-new-jira">created at</a> the beginning of the development cycle now completing).</td> 
+           </tr> 
+           <tr> 
+            <td><i class="conum" data-value="3"></i><b>3</b></td> 
+            <td>adjust as required (Tomcat is used to smoke test the simpleapp archetype)</td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Obviously, alter <code>$ISISDEV</code> and <code>$ISISREL</code> as required, and bump <code>$ISISRC</code> for re-releasing following an <a href="#_cgcom_post-release-unsuccessful">unsuccessful</a> releases.</p> 
+        </div> 
+        <div class="admonitionblock important"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td class="icon"> <i class="fa icon-important" title="Important"></i> </td> 
+            <td class="content"> 
+             <div class="paragraph"> 
+              <p>Note that the branch name is <strong>not</strong> the same any of the eventual tag names (eg <code>isis-1.15.0</code> or <code>simpleapp-archetype-1.15.0</code>).</p> 
+             </div> 
+             <div class="paragraph"> 
+              <p>If they did have the same name, then what would happen is that the <code>maven-release-plugin</code> would checkout the (HEAD of the) branch and thus upload a SNAPSHOT to the snapshot repository. What it should of course do is checkout the tag and then upload that to the release staging repository.</p> 
+             </div> </td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_cgcom_cutting-a-release_pull-down-code-to-release">3.3. Pull down code to release</h3> 
+        <div class="paragraph"> 
+         <p>Set the HEAD of your local git repo to the commit to be released. This will usually be the tip of the origin\u2019s <code>master</code> branch. Then, create a release branch for the version number being released; eg:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">git checkout master
 git pull --ff-only
-git checkout -b $ISISBRANCH</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>All release preparation is done locally; if we are successful, this branch will be merged back into master.</p>
-</div>
-<div class="paragraph">
-<p>Double check that the version number of the parent pom should reflect the branch name that you are now on (with a <code>-SNAPSHOT</code> suffix).  his will normally have been done already during earlier development; but confirm that it has been updated. If it has not, make the change.</p>
-</div>
-<div class="paragraph">
-<p>Double check that the version number of the core POM (<code>core/pom.xml</code>) should reflect the branch name that you are now on.  For example, if releasing version <code>1.15.0</code>, the POM should read:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;groupId&gt;</span>org.apache.isis.core<span class="tag">&lt;/groupId&gt;</span>
+git checkout -b $ISISBRANCH</code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>All release preparation is done locally; if we are successful, this branch will be merged back into master.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Double check that the version number of the parent pom should reflect the branch name that you are now on (with a <code>-SNAPSHOT</code> suffix). his will normally have been done already during earlier development; but confirm that it has been updated. If it has not, make the change.</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Double check that the version number of the core POM (<code>core/pom.xml</code>) should reflect the branch name that you are now on. For example, if releasing version <code>1.15.0</code>, the POM should read:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;groupId&gt;</span>org.apache.isis.core<span class="tag">&lt;/groupId&gt;</span>
 <span class="tag">&lt;artifactId&gt;</span>isis<span class="tag">&lt;/artifactId&gt;</span>
-<span class="tag">&lt;version&gt;</span>1.16.0-SNAPSHOT<span class="tag">&lt;/version&gt;</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Also, check that there are no snapshot dependencies:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">grep SNAPSHOT `/bin/find . -name pom.xml | grep -v target | grep -v mothball | sort`</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The only mention of <code>SNAPSHOT</code> should be for the Isis modules about to be released.</p>
-</div>
-<div class="admonitionblock tip">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-tip" title="Tip"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>Obviously, don&#8217;t update Apache Isis' <code>SNAPSHOT</code> references; these get updated by the <code>mvn release:prepare</code> command we run later.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_cgcom_cutting-a-release_releasing-core">3.4. Releasing Core</h3>
-<div class="paragraph">
-<p>First, we release <code>core</code>.  Switch to the appropriate directory:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cd core</code></pre>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_set-environment-variables">3.4.1. Set environment variables</h4>
-<div class="paragraph">
-<p>Set additional environment variables for the core "artifact":</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">export ISISART=isis
-export ISISCOR=&quot;Y&quot;
-
-env | grep ISIS | sort</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_license-headers">3.4.2. License headers</h4>
-<div class="paragraph">
-<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. The parent <code>pom.xml</code> of each releasable module specifies the RAT Maven plugin, with a number of custom exclusions.</p>
-</div>
-<div class="paragraph">
-<p>To run the RAT tool, use:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=50 -o &amp;&amp; \
+<span class="tag">&lt;version&gt;</span>1.16.0-SNAPSHOT<span class="tag">&lt;/version&gt;</span></code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Also, check that there are no snapshot dependencies:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">grep SNAPSHOT `/bin/find . -name pom.xml | grep -v target | grep -v mothball | sort`</code></pre> 
+         </div> 
+        </div> 
+        <div class="paragraph"> 
+         <p>The only mention of <code>SNAPSHOT</code> should be for the Isis modules about to be released.</p> 
+        </div> 
+        <div class="admonitionblock tip"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+            <td class="content"> 
+             <div class="paragraph"> 
+              <p>Obviously, don\u2019t update Apache Isis' <code>SNAPSHOT</code> references; these get updated by the <code>mvn release:prepare</code> command we run later.</p> 
+             </div> </td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_cgcom_cutting-a-release_releasing-core">3.4. Releasing Core</h3> 
+        <div class="paragraph"> 
+         <p>First, we release <code>core</code>. Switch to the appropriate directory:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">cd core</code></pre> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_set-environment-variables">3.4.1. Set environment variables</h4> 
+         <div class="paragraph"> 
+          <p>Set additional environment variables for the core "artifact":</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">export ISISART=isis
+export ISISCOR="Y"
+
+env | grep ISIS | sort</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_license-headers">3.4.2. License headers</h4> 
+         <div class="paragraph"> 
+          <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. The parent <code>pom.xml</code> of each releasable module specifies the RAT Maven plugin, with a number of custom exclusions.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>To run the RAT tool, use:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=50 -o &amp;&amp; \
 for a in `/bin/find . -name rat.txt -print`; do grep '!???' $a; done || \
-for a in `/bin/find . -name rat.txt -print`; do grep '!AL' $a; done</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<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.   The command writes out a <code>target\rat.txt</code> for each submodule.  missing license notes are indicated using the key <code>!???</code>.  The <code>for</code> command collates all the errors.</p>
-</div>
-<div class="paragraph">
-<p>Investigate and fix any reported violations, typically by either:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>adding genuinely missing license headers from Java (or other) source files, or</p>
-</li>
-<li>
-<p>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</p>
-</li>
-<li>
-<p>also look to remove any stale <code>&lt;exclude&gt;</code> entries</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>To add missing headers, use the groovy script <code>addmissinglicenses.groovy</code> (in the <code>scripts</code> directory) to automatically insert missing headers for certain file types. The actual files checked are those with extensions specified in the line <code>def fileEndings = [&quot;.java&quot;, &quot;.htm&quot;]</code>:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">groovy ../scripts/addmissinglicenses.groovy -x</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>(If the <code>-x</code> is omitted then the script is run in "dry run" mode).  Once you&#8217;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>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=0 -o &amp;&amp; \
-for a in `find . -name rat.txt -print`; do grep '!???' $a; done</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_missing-license-check">3.4.3. Missing License Check</h4>
-<div class="paragraph">
-<p>Although Apache Isis has no dependencies on artifacts with 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>
-</div>
-<div class="paragraph">
-<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, relative to the root of each releasable module.</p>
-</div>
-<div class="paragraph">
-<p>To capture the missing license information, use:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn license:download-licenses &amp;&amp; \
-groovy ../scripts/checkmissinglicenses.groovy</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The Maven plugin creates a <code>license.xml</code> file in the <code>target/generated-resources</code> directory of each module.  The script then searches for these <code>licenses.xml</code> files, and compares them against the contents of the <code>supplemental-models.xml</code> file.</p>
-</div>
-<div class="paragraph">
-<p>For example, the output could be something like:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">licenses to add to supplemental-models.xml:
+for a in `/bin/find . -name rat.txt -print`; do grep '!AL' $a; done</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <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. The command writes out a <code>target\rat.txt</code> for each submodule. missing license notes are indicated using the key <code>!???</code>. The <code>for</code> command collates all the errors.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Investigate and fix any reported violations, typically by either:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p>adding genuinely missing license headers from Java (or other) source files, or</p> </li> 
+           <li> <p>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</p> </li> 
+           <li> <p>also look to remove any stale <code>&lt;exclude&gt;</code> entries</p> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>To add missing headers, use the groovy script <code>addmissinglicenses.groovy</code> (in the <code>scripts</code> directory) 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> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">groovy ../scripts/addmissinglicenses.groovy -x</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>(If the <code>-x</code> is omitted then the script is run in "dry run" mode). Once you\u2019ve 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> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=0 -o &amp;&amp; \
+for a in `find . -name rat.txt -print`; do grep '!???' $a; done</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_missing-license-check">3.4.3. Missing License Check</h4> 
+         <div class="paragraph"> 
+          <p>Although Apache Isis has no dependencies on artifacts with 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> 
+         </div> 
+         <div class="paragraph"> 
+          <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, relative to the root of each releasable module.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>To capture the missing license information, use:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">mvn license:download-licenses &amp;&amp; \
+groovy ../scripts/checkmissinglicenses.groovy</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The Maven plugin creates a <code>license.xml</code> file in the <code>target/generated-resources</code> directory of each module. The script then searches for these <code>licenses.xml</code> files, and compares them against the contents of the <code>supplemental-models.xml</code> file.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>For example, the output could be something like:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">licenses to add to supplemental-models.xml:
 
 [org.slf4j, slf4j-api, 1.5.7]
 [org.codehaus.groovy, groovy-all, 1.7.2]
 
 licenses to remove from supplemental-models.xml (are spurious):
 
-[org.slf4j, slf4j-api, 1.5.2]</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>If any missing entries are listed or are spurious, then update <code>supplemental-models.xml</code> and try again.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_commit-changes">3.4.4. Commit changes</h4>
-<div class="paragraph">
-<p>Commit any changes from the preceding steps:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git commit -am &quot;$ISISJIRA: updates to pom.xml etc for release&quot;</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_sanity-check">3.4.5. Sanity check</h4>
-<div class="paragraph">
-<p>Perform one last sanity check on the codebase.  Delete all Isis artifacts from your local Maven repo, then build using the <code>-o</code> offline flag:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">rm -rf ~/.m2/repository/org/apache/isis
-mvn clean install -o</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_release-prepare-dry-run">3.4.6. Release prepare "dry run"</h4>
-<div class="paragraph">
-<p>Most of the work is done using the <code>mvn release:prepare</code> goal.  Since this makes a lot of changes, we run it first in "dry run" mode; only if that works do we run the goal for real.</p>
-</div>
-<div class="paragraph">
-<p>Run the dry-run as follows:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn release:prepare -P apache-release -D dryRun=true \
+[org.slf4j, slf4j-api, 1.5.2]</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>If any missing entries are listed or are spurious, then update <code>supplemental-models.xml</code> and try again.</p> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_commit-changes">3.4.4. Commit changes</h4> 
+         <div class="paragraph"> 
+          <p>Commit any changes from the preceding steps:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">git commit -am "$ISISJIRA: updates to pom.xml etc for release"</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_sanity-check">3.4.5. Sanity check</h4> 
+         <div class="paragraph"> 
+          <p>Perform one last sanity check on the codebase. Delete all Isis artifacts from your local Maven repo, then build using the <code>-o</code> offline flag:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">rm -rf ~/.m2/repository/org/apache/isis
+mvn clean install -o</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_release-prepare-dry-run">3.4.6. Release prepare "dry run"</h4> 
+         <div class="paragraph"> 
+          <p>Most of the work is done using the <code>mvn release:prepare</code> goal. Since this makes a lot of changes, we run it first in "dry run" mode; only if that works do we run the goal for real.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Run the dry-run as follows:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">mvn release:prepare -P apache-release -D dryRun=true \
     -DreleaseVersion=$ISISREL \
     -Dtag=$ISISART-$ISISREL \
-    -DdevelopmentVersion=$ISISDEV</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>You may be prompted for the gpg passphrase.</p>
-</div>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-note" title="Note"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>Experiments in using <code>--batch-mode -Dgpg.passphrase=&quot;&#8230;&#8203;&quot;</code> to fully automate this didn&#8217;t work; for more info, see <a href="http://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html">here</a> (maven release plugin docs) and <a href="http://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html">here</a> (maven gpg plugin docs).</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_release-prepare-proper">3.4.7. Release prepare "proper"</h4>
-<div class="paragraph">
-<p>Assuming this completes successfully, re-run the command, but without the <code>dryRun</code> flag and specifying <code>resume=false</code> (to ignore the generated <code>release.properties</code> file that gets generated as a side-effect of using <code>git</code>). You can also set the <code>skipTests</code> flag since they would have been run during the previous dry run:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn release:prepare -P apache-release -D resume=false -DskipTests=true \
+    -DdevelopmentVersion=$ISISDEV</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>You may be prompted for the gpg passphrase.</p> 
+         </div> 
+         <div class="admonitionblock note"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>Experiments in using <code>--batch-mode -Dgpg.passphrase="\u2026\u200b"</code> to fully automate this didn\u2019t work; for more info, see <a href="http://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html">here</a> (maven release plugin docs) and <a href="http://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html">here</a> (maven gpg plugin docs).</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_release-prepare-proper">3.4.7. Release prepare "proper"</h4> 
+         <div class="paragraph"> 
+          <p>Assuming this completes successfully, re-run the command, but without the <code>dryRun</code> flag and specifying <code>resume=false</code> (to ignore the generated <code>release.properties</code> file that gets generated as a side-effect of using <code>git</code>). You can also set the <code>skipTests</code> flag since they would have been run during the previous dry run:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">mvn release:prepare -P apache-release -D resume=false -DskipTests=true \
         -DreleaseVersion=$ISISREL \
         -Dtag=$ISISART-$ISISREL \
-        -DdevelopmentVersion=$ISISDEV</code></pre>
-</div>
-</div>
-<div class="admonitionblock tip">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-tip" title="Tip"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>If there are any snags at this stage, then explicitly delete the generated <code>release.properties</code> file first before trying again.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_post-prepare-sanity-check">3.4.8. Post-prepare sanity check</h4>
-<div class="paragraph">
-<p>You should end up with artifacts in your local repo with the new version (eg <code>1.15.0</code>).  This is a good time to do some quick sanity checks; nothing has yet been uploaded:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>unzip the source-release ZIP and check it builds.</p>
-</li>
-<li>
-<p>Inspect the <code>DEPENDENCIES</code> file, and check it looks correct.</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>These steps can be performed using the following script:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code>rm -rf $ISISTMP/$ISISART-$ISISREL
+        -DdevelopmentVersion=$ISISDEV</code></pre> 
+          </div> 
+         </div> 
+         <div class="admonitionblock tip"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>If there are any snags at this stage, then explicitly delete the generated <code>release.properties</code> file first before trying again.</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_post-prepare-sanity-check">3.4.8. Post-prepare sanity check</h4> 
+         <div class="paragraph"> 
+          <p>You should end up with artifacts in your local repo with the new version (eg <code>1.15.0</code>). This is a good time to do some quick sanity checks; nothing has yet been uploaded:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p>unzip the source-release ZIP and check it builds.</p> </li> 
+           <li> <p>Inspect the <code>DEPENDENCIES</code> file, and check it looks correct.</p> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>These steps can be performed using the following script:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code>rm -rf $ISISTMP/$ISISART-$ISISREL
 mkdir $ISISTMP/$ISISART-$ISISREL
 
 if [ "$ISISCOR" == "Y" ]; then
@@ -1148,308 +1031,285 @@ mvn clean install
 
 cat DEPENDENCIES
 
-popd</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-core_release-perform-upload">3.4.9. Release perform (Upload)</h4>
-<div class="paragraph">
-<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>
-</div>
-<div class="paragraph">
-<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>
-</div>
-<div class="paragraph">
-<p>Use:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn release:perform -P apache-release \
-    -DworkingDirectory=$ISISTMP/$ISISART-$ISISREL/checkout</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The custom <code>workingDirectory</code> prevents file path issues if releasing on Windows.  The command checks out the codebase from the tag, then builds the artifacts, then uploads them to the Apache staging repository:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">...
+popd</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-core_release-perform-upload">3.4.9. Release perform (Upload)</h4> 
+         <div class="paragraph"> 
+          <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> 
+         </div> 
+         <div class="paragraph"> 
+          <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> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Use:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">mvn release:perform -P apache-release \
+    -DworkingDirectory=$ISISTMP/$ISISART-$ISISREL/checkout</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The custom <code>workingDirectory</code> prevents file path issues if releasing on Windows. The command checks out the codebase from the tag, then builds the artifacts, then uploads them to the Apache staging repository:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">...
 [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 &quot;git clone --branch release-1.15.0 file:///C:\APACHE\isis-git-rw\core C:\APACHE\isis-git-rw\core\target\checkout&quot;
+[INFO] Executing: cmd.exe /X /C "git clone --branch release-1.15.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 &quot;git clone --branch release-1.15.0 file:///C:\APACHE\isis-git-rw C:\APACHE\isis-git-rw\core\target\checkout&quot;
+[INFO] Executing: cmd.exe /X /C "git clone --branch release-1.15.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 &quot;git ls-remote file:///C:\APACHE\isis-git-rw&quot;
+[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 &quot;git fetch file:///C:\APACHE\isis-git-rw&quot;
+[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 &quot;git checkout release-1.15.0&quot;
+[INFO] Executing: cmd.exe /X /C "git checkout release-1.15.0"
 [INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
-[INFO] Executing: cmd.exe /X /C &quot;git ls-files&quot;
+[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\checkout\core
 [INFO] Executing goals 'deploy'...
-...</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>You may (again) be prompted for gpg passphrase.  All being well this command will complete successfully. Given that it is uploading code artifacts, it could take a while to complete.</p>
-</div>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_cgcom_cutting-a-release_releasing-the-archetype">3.5. Releasing the Archetype</h3>
-<div class="paragraph">
-<p>Apache Isis archetypes are reverse engineered from example applications.
-Once reverse engineered, the source is checked into git (replacing any earlier version of the archetype) and released.</p>
-</div>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-note" title="Note"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>If releasing using Windows and Maven &gt;= 3.3.3, then there is an issue that requires a small workaround.</p>
-</div>
-<div class="paragraph">
-<p>In Maven 3.3.3 the <code>mvn.bat</code> file was removed, replaced instead with <code>mvn.cmd</code>.
-However, <code>maven-archetype-plugin:2.4</code> only uses <code>mvn.bat</code>; this causes the <code>archetype:create-from-project</code> goal to fail.
-The fix is to simple: just copy <code>mvn.cmd</code> to <code>mvn.bat</code>.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Switch to the directory containing the <code>simpleapp</code> example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cd ../example/application/simpleapp</code></pre>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-the-archetype_setup-environment-variables">3.5.1. Setup environment variables</h4>
-<div class="paragraph">
-<p>Set additional environment variables for the <code>simpleapp-archetype</code> artifact:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">export ISISART=simpleapp-archetype
+...</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>You may (again) be prompted for gpg passphrase. All being well this command will complete successfully. Given that it is uploading code artifacts, it could take a while to complete.</p> 
+         </div> 
+        </div> 
+       </div> 
+       <div class="sect2"> 
+        <h3 id="_cgcom_cutting-a-release_releasing-the-archetype">3.5. Releasing the Archetype</h3> 
+        <div class="paragraph"> 
+         <p>Apache Isis archetypes are reverse engineered from example applications. Once reverse engineered, the source is checked into git (replacing any earlier version of the archetype) and released.</p> 
+        </div> 
+        <div class="admonitionblock note"> 
+         <table> 
+          <tbody>
+           <tr> 
+            <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
+            <td class="content"> 
+             <div class="paragraph"> 
+              <p>If releasing using Windows and Maven &gt;= 3.3.3, then there is an issue that requires a small workaround.</p> 
+             </div> 
+             <div class="paragraph"> 
+              <p>In Maven 3.3.3 the <code>mvn.bat</code> file was removed, replaced instead with <code>mvn.cmd</code>. However, <code>maven-archetype-plugin:2.4</code> only uses <code>mvn.bat</code>; this causes the <code>archetype:create-from-project</code> goal to fail. The fix is to simple: just copy <code>mvn.cmd</code> to <code>mvn.bat</code>.</p> 
+             </div> </td> 
+           </tr> 
+          </tbody>
+         </table> 
+        </div> 
+        <div class="paragraph"> 
+         <p>Switch to the directory containing the <code>simpleapp</code> example:</p> 
+        </div> 
+        <div class="listingblock"> 
+         <div class="content"> 
+          <pre class="CodeRay highlight"><code data-lang="bash">cd ../example/application/simpleapp</code></pre> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-the-archetype_setup-environment-variables">3.5.1. Setup environment variables</h4> 
+         <div class="paragraph"> 
+          <p>Set additional environment variables for the <code>simpleapp-archetype</code> artifact:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">export ISISART=simpleapp-archetype
 export ISISPAR=$ISISREL                 <i class="conum" data-value="1"></i><b>(1)</b>
 
 export ISISCPT=$(echo $ISISART | cut -d- -f2)
 export ISISCPN=$(echo $ISISART | cut -d- -f1)
 
-env | grep ISIS | sort</code></pre>
-</div>
-</div>
-<div class="colist arabic">
-<table>
-<tr>
-<td><i class="conum" data-value="1"></i><b>1</b></td>
-<td><code>$ISISPAR</code> is the version of the Apache Isis core that will act as the archetype&#8217;s parent. Usually this is the same as <code>$ISISREL</code>.</td>
-</tr>
-</table>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-the-archetype_check-the-example-app">3.5.2. Check the example app</h4>
-<div class="paragraph">
-<p>Update the parent <code>pom.xml</code> to reference the <em>released</em> version of Apache Isis core, eg:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;properties&gt;</span>
+env | grep ISIS | sort</code></pre> 
+          </div> 
+         </div> 
+         <div class="colist arabic"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td><i class="conum" data-value="1"></i><b>1</b></td> 
+             <td><code>$ISISPAR</code> is the version of the Apache Isis core that will act as the archetype\u2019s parent. Usually this is the same as <code>$ISISREL</code>.</td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-the-archetype_check-the-example-app">3.5.2. Check the example app</h4> 
+         <div class="paragraph"> 
+          <p>Update the parent <code>pom.xml</code> to reference the <em>released</em> version of Apache Isis core, eg:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;properties&gt;</span>
     <span class="tag">&lt;isis.version&gt;</span>1.15.0<span class="tag">&lt;/isis.version&gt;</span>
     ...
-<span class="tag">&lt;/properties&gt;</span></code></pre>
-</div>
-</div>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-note" title="Note"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>Previously at this point we used to check for and fix any missing license header notices; however it doesn&#8217;t make sense for the archetype to include the Apache rat-plugin, so this has been removed.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Finally, double check that the app</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>builds:</p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn clean install</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>can be run from an IDE</p>
-<div class="ulist">
-<ul>
-<li>
-<p>mainClass=<code>org.apache.isis.WebServer</code></p>
-</li>
-<li>
-<p>args=<code>-m domainapp.application.manifest.DomainAppAppManifestWithFixtures</code></p>
-</li>
-<li>
-<p>run before: <code>mvn -f pom-jdo-enhance-all.xml datanucleus:enhance -o</code> in the root module</p>
-</li>
-</ul>
-</div>
-</li>
-<li>
-<p>can be run using the mvn jetty plugin:</p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn -pl webapp jetty:run</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>can be packaged and run using the mvn jetty-console plugin:</p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn install -Dmavenmixin-jettyconsole
-mvn antrun:run -Dmavenmixin-jettyconsole</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>can be deployed as a WAR</p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cp webapp/target/simpleapp.war $CATALINA_HOME/webapps/ROOT.war
+<span class="tag">&lt;/properties&gt;</span></code></pre> 
+          </div> 
+         </div> 
+         <div class="admonitionblock note"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>Previously at this point we used to check for and fix any missing license header notices; however it doesn\u2019t make sense for the archetype to include the Apache rat-plugin, so this has been removed.</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Finally, double check that the app</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p>builds:</p> 
+            <div class="listingblock"> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="bash">mvn clean install</code></pre> 
+             </div> 
+            </div> </li> 
+           <li> <p>can be run from an IDE</p> 
+            <div class="ulist"> 
+             <ul> 
+              <li> <p>mainClass=<code>org.apache.isis.WebServer</code></p> </li> 
+              <li> <p>args=<code>-m domainapp.application.manifest.DomainAppAppManifestWithFixtures</code></p> </li> 
+              <li> <p>run before: <code>mvn -f pom-jdo-enhance-all.xml datanucleus:enhance -o</code> in the root module</p> </li> 
+             </ul> 
+            </div> </li> 
+           <li> <p>can be run using the mvn jetty plugin:</p> 
+            <div class="listingblock"> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="bash">mvn -pl webapp jetty:run</code></pre> 
+             </div> 
+            </div> </li> 
+           <li> <p>can be packaged and run using the mvn jetty-console plugin:</p> 
+            <div class="listingblock"> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="bash">mvn install -Dmavenmixin-jettyconsole
+mvn antrun:run -Dmavenmixin-jettyconsole</code></pre> 
+             </div> 
+            </div> </li> 
+           <li> <p>can be deployed as a WAR</p> 
+            <div class="listingblock"> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="bash">cp webapp/target/simpleapp.war $CATALINA_HOME/webapps/ROOT.war
 pushd $CATALINA_HOME/bin
 sh startup.sh
-tail -f ../logs/catalina.out</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>quit using:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">sh shutdown.sh
-popd</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>can be packaged and run using Docker:</p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn install -Dmavenmixin-docker -D docker-plugin.imageName=test/simpleapp
-docker container run -p 8080:8080 -d test/simpleapp</code></pre>
-</div>
-</div>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>This too should be accessed at <a href="http://localhost:8080">localhost:8080</a>.</p>
-</div>
-<div class="admonitionblock tip">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-tip" title="Tip"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>The Kitematic UI tool is handy for viewing and interacting with running containers.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>In each case, check the about page and confirm has been built against non-SNAPSHOT versions of the Apache Isis jars.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-the-archetype_create-the-archetype">3.5.3. Create the archetype</h4>
-<div class="paragraph">
-<p>Make sure you are in the correct directory and environment variables are correct.</p>
-</div>
-<div class="paragraph">
-<p>To recreate the <strong>simpleapp</strong> archetype:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cd example/application/simpleapp
-env | grep ISIS | sort</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Then, run the script:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">sh ../../../scripts/recreate-archetype.sh $ISISJIRA</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The script automatically commits changes; if you wish use <code>git log</code> and
-<code>git diff</code> (or a tool such as SourceTree) to review changes made.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-the-archetype_release-prepare">3.5.4. Release prepare</h4>
-<div class="paragraph">
-<p>Switch to the <strong>archetype</strong> directory and execute the <code>release:prepare</code>:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code>cd ../../../example/archetype/$ISISCPN
+tail -f ../logs/catalina.out</code></pre> 
+             </div> 
+            </div> 
+            <div class="paragraph"> 
+             <p>quit using:</p> 
+            </div> 
+            <div class="listingblock"> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="bash">sh shutdown.sh
+popd</code></pre> 
+             </div> 
+            </div> </li> 
+           <li> <p>can be packaged and run using Docker:</p> 
+            <div class="listingblock"> 
+             <div class="content"> 
+              <pre class="CodeRay highlight"><code data-lang="bash">mvn install -Dmavenmixin-docker -D docker-plugin.imageName=test/simpleapp
+docker container run -p 8080:8080 -d test/simpleapp</code></pre> 
+             </div> 
+            </div> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>This too should be accessed at <a href="http://localhost:8080">localhost:8080</a>.</p> 
+         </div> 
+         <div class="admonitionblock tip"> 
+          <table> 
+           <tbody>
+            <tr> 
+             <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
+             <td class="content"> 
+              <div class="paragraph"> 
+               <p>The Kitematic UI tool is handy for viewing and interacting with running containers.</p> 
+              </div> </td> 
+            </tr> 
+           </tbody>
+          </table> 
+         </div> 
+         <div class="paragraph"> 
+          <p>In each case, check the about page and confirm has been built against non-SNAPSHOT versions of the Apache Isis jars.</p> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-the-archetype_create-the-archetype">3.5.3. Create the archetype</h4> 
+         <div class="paragraph"> 
+          <p>Make sure you are in the correct directory and environment variables are correct.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>To recreate the <strong>simpleapp</strong> archetype:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">cd example/application/simpleapp
+env | grep ISIS | sort</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Then, run the script:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">sh ../../../scripts/recreate-archetype.sh $ISISJIRA</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The script automatically commits changes; if you wish use <code>git log</code> and <code>git diff</code> (or a tool such as SourceTree) to review changes made.</p> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-the-archetype_release-prepare">3.5.4. Release prepare</h4> 
+         <div class="paragraph"> 
+          <p>Switch to the <strong>archetype</strong> directory and execute the <code>release:prepare</code>:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code>cd ../../../example/archetype/$ISISCPN
 rm -rf $ISISTMP/checkout
 mvn release:prepare -P apache-release \
                 -DreleaseVersion=$ISISREL \
                 -DdevelopmentVersion=$ISISDEV \
-                -Dtag=$ISISART-$ISISREL</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_cgcom_cutting-a-release_releasing-the-archetype_post-prepare-sanity-check">3.5.5. Post-prepare sanity check</h4>
-<div class="paragraph">
-<p>This is a good point to test the archetype; nothing has yet been uploaded.</p>
-</div>
-<div class="paragraph">
-<p><em>In a different session</em>, create a new app from the archetype.  First set up environment variables:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">export ISISTMP=/c/tmp    # or as required
+                -Dtag=$ISISART-$ISISREL</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect3"> 
+         <h4 id="_cgcom_cutting-a-release_releasing-the-archetype_post-prepare-sanity-check">3.5.5. Post-prepare sanity check</h4> 
+         <div class="paragraph"> 
+          <p>This is a good point to test the archetype; nothing has yet been uploaded.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p><em>In a different session</em>, create a new app from the archetype. First set up environment variables:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">export ISISTMP=/c/tmp    # or as required
 export ISISCPN=simpleapp
-env | grep ISIS | sort</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Then generate a new app from the archetype:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">rm -rf $ISISTMP/test-$ISISCPN
+env | grep ISIS | sort</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Then generate a new app from the archetype:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">rm -rf $ISISTMP/test-$ISISCPN
 
 mkdir $ISISTMP/test-$ISISCPN
 cd $ISISTMP/test-$ISISCPN
@@ -1458,181 +1318,179 @@ mvn archetype:generate  \
     -D groupId=com.mycompany \
     -D artifactId=myapp \
     -D archetypeGroupId=org.apache.isis.archetype \
-    -D archetypeArtifactId=$ISISCPN-archetype</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Build the newly generated app and test:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cd myapp
+    -D archetypeArtifactId=$ISISCPN-archetype</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Build the newly generated app and test:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="bash">cd myapp
 mvn clean install -o
-mvn -pl webapp jetty:run              # runs as mvn jetty plugin</code></pre>
-</d

<TRUNCATED>