yetus-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bus...@apache.org
Subject [04/10] yetus git commit: YETUS-162, YETUS-81
Date Wed, 18 Nov 2015 08:07:56 GMT
http://git-wip-us.apache.org/repos/asf/yetus/blob/1a20466f/documentation/in-progress/precommit-apidocs/smart-apply-patch/index.html
----------------------------------------------------------------------
diff --git a/documentation/in-progress/precommit-apidocs/smart-apply-patch/index.html b/documentation/in-progress/precommit-apidocs/smart-apply-patch/index.html
new file mode 100644
index 0000000..f7ce6e5
--- /dev/null
+++ b/documentation/in-progress/precommit-apidocs/smart-apply-patch/index.html
@@ -0,0 +1,441 @@
+<!---
+  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
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Yetus</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <link href="/assets/css/bootstrap.css" rel="stylesheet">
+		    <link href="/assets/css/bootstrap-theme.css" rel="stylesheet">
+                    <link href="/assets/css/font-awesome.css" rel="stylesheet">
+
+		    <!-- JS -->
+		    <script type="text/javascript" src="/assets/js/jquery-2.1.4.min.js"></script>
+		    <script type="text/javascript" src="/assets/js/bootstrap.js"></script>
+	</head>
+    <body>
+      <div class="navbar navbar-inverse navbar-static-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="img-responsive pull-left" href="/">
+                <img style="max-height: 40px; margin-top: 5px; margin-bottom: 5px;" src="/assets/img/yetus_logo.png" alt="Apache Yetus logo" />
+            </a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a href="/downloads/">Downloads</a>
+                <li><a href="/documentation/in-progress/">Documentation</a>
+                </li>
+                <li class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Get Involved <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/mailinglists"><i class="fa fa-commenting"></i> Mailing Lists</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="http://issues.apache.org/jira/browse/YETUS"><i class="fa fa-bug"></i> JIRA (Bugs)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://git-wip-us.apache.org/repos/asf?s=yetus"><i class="fa fa-code"></i> Source (Apache)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://github.com/apache/yetus"><i class="fa fa-github-alt"></i> Source (GitHub)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/contribute"><i class="fa fa-code-fork"></i> Contributing</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/ApacheYetus"><i class="fa fa-twitter"></i> @ApacheYetus</a>
+                        </li>
+                    </ul>
+                </li>
+                <li>
+                    <li class="dropdown">
+                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+                        <ul class="dropdown-menu" role="menu">
+                            <li><a href="http://www.apache.org">Apache Homepage</a>
+                            </li>
+                            <li><a href="http://www.apache.org/licenses/">Apache License</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+                            </li>
+                            <li><a href="http://www.apache.org/security/">Security</a>
+                            </li>
+                        </ul>
+                    </li>
+                </li>
+            </ul>
+        </div>
+        <!--/.nav-collapse -->
+    </div>
+</div>
+
+      <div class="container">
+        <!---
+# 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
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+-->
+
+<ul>
+<li>Public/Stable/Not Replaceable
+
+<ul>
+<li><a href="#setup_defaults">setup_defaults</a></li>
+<li><a href="#yetus_usage">yetus_usage</a></li>
+</ul></li>
+<li>None/None/Not Replaceable
+
+<ul>
+<li><a href="#add_footer_table">add_footer_table</a></li>
+<li><a href="#add_test">add_test</a></li>
+<li><a href="#add_vote_table">add_vote_table</a></li>
+<li><a href="#big_console_header">big_console_header</a></li>
+</ul></li>
+<li>Private/Evolving/Not Replaceable
+
+<ul>
+<li><a href="#import_core">import_core</a></li>
+</ul></li>
+</ul>
+
+<hr>
+
+<h2 id="public-stable-not-replaceable">Public/Stable/Not Replaceable</h2>
+
+<h3 id="setup_defaults"><code>setup_defaults</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>setup_defaults
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Setup the default global variables</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="yetus_usage"><code>yetus_usage</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>yetus_usage
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Print the usage information</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h2 id="none-none-not-replaceable">None/None/Not Replaceable</h2>
+
+<h3 id="add_footer_table"><code>add_footer_table</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_footer_table
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>None</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+<h3 id="add_test"><code>add_test</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_test
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>None</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+<h3 id="add_vote_table"><code>add_vote_table</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_vote_table
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>None</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+<h3 id="big_console_header"><code>big_console_header</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>big_console_header
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>None</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">None</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+<h2 id="private-evolving-not-replaceable">Private/Evolving/Not Replaceable</h2>
+
+<h3 id="import_core"><code>import_core</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>import_core
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>import core library routines</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2015 <a href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. Apache Yetus and the Apache feather logo are trademarks of The Apache Software Foundation.
+                            </div>
+            </div>
+
+        </div>
+
+    </footer>
+</div>
+
+	</body>
+</html>

http://git-wip-us.apache.org/repos/asf/yetus/blob/1a20466f/documentation/in-progress/precommit-apidocs/test-patch/index.html
----------------------------------------------------------------------
diff --git a/documentation/in-progress/precommit-apidocs/test-patch/index.html b/documentation/in-progress/precommit-apidocs/test-patch/index.html
new file mode 100644
index 0000000..dc942c4
--- /dev/null
+++ b/documentation/in-progress/precommit-apidocs/test-patch/index.html
@@ -0,0 +1,1844 @@
+<!---
+  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
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Yetus</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <link href="/assets/css/bootstrap.css" rel="stylesheet">
+		    <link href="/assets/css/bootstrap-theme.css" rel="stylesheet">
+                    <link href="/assets/css/font-awesome.css" rel="stylesheet">
+
+		    <!-- JS -->
+		    <script type="text/javascript" src="/assets/js/jquery-2.1.4.min.js"></script>
+		    <script type="text/javascript" src="/assets/js/bootstrap.js"></script>
+	</head>
+    <body>
+      <div class="navbar navbar-inverse navbar-static-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="img-responsive pull-left" href="/">
+                <img style="max-height: 40px; margin-top: 5px; margin-bottom: 5px;" src="/assets/img/yetus_logo.png" alt="Apache Yetus logo" />
+            </a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a href="/downloads/">Downloads</a>
+                <li><a href="/documentation/in-progress/">Documentation</a>
+                </li>
+                <li class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Get Involved <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/mailinglists"><i class="fa fa-commenting"></i> Mailing Lists</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="http://issues.apache.org/jira/browse/YETUS"><i class="fa fa-bug"></i> JIRA (Bugs)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://git-wip-us.apache.org/repos/asf?s=yetus"><i class="fa fa-code"></i> Source (Apache)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://github.com/apache/yetus"><i class="fa fa-github-alt"></i> Source (GitHub)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/contribute"><i class="fa fa-code-fork"></i> Contributing</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/ApacheYetus"><i class="fa fa-twitter"></i> @ApacheYetus</a>
+                        </li>
+                    </ul>
+                </li>
+                <li>
+                    <li class="dropdown">
+                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+                        <ul class="dropdown-menu" role="menu">
+                            <li><a href="http://www.apache.org">Apache Homepage</a>
+                            </li>
+                            <li><a href="http://www.apache.org/licenses/">Apache License</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+                            </li>
+                            <li><a href="http://www.apache.org/security/">Security</a>
+                            </li>
+                        </ul>
+                    </li>
+                </li>
+            </ul>
+        </div>
+        <!--/.nav-collapse -->
+    </div>
+</div>
+
+      <div class="container">
+        <!---
+# 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
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+-->
+
+<ul>
+<li>Public/Stable/Replaceable
+
+<ul>
+<li><a href="#relative_dir">relative_dir</a></li>
+<li><a href="#verify_multijdk_test">verify_multijdk_test</a></li>
+</ul></li>
+<li>Public/Stable/Not Replaceable
+
+<ul>
+<li><a href="#add_footer_table">add_footer_table</a></li>
+<li><a href="#add_header_line">add_header_line</a></li>
+<li><a href="#add_test_table">add_test_table</a></li>
+<li><a href="#add_vote_table">add_vote_table</a></li>
+<li><a href="#big_console_header">big_console_header</a></li>
+<li><a href="#clock_display">clock_display</a></li>
+<li><a href="#echo_and_redirect">echo_and_redirect</a></li>
+<li><a href="#generate_stack">generate_stack</a></li>
+<li><a href="#module_file_fragment">module_file_fragment</a></li>
+<li><a href="#offset_clock">offset_clock</a></li>
+<li><a href="#setup_defaults">setup_defaults</a></li>
+<li><a href="#start_clock">start_clock</a></li>
+<li><a href="#stop_clock">stop_clock</a></li>
+</ul></li>
+<li>Public/Stable/Not Replaceable
+
+<ul>
+<li><a href="#write_comment">write_comment</a></li>
+</ul></li>
+<li>Public/Stable/Not Replaceable
+
+<ul>
+<li><a href="#yetus_usage">yetus_usage</a></li>
+</ul></li>
+<li>Public/Evolving/Not Replaceable
+
+<ul>
+<li><a href="#bugsystem_linecomments">bugsystem_linecomments</a></li>
+<li><a href="#calcdiffs">calcdiffs</a></li>
+<li><a href="#clear_personality_queue">clear_personality_queue</a></li>
+<li><a href="#compile">compile</a></li>
+<li><a href="#compile_cycle">compile_cycle</a></li>
+<li><a href="#distclean">distclean</a></li>
+<li><a href="#generic_count_probs">generic_count_probs</a></li>
+<li><a href="#generic_post_handler">generic_post_handler</a></li>
+<li><a href="#generic_postlog_compare">generic_postlog_compare</a></li>
+<li><a href="#generic_pre_handler">generic_pre_handler</a></li>
+<li><a href="#initialize">initialize</a></li>
+<li><a href="#module_status">module_status</a></li>
+<li><a href="#modules_messages">modules_messages</a></li>
+<li><a href="#modules_reset">modules_reset</a></li>
+<li><a href="#modules_workers">modules_workers</a></li>
+<li><a href="#patchfiletests">patchfiletests</a></li>
+<li><a href="#personality_enqueue_module">personality_enqueue_module</a></li>
+</ul></li>
+<li>Private/Stable/Replaceable
+
+<ul>
+<li><a href="#finish_docker_stats">finish_docker_stats</a></li>
+<li><a href="#prepopulate_footer">prepopulate_footer</a></li>
+<li><a href="#report_jvm_version">report_jvm_version</a></li>
+</ul></li>
+<li>Private/Evolving/Replaceable
+
+<ul>
+<li><a href="#verify_patchdir_still_exists">verify_patchdir_still_exists</a></li>
+</ul></li>
+<li>Private/Evolving/Not Replaceable
+
+<ul>
+<li><a href="#import_core">import_core</a></li>
+<li><a href="#prechecks">prechecks</a></li>
+</ul></li>
+</ul>
+
+<hr>
+
+<h2 id="public-stable-replaceable">Public/Stable/Replaceable</h2>
+
+<h3 id="relative_dir"><code>relative_dir</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>relative_dir path
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>is a given directory relative to BASEDIR?</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<h2 id="returns-1-no-path">@returns     1 - no, path</h2>
+
+<h2 id="returns-0-yes-path-basedir">@returns     0 - yes, path - BASEDIR</h2>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">Yes</td>
+</tr>
+</tbody></table>
+
+<h3 id="verify_multijdk_test"><code>verify_multijdk_test</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>verify_multijdk_test test
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Verify if a given test is multijdk</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>1 = yes</p>
+
+<p>0 = no</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">Yes</td>
+</tr>
+</tbody></table>
+
+<h2 id="public-stable-not-replaceable">Public/Stable/Not Replaceable</h2>
+
+<h3 id="add_footer_table"><code>add_footer_table</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_footer_table subsystem string
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Add to the footer of the display. @@BASE@@ will get replaced with the correct location for the local filesystem in dev mode or the URL for Jenkins mode.</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="add_header_line"><code>add_header_line</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_header_line string
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Add to the header of the display</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="add_test_table"><code>add_test_table</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_test_table failurereason testlist
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Special table just for unit test failures</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="add_vote_table"><code>add_vote_table</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>add_vote_table +1/0/-1/null subsystem string
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Add to the output table. If the first parameter is a number that is the vote for that column and calculates the elapsed time based upon the last start_clock().  If it the string null, then it is a special entry that signifies extra content for the final column.  The second parameter is the reporting subsystem (or test) that is providing the vote.  The second parameter is always required.  The third parameter is any extra verbage that goes with that subsystem.</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Elapsed time display</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="big_console_header"><code>big_console_header</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>big_console_header string
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Large display for the user console</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>large chunk of text</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="clock_display"><code>clock_display</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>clock_display seconds
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Convert time in seconds to m + s</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="echo_and_redirect"><code>echo_and_redirect</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>echo_and_redirect filename command [..]
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Print the command to be executing to the screen. Then run the command, sending stdout and stderr to the given filename This will also ensure that any directories in ${BASEDIR} have the exec bit set as a pre-exec step.</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<h2 id="returns">@returns      $?</h2>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="generate_stack"><code>generate_stack</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>generate_stack
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>generate a stack trace when in debug mode</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>exits</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="module_file_fragment"><code>module_file_fragment</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>module_file_fragment module
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Convert the given module name to a file fragment</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="offset_clock"><code>offset_clock</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>offset_clock seconds
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Add time to the local timer</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="setup_defaults"><code>setup_defaults</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>setup_defaults
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Setup the default global variables</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="start_clock"><code>start_clock</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>start_clock
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Activate the local timer</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="stop_clock"><code>stop_clock</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>stop_clock
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Print the elapsed time in seconds since the start of the local timer</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h2 id="public-stable-not-replaceable">Public/Stable/Not Replaceable</h2>
+
+<h3 id="write_comment"><code>write_comment</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>write_comment ## @params filename
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Write the contents of a file to all of the bug systems (so content should avoid special formatting)</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+<h2 id="public-stable-not-replaceable">Public/Stable/Not Replaceable</h2>
+
+<h3 id="yetus_usage"><code>yetus_usage</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>yetus_usage
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Print the usage information</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h2 id="public-evolving-not-replaceable">Public/Evolving/Not Replaceable</h2>
+
+<h3 id="bugsystem_linecomments"><code>bugsystem_linecomments</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>bugsystem_linecomments filename
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Write comments onto bug systems that have code review support. File should be in the form of &ldquo;file:line:comment&rdquo;</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="calcdiffs"><code>calcdiffs</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>calcdiffs
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Calculate the differences between the specified files and output it to stdout.</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="clear_personality_queue"><code>clear_personality_queue</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>clear_personality_queue
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Reset the queue for tests</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="compile"><code>compile</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>compile branch|patch
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Execute the compile phase. This will callout to _compile</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="compile_cycle"><code>compile_cycle</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>compile_cycle branch|patch
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Execute the static analysis test cycle. This will callout to _precompile, compile, _postcompile and _rebuild</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="distclean"><code>distclean</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>distclean
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Wipe the repo clean to not invalidate tests</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="generic_count_probs"><code>generic_count_probs</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>generic_count_probs
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Helper routine for plugins to ask projects, etc to count problems in a log file and output it to stdout.</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>number of issues</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="generic_post_handler"><code>generic_post_handler</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>generic_post_handler origlog testtype multijdkmode run commands
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Generic post-patch handler</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="generic_postlog_compare"><code>generic_postlog_compare</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>generic_postlog_compare origlog testtype multijdkmode
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Generic post-patch log handler</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="generic_pre_handler"><code>generic_pre_handler</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>generic_pre_handler testype multijdk
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Helper routine for plugins to do a pre-patch prun</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>1 on failure</p>
+
+<p>0 on success</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="initialize"><code>initialize</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>initialize $@
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Setup to execute</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="module_status"><code>module_status</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>module_status module runtime
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Add a test result</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="modules_messages"><code>modules_messages</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>modules_messages repostatus testtype mvncmdline
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Utility to print standard module errors</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="modules_reset"><code>modules_reset</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>modules_reset
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Reset the test results</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="modules_workers"><code>modules_workers</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>modules_workers repostatus testtype mvncmdline
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>run the tests for the queued modules</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="patchfiletests"><code>patchfiletests</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>patchfiletests branch|patch
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Execute the patch file test phase. Calls out to to _patchfile</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>0 on success</p>
+
+<p>1 on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h3 id="personality_enqueue_module"><code>personality_enqueue_module</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>personality_enqueue_module module profiles/flags/etc
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Build the queue for tests</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Public</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">No</td>
+</tr>
+</tbody></table>
+
+<h2 id="private-stable-replaceable">Private/Stable/Replaceable</h2>
+
+<h3 id="finish_docker_stats"><code>finish_docker_stats</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>finish_docker_stats
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Put docker stats in various tables</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">Yes</td>
+</tr>
+</tbody></table>
+
+<h3 id="prepopulate_footer"><code>prepopulate_footer</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>prepopulate_footer
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Put the opening environment information at the bottom of the footer table</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">Yes</td>
+</tr>
+</tbody></table>
+
+<h3 id="report_jvm_version"><code>report_jvm_version</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>report_jvm_version ## @params       directory
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Report the JVM version of the given directory</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<h2 id="returns-version">@returns      version</h2>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Stable</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">Yes</td>
+</tr>
+</tbody></table>
+
+<h2 id="private-evolving-replaceable">Private/Evolving/Replaceable</h2>
+
+<h3 id="verify_patchdir_still_exists"><code>verify_patchdir_still_exists</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>verify_patchdir_still_exists
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>Verify that the patch directory is still in working order since bad actors on some systems wipe it out. If not, recreate it and then exit</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<h2 id="returns-may-exit-on-failure">@returns     may exit on failure</h2>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">Yes</td>
+</tr>
+</tbody></table>
+
+<h2 id="private-evolving-not-replaceable">Private/Evolving/Not Replaceable</h2>
+
+<h3 id="import_core"><code>import_core</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>import_core
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>import core library routines</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>Nothing</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+<h3 id="prechecks"><code>prechecks</code></h3>
+
+<ul>
+<li>Synopsis</li>
+</ul>
+<pre class="highlight plaintext"><code>prechecks
+</code></pre>
+
+<ul>
+<li>Description</li>
+</ul>
+
+<p>perform prechecks</p>
+
+<ul>
+<li>Returns</li>
+</ul>
+
+<p>exits on failure</p>
+
+<table><thead>
+<tr>
+<th style="text-align: left">Classification</th>
+<th style="text-align: left">Level</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: left">Audience</td>
+<td style="text-align: left">Private</td>
+</tr>
+<tr>
+<td style="text-align: left">Stability</td>
+<td style="text-align: left">Evolving</td>
+</tr>
+<tr>
+<td style="text-align: left">Replaceable</td>
+<td style="text-align: left">None</td>
+</tr>
+</tbody></table>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2015 <a href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. Apache Yetus and the Apache feather logo are trademarks of The Apache Software Foundation.
+                            </div>
+            </div>
+
+        </div>
+
+    </footer>
+</div>
+
+	</body>
+</html>

http://git-wip-us.apache.org/repos/asf/yetus/blob/1a20466f/documentation/in-progress/precommit-architecture/index.html
----------------------------------------------------------------------
diff --git a/documentation/in-progress/precommit-architecture/index.html b/documentation/in-progress/precommit-architecture/index.html
new file mode 100644
index 0000000..83f64bd
--- /dev/null
+++ b/documentation/in-progress/precommit-architecture/index.html
@@ -0,0 +1,226 @@
+<!---
+  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
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Yetus</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <link href="/assets/css/bootstrap.css" rel="stylesheet">
+		    <link href="/assets/css/bootstrap-theme.css" rel="stylesheet">
+                    <link href="/assets/css/font-awesome.css" rel="stylesheet">
+
+		    <!-- JS -->
+		    <script type="text/javascript" src="/assets/js/jquery-2.1.4.min.js"></script>
+		    <script type="text/javascript" src="/assets/js/bootstrap.js"></script>
+	</head>
+    <body>
+      <div class="navbar navbar-inverse navbar-static-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="img-responsive pull-left" href="/">
+                <img style="max-height: 40px; margin-top: 5px; margin-bottom: 5px;" src="/assets/img/yetus_logo.png" alt="Apache Yetus logo" />
+            </a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a href="/downloads/">Downloads</a>
+                <li><a href="/documentation/in-progress/">Documentation</a>
+                </li>
+                <li class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Get Involved <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/mailinglists"><i class="fa fa-commenting"></i> Mailing Lists</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="http://issues.apache.org/jira/browse/YETUS"><i class="fa fa-bug"></i> JIRA (Bugs)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://git-wip-us.apache.org/repos/asf?s=yetus"><i class="fa fa-code"></i> Source (Apache)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://github.com/apache/yetus"><i class="fa fa-github-alt"></i> Source (GitHub)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/contribute"><i class="fa fa-code-fork"></i> Contributing</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/ApacheYetus"><i class="fa fa-twitter"></i> @ApacheYetus</a>
+                        </li>
+                    </ul>
+                </li>
+                <li>
+                    <li class="dropdown">
+                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+                        <ul class="dropdown-menu" role="menu">
+                            <li><a href="http://www.apache.org">Apache Homepage</a>
+                            </li>
+                            <li><a href="http://www.apache.org/licenses/">Apache License</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+                            </li>
+                            <li><a href="http://www.apache.org/security/">Security</a>
+                            </li>
+                        </ul>
+                    </li>
+                </li>
+            </ul>
+        </div>
+        <!--/.nav-collapse -->
+    </div>
+</div>
+
+      <div class="container">
+        <!---
+  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
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<h1 id="some-philosophy">Some Philosophy</h1>
+
+<ul>
+<li><p>Everyone&rsquo;s time is valuable.  The quicker contributors can get feedback and iterate, the more likely and faster their contribution will get checked in.  A committer should be able to focus on the core issues of a contribution rather than details that can be determined automatically.</p></li>
+<li><p>Precommit checks should be fast.  There is no value in testing parts of the source tree that are not immediately impacted by a change.  Unit testing is the target. They are not a replacement for full builds or integration tests.</p></li>
+<li><p>Many open source projects have a desire to have this capability.  Why not generalize a solution?</p></li>
+<li><p>In many build systems (especially with maven), a modular design has been picked.  Why not leverage that design to make checks faster?</p></li>
+<li><p>Projects that use the same language will, with a high degree of certainty, benefit from the same types of checks.</p></li>
+<li><p>Portability matters.  Tooling should be as operating system and language agnostic as possible.</p></li>
+</ul>
+
+<h1 id="phases">Phases</h1>
+
+<p>test-patch works effectively under several different phases:</p>
+
+<h2 id="initialize">Initialize</h2>
+
+<p>This is where test-patch configures and validates the environment.  Some things done in this phase:</p>
+
+<ul>
+<li>Defaults</li>
+<li>Parameter handling</li>
+<li>Importing plug-ins and personalities</li>
+<li>Docker container launching</li>
+<li>Re-exec support</li>
+<li>Patch file downloading</li>
+<li>git repository management (fresh pull, branch switching, etc)</li>
+</ul>
+
+<h2 id="precheck">Precheck</h2>
+
+<p>Checks done here are <em>fatal</em>.</p>
+
+<p>This acts as a verification of all of the setup parts and is the final place to short-cut the full test cycle.  The most significant built-in check done here is verifying the patch file is a valid.</p>
+
+<h2 id="patch-file-tests">Patch File Tests</h2>
+
+<p>Tests that only require the patch file are run.  Note that the repository is still from the initial checkout!</p>
+
+<h2 id="compile-cycle-branch">Compile Cycle (Branch)</h2>
+
+<p>When compilation must be done, we follow these five steps:</p>
+
+<ul>
+<li>The list of modules that require analysis is built.</li>
+<li>A precompile step to set things up for the actual compile</li>
+<li>The actual compile</li>
+<li>A postcompile to do analysis on the output of that compile phase</li>
+<li>A rebuild phase to run tests that require recompiles</li>
+</ul>
+
+<p>The first time this is done is with the pristine checkout.  This is called the &ldquo;branch compile&rdquo;.  For this pass, this is where the &lsquo;before&rsquo; work is handled.  Some things that typically get checked in this phase:</p>
+
+<ul>
+<li>The first pass of files and modules that will get patched</li>
+<li>Validation and information gathering of the source tree pre-patch</li>
+<li>javadoc, scaladoc, etc</li>
+</ul>
+
+<h2 id="distribution-clean">Distribution Clean</h2>
+
+<p>This step is to wipe the repository clean back to a pristine state such that the previous cycle will not impact the next cycle.</p>
+
+<h2 id="patch-application">Patch Application</h2>
+
+<p>The patch gets applied.</p>
+
+<h2 id="compile-cycle-patch">Compile Cycle (Patch)</h2>
+
+<p>Now that the patch has been applied the steps to compile we outlined in the compilation (branch) phase are repeated but with the patch applied. This is where a lot of &#39;after&rsquo; checks are performed.</p>
+
+<h2 id="unit-tests">Unit Tests</h2>
+
+<p>Since unit tests are generally the slowest part of the precommit process, they are run last.  At this point, all the prerequisites to running them should be in place and ready to go.</p>
+
+<h2 id="reporting">Reporting</h2>
+
+<p>Finally, the results are reported to the screen and, optionally, to JIRA and/or whatever bug system has been configured.</p>
+
+<h1 id="test-flow">Test Flow</h1>
+
+<p>The basic workflow for many of the sub-items in individual phases are:</p>
+
+<ol>
+<li>print a header, so the end user knows that something is happening</li>
+<li>verify if the test is needed.  If so, continue on.  Otherwise, return success and let the next part of the phase execute.</li>
+<li>Ask the personality about what modules and what flags should get used</li>
+<li>Execute maven (or some other build tool) in the given modules with the given flags. Log the output and record the time and result code.</li>
+<li>Do any extra work as appropriate (diffs, counts, etc) and either accept the status and message given by the maven run or change the vote, message, log file, etc, based upon this extra work.</li>
+<li>Add the outcome(s) to the report generator</li>
+</ol>
+
+<p>As one can see, the modules list is one of the key inputs into what actually gets executed.  As a result, projects must full flexibility in either adding, modifying, or even removing modules from the test list.  If a personality removes the entire list of modules, then that test should just be ignored.</p>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2015 <a href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. Apache Yetus and the Apache feather logo are trademarks of The Apache Software Foundation.
+                            </div>
+            </div>
+
+        </div>
+
+    </footer>
+</div>
+
+	</body>
+</html>

http://git-wip-us.apache.org/repos/asf/yetus/blob/1a20466f/documentation/in-progress/precommit-basic/index.html
----------------------------------------------------------------------
diff --git a/documentation/in-progress/precommit-basic/index.html b/documentation/in-progress/precommit-basic/index.html
new file mode 100644
index 0000000..0f51c09
--- /dev/null
+++ b/documentation/in-progress/precommit-basic/index.html
@@ -0,0 +1,351 @@
+<!---
+  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
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Yetus</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <link href="/assets/css/bootstrap.css" rel="stylesheet">
+		    <link href="/assets/css/bootstrap-theme.css" rel="stylesheet">
+                    <link href="/assets/css/font-awesome.css" rel="stylesheet">
+
+		    <!-- JS -->
+		    <script type="text/javascript" src="/assets/js/jquery-2.1.4.min.js"></script>
+		    <script type="text/javascript" src="/assets/js/bootstrap.js"></script>
+	</head>
+    <body>
+      <div class="navbar navbar-inverse navbar-static-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="img-responsive pull-left" href="/">
+                <img style="max-height: 40px; margin-top: 5px; margin-bottom: 5px;" src="/assets/img/yetus_logo.png" alt="Apache Yetus logo" />
+            </a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a href="/downloads/">Downloads</a>
+                <li><a href="/documentation/in-progress/">Documentation</a>
+                </li>
+                <li class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Get Involved <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/mailinglists"><i class="fa fa-commenting"></i> Mailing Lists</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="http://issues.apache.org/jira/browse/YETUS"><i class="fa fa-bug"></i> JIRA (Bugs)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://git-wip-us.apache.org/repos/asf?s=yetus"><i class="fa fa-code"></i> Source (Apache)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://github.com/apache/yetus"><i class="fa fa-github-alt"></i> Source (GitHub)</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="/contribute"><i class="fa fa-code-fork"></i> Contributing</a>
+                        </li>
+                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/ApacheYetus"><i class="fa fa-twitter"></i> @ApacheYetus</a>
+                        </li>
+                    </ul>
+                </li>
+                <li>
+                    <li class="dropdown">
+                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+                        <ul class="dropdown-menu" role="menu">
+                            <li><a href="http://www.apache.org">Apache Homepage</a>
+                            </li>
+                            <li><a href="http://www.apache.org/licenses/">Apache License</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                            </li>
+                            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+                            </li>
+                            <li><a href="http://www.apache.org/security/">Security</a>
+                            </li>
+                        </ul>
+                    </li>
+                </li>
+            </ul>
+        </div>
+        <!--/.nav-collapse -->
+    </div>
+</div>
+
+      <div class="container">
+        <!---
+  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
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<h1 id="test-patch">test-patch</h1>
+
+<ul>
+<li><a href="#Purpose">Purpose</a></li>
+<li><a href="#Pre-requisites">Pre-requisites</a></li>
+<li><a href="#Basic_Usage">Basic Usage</a></li>
+<li><a href="#Build_Tool">Build Tool</a></li>
+<li><a href="#Providing_Patch_Files">Providing Patch Files</a></li>
+<li><a href="#Project-Specific_Capabilities">Project-Specific Capabilities</a></li>
+<li><a href="#MultiJDK">MultiJDK</a></li>
+<li><a href="#Docker">Docker</a></li>
+</ul>
+
+<h1 id="purpose">Purpose</h1>
+
+<p>As part of Apache Hadoop&rsquo;s commit process, all patches to the source base go through a precommit test that does some (relatively) light checking to make sure the proposed change does not break unit tests and/or passes some other prerequisites such as code formatting guidelines.  This is meant as a preliminary check for committers so that the basic patch is in a known state and for contributors to know if they have followed the project&rsquo;s guidelines.  This check, called test-patch, along with a helper program, called smart-apply-patch, may also be used by individual developers to verify a patch prior to sending to the Apache Hadoop QA systems.</p>
+
+<p>Other projects have adopted a similar methodology after seeing great success in the Apache Hadoop model.  Some have even gone as far as forking Apache Hadoop&rsquo;s precommit code and modifying it to meet their project&rsquo;s needs.</p>
+
+<p>One of the key facets of Apache Yetus is to bring together all of these forks under a common code base to help software development
+as a whole.</p>
+
+<h1 id="pre-requisites">Pre-requisites</h1>
+
+<p>test-patch and smart-apply-patch are written in bash for maximum portability.  As such, it mostly assumes the locations of commands to be in the file path. However, in many cases, this assumption may be overridden via command line options.</p>
+
+<p>For Solaris and Solaris-like operating systems, the default location for the POSIX binaries is in /usr/xpg4/bin and the default location for the GNU binaries is /usr/gnu/bin.</p>
+
+<h2 id="base-requirements">Base Requirements</h2>
+
+<p>test-patch requires these installed components to execute:</p>
+
+<ul>
+<li>A project with a supported build tool (ant, gradle, maven, &hellip;)</li>
+<li>git-based project (and git 1.7.3 or higher installed)</li>
+<li>bash v3.2 or higher</li>
+<li>GNU diff</li>
+<li>GNU patch</li>
+<li>POSIX awk</li>
+<li>POSIX grep</li>
+<li>POSIX sed</li>
+<li><a href="http://curl.haxx.se/">curl</a> command</li>
+<li>file command</li>
+</ul>
+
+<h2 id="optional-requirements">Optional Requirements</h2>
+
+<p>Features are plug-in based and enabled either individually or collectively on the command line. From there, these are activated based upon tool availability, the languages being tested, etc.  The external dependencies of plug-ins may have different licensing requirements than Apache Yetus.</p>
+
+<p>Bug Systems:</p>
+
+<ul>
+<li><a href="https://github.com/">GitHub</a>-based issue tracking</li>
+<li><a href="https://www.atlassian.com/software/jira">JIRA</a>-based issue tracking</li>
+</ul>
+
+<p>Unit Test Formats:</p>
+
+<ul>
+<li><a href="http://junit.org/">JUnit</a></li>
+<li><a href="https://testanything.org/">TAP</a></li>
+</ul>
+
+<p>Language Support, Licensing, and more:</p>
+
+<ul>
+<li><a href="http://creadur.apache.org/rat/">Apache Creadur Rat</a> entries in build system</li>
+<li><a href="http://checkstyle.sourceforge.net/">checkstyle</a> entries in build system (ant and maven only)</li>
+<li><a href="http://findbugs.sourceforge.net/">FindBugs</a> entries in build system and 3.x executables</li>
+<li><a href="http://perlcritic.com/">Perl::Critic</a> installed</li>
+<li><a href="http://www.pylint.org/">pylint</a> installed</li>
+<li><a href="http://batsov.com/rubocop/">rubocop</a> installed</li>
+<li><a href="https://github.com/YorickPeterse/ruby-lint">ruby-lint</a> installed</li>
+<li><a href="https://github.com/koalaman/shellcheck">shellcheck</a> installed, preferably 0.3.6 or higher</li>
+</ul>
+
+<h1 id="basic-usage">Basic Usage</h1>
+
+<p>The first step for a successful deployment is determining which features/plug-ins to enable:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --list-plugins
+</code></pre>
+
+<p>This option will list all of the available plug-ins that are installed in the default location.  From this list, the specific plug-ins can be enabled:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --plugins<span class="o">=</span><span class="s2">"ant,maven,shellcheck,xml"</span> &lt;other options&gt;
+</code></pre>
+
+<p>As a short-cut, every plug-in may be enabled via the special &lsquo;all&rsquo; type:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --plugins<span class="o">=</span><span class="s2">"all"</span> &lt;other options&gt;
+</code></pre>
+
+<p><code>--plugins</code> also allows some basic &ldquo;arithmetic&rdquo;:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --plugins<span class="o">=</span><span class="s2">"all,-checkstyle,-findbugs"</span> &lt;other options&gt;
+</code></pre>
+
+<p>This will enable all plug-ins for potential usage, except for checkstyle and findbugs.</p>
+
+<p><strong>NOTE: The examples in this section will assume that the necessary <code>--plugins</code> option has been set on the command line as appropriate for your particular installation.</strong></p>
+
+<p>This command will execute basic patch testing against a patch file stored in &ldquo;filename&rdquo;:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">cd</span> &lt;your repo&gt;
+<span class="gp">$ </span><span class="nb">test</span>-patch.sh --dirty-workspace --project<span class="o">=</span>projectname &lt;filename&gt;
+</code></pre>
+
+<p>The <code>--dirty-workspace</code> flag tells test-patch that the repository is not clean and it is ok to continue.  By default, unit tests are not run since they may take a significant amount of time.</p>
+
+<p>To do turn them on, we need to provide the &ndash;run-tests option:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">cd</span> &lt;your repo&gt;
+<span class="gp">$ </span><span class="nb">test</span>-patch.sh --dirty-workspace --run-tests &lt;filename&gt;
+</code></pre>
+
+<p>This is the same command, but now runs the unit tests.</p>
+
+<p>A typical configuration is to have two repositories.  One with the code you are working on and another, clean repository.  This means you can:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">cd</span> &lt;workrepo&gt;
+<span class="gp">$ </span>git diff master &gt; /tmp/patchfile
+<span class="gp">$ </span><span class="nb">cd</span> ../&lt;testrepo&gt;
+<span class="gp">$ </span><span class="nb">test</span>-patch.sh --basedir<span class="o">=</span>&lt;testrepo&gt; --resetrepo /tmp/patchfile
+</code></pre>
+
+<p>We used two new options here.  &ndash;basedir sets the location of the repository to use for testing.  &ndash;resetrepo tells test patch that it can go into <strong>destructive</strong> mode.  Destructive mode will wipe out any changes made to that repository, so use it with care!</p>
+
+<p>After the tests have run, there is a directory that contains all of the test-patch related artifacts.  This is generally referred to as the patchprocess directory.  By default, test-patch tries to make something off of /tmp to contain this content.  Using the <code>--patch-dir</code> option, one can specify exactly which directory to use.  This is helpful for automated precommit testing so that Jenkins or other automated workflow system knows where to look to gather up the output.</p>
+
+<p>For example:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --jenkins --patch-dir<span class="o">=</span><span class="k">${</span><span class="nv">WORKSPACE</span><span class="k">}</span>/patchprocess --basedir<span class="o">=</span><span class="k">${</span><span class="nv">WORKSPACE</span><span class="k">}</span>/source <span class="k">${</span><span class="nv">WORKSPACE</span><span class="k">}</span>/patchfile
+</code></pre>
+
+<p>&hellip; will trigger test-patch to run in fully automated Jenkins mode, using ${WORKSPACE}/patchprocess as its scratch space, ${WORKSPACE}/source as the source repository, and ${WORKSPACE}/patchfile as the name of the patch to test against.</p>
+
+<h1 id="build-tool">Build Tool</h1>
+
+<p>Out of the box, test-patch is built to use maven.  But what if the project is built using something else, such as ant?</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> --build-tool<span class="o">=</span>ant
+</code></pre>
+
+<p>will tell test-patch to use ant instead of maven to drive the project.</p>
+
+<h1 id="providing-patch-files">Providing Patch Files</h1>
+
+<h2 id="jira">JIRA</h2>
+
+<p>It is a fairly common practice within the Apache community to use Apache&rsquo;s JIRA instance to store potential patches.  As a result, test-patch supports providing just a JIRA issue number.  test-patch will find the <em>last</em> attachment, download it, then process it.</p>
+
+<p>For example:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> HADOOP-9905
+</code></pre>
+
+<p>&hellip; will process the patch file associated with this JIRA issue.</p>
+
+<p>If the Apache JIRA system is not in use, then override options may be provided on the command line to point to a different JIRA instance.</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --jira-issue-re<span class="o">=</span><span class="s1">'^PROJECT-[0-9]+$'</span> --jira-base-url<span class="o">=</span><span class="s1">'https://example.com/jira'</span> PROJECT-90
+</code></pre>
+
+<p>&hellip; will process the patch file attached to PROJECT-90 on the JIRA instance located on the example.com server.</p>
+
+<h2 id="github">GITHUB</h2>
+
+<p>test-patch has some basic support for Github.  test-patch supports many forms of providing pull requests to work on:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --github-repo<span class="o">=</span>apache/pig 99
+</code></pre>
+
+<p>or</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh https://github.com/apache/pig/pulls/99
+</code></pre>
+
+<p>or</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh https://github.com/apache/pig/pulls/99.patch
+</code></pre>
+
+<p>&hellip; will process PR #99 on the apache/pig repo.</p>
+
+<h2 id="generic-urls">Generic URLs</h2>
+
+<p>Luckily, test-patch supports  provide ways to provide unified diffs via URLs.</p>
+
+<p>For example:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> https://example.com/webserver/file.patch
+</code></pre>
+
+<p>&hellip; will download and process the file.patch from the example.com webserver.</p>
+
+<h1 id="project-specific-capabilities">Project-specific Capabilities</h1>
+
+<p>Due to the extensible nature of the system, test-patch allows for projects to define project-specific rules which we call personalities.  (How to build those rules is covered elsewhere.) There are two ways to specify which personality to use:</p>
+
+<h2 id="direct-method">Direct Method</h2>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> --personality<span class="o">=(</span>filename<span class="o">)</span>
+</code></pre>
+
+<p>This tells test-patch to use the personality in the given file.</p>
+
+<h2 id="project-method">Project Method</h2>
+
+<p>However, test-patch can detect if it is a personality that is in its &ldquo;personality&rdquo; directory based upon the project name:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> --project<span class="o">=(</span>project<span class="o">)</span>
+</code></pre>
+
+<h1 id="multijdk">MultiJDK</h1>
+
+<p>For many projects, it is useful to test Java code against multiple versions of JDKs at the same time.  test-patch can do this with the &ndash;multijdkdirs option:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> --multijdkdirs<span class="o">=</span><span class="s2">"/j/d/k/1,/j/d/k/2"</span>
+</code></pre>
+
+<p>Not all Java tests support this mode, but those that do will now run their tests with all of the given versions of Java consecutively (e.g., javac&ndash;the Java compliation test).  Tests that do not support MultiJDK mode (e.g., checkstyle, mvn install) will use JAVA_HOME.</p>
+
+<p>NOTE: JAVA_HOME is always appended to the list of JDKs in MultiJDK mode.  If JAVA_HOME is in the list, it will be moved to the end.</p>
+
+<h1 id="docker">Docker</h1>
+
+<p>test-patch also has a mode to utilize Docker:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh <span class="o">(</span>other options<span class="o">)</span> --docker
+</code></pre>
+
+<p>This will do some preliminary setup and then re-execute itself inside a Docker container.  For more information on how to provide a custom Dockerfile, see the advanced guide.</p>
+
+<h2 id="in-closing">In Closing</h2>
+
+<p>test-patch has many other features and command line options for the basic user.  Many of these are self-explanatory.  To see the list of options, run test-patch.sh without any options or with &ndash;help.</p>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2015 <a href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. Apache Yetus and the Apache feather logo are trademarks of The Apache Software Foundation.
+                            </div>
+            </div>
+
+        </div>
+
+    </footer>
+</div>
+
+	</body>
+</html>


Mime
View raw message