You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@yetus.apache.org by bu...@apache.org on 2016/04/14 08:23:59 UTC

[06/24] yetus git commit: git hash c7cc9dba3463b790739d34a6a8fcc020f64de53e

http://git-wip-us.apache.org/repos/asf/yetus/blob/3510a128/documentation/0.2.1/precommit-basic/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-basic/index.html b/documentation/0.2.1/precommit-basic/index.html
new file mode 100644
index 0000000..e918f1c
--- /dev/null
+++ b/documentation/0.2.1/precommit-basic/index.html
@@ -0,0 +1,398 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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="#Automation">Automation</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>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>
+<li><a href="https://www.bugzilla.org/">Bugzilla</a>-based issue tracking (Read Only)</li>
+</ul>
+
+<p>Build Tools:</p>
+
+<ul>
+<li><a href="https://ant.apache.org">ant</a></li>
+<li><a href="https://www.gnu.org/software/autoconf/autoconf.html">autoconf</a></li>
+<li><a href="https://www.cmake.org">cmake</a></li>
+<li><a href="https://www.gradle.org">gradle</a></li>
+<li>make</li>
+<li><a href="https://maven.apache.org">maven</a></li>
+</ul>
+
+<p>Automation and Isolation:</p>
+
+<ul>
+<li><a href="https://www.docker.com">Docker</a> version 1.6.0+</li>
+<li><a href="https://www.jenkins-ci.org">Jenkins</a></li>
+</ul>
+
+<p>Unit Test Formats:</p>
+
+<ul>
+<li><a href="https://cmake.org/Wiki/CMake/Testing_With_CTest">ctest</a></li>
+<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 <q>arithmetic</q>:</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 <q>filename</q>:</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>
+
+<h1 id="automation">Automation</h1>
+
+<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 --robot --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 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.  This will always run the unit tests, write answers back to bug systems, remove old, stopped/exited Docker images and containers after 24 hours, forcibly use &ndash;resetrepo, and more.  The &ndash;build-url option is also useful when running in &ndash;robot mode so that emails and such
+have a location to look at the output artifacts:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --robot --build-url<span class="o">=</span>http://server.example.name:80/<span class="k">${</span><span class="nv">buildnumber</span><span class="k">}</span>/
+</code></pre>
+
+<p>Some plug-ins such as Maven have special handling if there are multiple executions of test-patch happening at once.  It is very common when using automation systems to have multiple runs on the same host. In order to assist these plug-ins, an instance identifier may be provided:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span><span class="nb">test</span>-patch.sh --robot --instance<span class="o">=</span>1
+</code></pre>
+
+<p>If &ndash;robot is specified without an instance, a random number is generated and used.</p>
+
+<p>There is some special handling if Jenkins is actually your automation tool.  Instead of using &ndash;robot, use &ndash;jenkins:</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>This will enable &ndash;robot, set the &ndash;build-url option from the ${BUILD_URL} environment variable, and the instance identifier is set to the ${EXECUTOR_NUMBER}.</p>
+
+<p>If stuck containers are a problem, a more aggressive robot may be enabled with the &ndash;sentinel option.  This option enables killing containers that have been running for over 24 hours as well.</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 <q>personality</q> 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-2016 <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/3510a128/documentation/0.2.1/precommit-bugsystems/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-bugsystems/index.html b/documentation/0.2.1/precommit-bugsystems/index.html
new file mode 100644
index 0000000..537b712
--- /dev/null
+++ b/documentation/0.2.1/precommit-bugsystems/index.html
@@ -0,0 +1,214 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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="bug-system-support">Bug System Support</h1>
+
+<p>test-patch has the ability to support multiple bug systems.  Bug tools have some extra hooks to fetch patches, line-level reporting, and posting a final report. Every bug system plug-in must have one line in order to be recognized:</p>
+<pre class="highlight shell"><code>add_bugsystem &lt;pluginname&gt;
+</code></pre>
+
+<ul>
+<li><p>pluginname_locate_patch</p>
+
+<ul>
+<li>Given input from the user, download the patch if possible.</li>
+</ul></li>
+<li><p>pluginname_determine_branch</p>
+
+<ul>
+<li>Using any heuristics available, return the branch to process, if possible.</li>
+</ul></li>
+<li><p>pluginname_determine_issue</p>
+
+<ul>
+<li>Using any heuristics available, set the issue, bug number, etc, for this bug system, if possible.  This is typically used to fill in supplementary information in the final output table.</li>
+</ul></li>
+<li><p>pluginname_write_comment</p>
+
+<ul>
+<li>Given text input, write this output to the bug system as a comment.  NOTE: It is the bug system&rsquo;s responsibility to format appropriately.</li>
+</ul></li>
+<li><p>pluginname_linecomments</p>
+
+<ul>
+<li>This function allows for the system to write specific comments on specific lines if the bug system supports code review comments.</li>
+</ul></li>
+<li><p>pluginname_finalreport</p>
+
+<ul>
+<li>Write the final result table to the bug system.</li>
+</ul></li>
+</ul>
+
+<h1 id="bugzilla-specific">Bugzilla Specific</h1>
+
+<p>Currently, Bugzilla support is read-only.  To use it, the Bug ID must be preferenced with &lsquo;BZ:&rsquo;.  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> BZ:4
+</code></pre>
+
+<p>&hellip; will pull down Bugzilla ID #4.</p>
+
+<p>Using the <code>--bugzilla-base-url</code> on the command line or BUGZILLA_BASE_URL in a project&rsquo;s personality will define the location of the Bugzilla instance.  By default, it is <a href="https://bz.apache.org/bugzilla">https://bz.apache.org/bugzilla</a> .</p>
+
+<h1 id="github-specific">GitHub Specific</h1>
+
+<p>GitHub supports the full range of functionality, including putting comments on individual lines.  Be aware, however, that test-patch.sh will require that GitHub PRs be fully rebased (i.e., a single commit) in many circumstances.</p>
+
+<p>By default, the GitHub plug-in assumes that <a href="https://github.com">https://github.com</a> is the base URL for GitHub.  Enterprise users may override this with the <code>--github-base-url</code> for the normal web user interface and <code>--github-api-url</code> for the API URL.  Personalities may use GITHUB_API_URL and GITHUB_BASE_URL.</p>
+
+<p>The specific repository on GitHub is defined with either <code>--github-repo</code> on the command line or GITHUB_REPO in a personality.  It should take the form of <q>user/repo</q>.</p>
+
+<p>In order to comment on issues or, depending upon the security setup of the repo, authentication credentials.  The GitHub plug-in supports two types:</p>
+
+<ul>
+<li><p>Token-based:  <code>--github-token</code> or GITHUB_TOKEN</p></li>
+<li><p>Username/password: <code>--github-user</code>/ GITHUB_USER , <code>--github-password</code> / GITHUB_PASSWD</p></li>
+</ul>
+
+<p>Pull requests that are made off of a specific branch will switch the test repo to that branch, if permitted.  If the pull request references a JIRA issue that matches the given JIRA issue regexp in the Subject, the JIRA plug-in will also be invoked as needed.</p>
+
+<h1 id="jira-specific">JIRA Specific</h1>
+
+<p>JIRA support allows both patch downloads and summary writes.  It also supports branch detection-based upon the name of the attached patch file.</p>
+
+<p>JIRA issues are invoked by matching the command line option to a specific regular expression as given by the <code>--jira-issue-re</code> option or via the JIRA_ISSUE_RE personality variable.  By default, the plug-in uses <a href="https://issues.apache.org/jira">https://issues.apache.org/jira</a> as the JIRA instance to use.  However that may be overwritten via the <code>--jira-base-url</code> option or personalities may define via JIRA_URL.</p>
+
+<p>In order to write information on the issue, JIRA requires username and password authentication using the <code>--jira-user</code>/<code>--jira-password</code> options or the JIRA_USER and JIRA_PASSWORD variables in a personality.</p>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2016 <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/3510a128/documentation/0.2.1/precommit-buildtools/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-buildtools/index.html b/documentation/0.2.1/precommit-buildtools/index.html
new file mode 100644
index 0000000..264df83
--- /dev/null
+++ b/documentation/0.2.1/precommit-buildtools/index.html
@@ -0,0 +1,314 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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="build-tool-support">Build Tool Support</h1>
+
+<p>test-patch has the ability to support multiple build tools.  Build tool plug-ins have some extra hooks to do source and object maintenance at key points. Every build tool plug-in must have one line in order to be recognized:</p>
+<pre class="highlight shell"><code>add_build_tool &lt;pluginname&gt;
+</code></pre>
+
+<h1 id="global-variables">Global Variables</h1>
+
+<ul>
+<li><p>BUILDTOOLCWD</p>
+
+<ul>
+<li>This variable determines where the build tool&rsquo;s command (as returned by pluginname_executor) should actually execute.  It should be one of three values:</li>
+<li>basedir  - always execute at the root of the source tree</li>
+<li>module   - switch to the directory as given by the module being processed</li>
+<li>/(path)  - change to the directory as given by this absolute path. If the path does not exist, it will be created.</li>
+</ul></li>
+</ul>
+
+<p>If /(path) is used, two special substitutions may be made:</p>
+
+<ul>
+<li>@@@BASEDIR@@@ will be replaced with the root of the source tree</li>
+<li>@@@MODULEDIR@@@ will be replaced with the module name</li>
+</ul>
+
+<p>This allows for custom directories to be created and used as necessary.</p>
+<pre class="highlight plaintext"><code>The default is module.
+</code></pre>
+
+<ul>
+<li><p>UNSUPPORTED_TEST</p>
+
+<ul>
+<li>If pluginname_modules_worker is given a test type that is not supported by the build system, set UNSUPPORTED_TEST=true.  If it is supported, set UNSUPPORTED_TEST=false.</li>
+</ul></li>
+</ul>
+
+<p>For example, the gradle build tool does not have a standard way to execute checkstyle. So when checkstyle is requested, gradle_modules_worker sets UNSUPPORTED_TEST to true and returns out of the routine.</p>
+
+<h1 id="required-functions">Required Functions</h1>
+
+<ul>
+<li><p>pluginname_buildfile</p>
+
+<ul>
+<li>This should be an echo of the file that controls the build system.  This is used for module determination. If the build system wishes to disable module determination, it should echo with no args.</li>
+</ul></li>
+<li><p>pluginname_executor</p>
+
+<ul>
+<li>This should be an echo of how to run the build tool, any extra arguments, etc.</li>
+</ul></li>
+<li><p>pluginname_modules_worker</p>
+
+<ul>
+<li>Input is the branch and the test being run.  This should call <code>modules_workers</code> with the generic parts to run that test on the build system.  For example, if it is convention to use &lsquo;test&rsquo; to trigger &#39;unit&rsquo; tests, then <code>module_workers</code> should be called with &#39;test&rsquo; appended onto its normal parameters.</li>
+</ul></li>
+<li><p>pluginname_builtin_personality_modules</p>
+
+<ul>
+<li>Default method to determine how to enqueue modules for processing.  Note that personalities may override this function.</li>
+</ul></li>
+<li><p>pluginname_builtin_personality_file_tests</p>
+
+<ul>
+<li>Default method to determine which tests to trigger.  Note that personalities may override this function.</li>
+</ul></li>
+</ul>
+
+<h1 id="optional-functions">Optional Functions</h1>
+
+<ul>
+<li><p>pluginname_postapply_install</p>
+
+<ul>
+<li>After the install step, this allows the build tool plug-in to do extra work.</li>
+</ul></li>
+<li><p>pluginname_parse_args</p>
+
+<ul>
+<li>executed prior to any other above functions except for pluginname_usage. This is useful for parsing the arguments passed from the user and setting up the execution environment.</li>
+</ul></li>
+<li><p>pluginname_initialize</p>
+
+<ul>
+<li>After argument parsing and prior to any other work, the initialize step allows a plug-in to do any precursor work, set internal defaults, etc.</li>
+</ul></li>
+<li><p>pluginname_reorder_modules</p>
+
+<ul>
+<li>This functions allows the plugin to (re-)order the modules (e.g. based on the output of the maven dependency plugin). When called CHANGED_MODULES already contains all changed modules. It must be altered to have an effect.</li>
+</ul></li>
+<li><p>pluginname_(test)_logfilter</p>
+
+<ul>
+<li>This functions should filter all lines relevant to this test from the logfile. It is called in preparation for the <code>calcdiffs</code> function. The test plug-in name should be in the (test) part of the function name.</li>
+</ul></li>
+<li><p>pluginname_(test)_calcdiffs</p>
+
+<ul>
+<li>Some build tools (e.g., maven) use custom output for certain types of compilations (e.g., java).  This allows for custom log file difference calculation used to determine the before and after views.</li>
+</ul></li>
+<li><p>pluginname_docker_support</p>
+
+<ul>
+<li>If this build tool requires extra settings on the <code>docker run</code> command line, this function should be defined and write those options into a file called <code>${PATCH_DIR}/buildtool-docker-params.txt</code>.  This is particularly useful for things like mounting volumes for repository caches.</li>
+</ul>
+
+<p><strong>WARNING</strong>: Be aware that directories that do not exist MAY be created by root by Docker itself under certain conditions.  It is HIGHLY recommend that <code>pluginname_initialize</code> be used to create the necessary directories prior to be used in the <code>docker run</code> command.</p></li>
+</ul>
+
+<h1 id="ant-specific">Ant Specific</h1>
+
+<h2 id="command-arguments">Command Arguments</h2>
+
+<p>test-patch always passes -noinput to Ant.  This forces ant to be non-interactive.</p>
+
+<h2 id="docker-mode">Docker Mode</h2>
+
+<p>In Docker mode, the <code>${HOME}/.ivy2</code> directory is shared amongst all invocations.</p>
+
+<h1 id="autoconf-specific">autoconf Specific</h1>
+
+<p>autoconf requires make to be enabled.  autoreconf is always used to rebuild the configure scripte.</p>
+
+<h2 id="command-arguments">Command Arguments</h2>
+
+<p>autoconf will always run configure with prefix set to a directory in the patch processing directory.  To configure other flags, set the AUTCONF_CONF_FLAGS environment variable.</p>
+
+<h1 id="cmake-specific">CMAKE Specific</h1>
+
+<p>By default, cmake will create a &#39;build&rsquo; directory and perform all work there.  This may be changed either on the command line or via a personality setting.  cmake requires make to be enabled.</p>
+
+<h1 id="gradle-specific">Gradle Specific</h1>
+
+<p>The gradle plug-in always rebuilds the gradlew file and uses gradlew as the method to execute commands.</p>
+
+<p>In Docker mode, the <code>${HOME}/.gradle</code> directory is shared amongst all invocations.</p>
+
+<h1 id="make-specific">Make Specific</h1>
+
+<p>No notes.</p>
+
+<h1 id="maven-specific">Maven Specific</h1>
+
+<h2 id="command-arguments">Command Arguments</h2>
+
+<p>test-patch always passes &ndash;batch-mode to maven to force it into non-interactive mode.  Additionally, some tests will also force -fae in order to get all of messages/errors during that mode. Some tests are executed with -DskipTests.  Additional arguments should be handled via the personality.</p>
+
+<h2 id="per-instance-repositories">Per-instance Repositories</h2>
+
+<p>Under many common configurations, maven (as of 3.3.3 and lower) may not properly handle being executed by multiple processes simultaneously, especially given that some tests require the <code>mvn install</code> command to be used.</p>
+
+<p>To assist, <code>test-patch</code> supports a <code>--mvn-custom-repo</code> option to set the <code>-Dmaven.repo.local</code> value to a per-instance repository directory keyed to the project and branch being used for the test.  If the <code>--jenkins</code> flag is also passed, the instance will be tied to the Jenkins <code>${EXECUTOR_NUMBER}</code> value.  Otherwise, the instance value will be randomly generated via <code>${RANDOM}</code>.  If the repository has not been used in 30 days, it will be automatically deleted when any test run for that project (regardless of branch!).</p>
+
+<p>By default, <code>test-patch</code> uses <code>${HOME}/yetus-m2</code> as the base directory to store these custom maven repositories.  That location may be changed via the <code>--mvn-custom-repos-dir</code> option.</p>
+
+<p>The location of the <code>settings.xml</code> may be changed via the <code>--mvn-settings</code> option.</p>
+
+<h2 id="docker-mode">Docker Mode</h2>
+
+<p>In Docker mode, <code>${HOME}/.m2</code> is shared amongst all invocations.  If <code>--mvn-custom-repos</code> is used, all of <code>--mvn-custom-repos-dir</code> is shared with all invocations.  The per-instance directory will be calculated and configured after Docker has launched.</p>
+
+<h2 id="test-profile">Test Profile</h2>
+
+<p>By default, test-patch will pass -Ptest-patch to Maven. This will allow you to configure special actions that should only happen when running underneath test-patch.</p>
+
+<h2 id="custom-maven-tests">Custom Maven Tests</h2>
+
+<p>Maven will test eclipse and site if maven is being used as the build tool and appropriate files trigger them.</p>
+
+<p>Maven will trigger add a maven install test when the <code>maven_add_install</code> function has been used and the related tests are requierd. Plug-ins that need to run maven before MUST call it as part of their respective initialize functions, otherwise maven may fail unexpectedly.  All Yetus provided plug-ins that require maven will trigger the maven install functionality.</p>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2016 <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/3510a128/documentation/0.2.1/precommit-glossary/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-glossary/index.html b/documentation/0.2.1/precommit-glossary/index.html
new file mode 100644
index 0000000..ce909eb
--- /dev/null
+++ b/documentation/0.2.1/precommit-glossary/index.html
@@ -0,0 +1,172 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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="glossary">Glossary</h1>
+
+<h2 id="generic-outside-definitions">Generic/outside definitions:</h2>
+
+<p>Apache&rsquo;s <a href="https://community.apache.org/contributors/">new contributor documentation</a> and Maven&rsquo;s <a href="https://maven.apache.org/glossary.html">glossary</a> are great places to start if you are new to Apache or Maven.</p>
+
+<ul>
+<li>Module</li>
+</ul>
+
+<p>Almost the same meaning as <q>sub-project</q> on Maven.</p>
+
+<h2 id="test-patch-specific">test-patch specific</h2>
+
+<ul>
+<li>Personality</li>
+</ul>
+
+<p>A chunk of shell code that tells test-patch this particular project&rsquo;s needs and special requirements</p>
+
+<ul>
+<li>Plug-ins</li>
+</ul>
+
+<p>Shell code snippets that define new, not built-in test types.</p>
+
+<ul>
+<li>Precommit</li>
+</ul>
+
+<p>An automated process that verifies a patch is <q>good</q> prior to a committer looking at it.</p>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2016 <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/3510a128/documentation/0.2.1/precommit-patchnames/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-patchnames/index.html b/documentation/0.2.1/precommit-patchnames/index.html
new file mode 100644
index 0000000..028d47f
--- /dev/null
+++ b/documentation/0.2.1/precommit-patchnames/index.html
@@ -0,0 +1,171 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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.
+-->
+
+<p>We use Apache Yetus to process your patch. It supports the following patterns and
+procedures for patch file names:</p>
+
+<h2 id="jira">JIRA</h2>
+
+<p>If JIRA support is configured, attach the patch to the given ISSUE and
+click &lsquo;Submit Patch&rsquo;.  The patch file should be named one of:</p>
+
+<ul>
+<li>ISSUE.patch</li>
+<li>ISSUE.###.patch</li>
+<li>ISSUE.branch.###.patch</li>
+<li>ISSUE-branch-###.patch</li>
+<li>ISSUE.###.branch.patch</li>
+<li>ISSUE-branch.###.patch</li>
+</ul>
+
+<p>The meaning of the subpart are the following:</p>
+
+<ul>
+<li>ISSUE: JIRA key (e.g. YETUS-1)</li>
+<li>branch: either the name of a branch or a git hash prefixed with <strong>git</strong> (e.g. branch-2.8 or git8e55427b35)</li>
+<li>###: revision of the patch (e.g. 00 or 01)</li>
+</ul>
+
+<h2 id="github">Github</h2>
+
+<p>If Github support is also configured, a comment that contains a link to a Pull Request&rsquo;s
+patch file (e.g., <a href="https://github.com/user/repo/pull/1.patch">https://github.com/user/repo/pull/1.patch</a>) will pull the patch from
+the given Github PR.</p>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2016 <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/3510a128/documentation/0.2.1/precommit-smart-apply-patch/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-smart-apply-patch/index.html b/documentation/0.2.1/precommit-smart-apply-patch/index.html
new file mode 100644
index 0000000..2e875b0
--- /dev/null
+++ b/documentation/0.2.1/precommit-smart-apply-patch/index.html
@@ -0,0 +1,168 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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="smart-apply-patch">smart-apply-patch</h1>
+
+<p><code>smart-apply-patch</code> is a command to help apply patches easily.  It uses the same plug-ins and many of the same options as test-patch.  This means that it can, for example, fetch patches from JIRA and apply them to a local source tree.</p>
+
+<h1 id="usage">Usage</h1>
+
+<p>Its simpliest form is used when a patch is stored in a local file:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span>smart-apply-patch patch
+</code></pre>
+
+<p>This will cause the command to run through various ways to verify and then apply the patch to the current repo, including deducing a patch level.</p>
+
+<p>Perhaps you just want to see if the patch even applies without changing your local repo.  The <code>--dry-run</code> option will just test for applicability:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span>smart-apply-patch --dry-run patch
+</code></pre>
+
+<p>For committers of projects, there is a special mode:</p>
+<pre class="highlight shell"><code><span class="gp">$ </span>smart-apply-patch --committer patch
+</code></pre>
+
+<p>that in addition to applying the patch will also attempt to:</p>
+
+<ul>
+<li>use <code>--whitespace=fix</code> mode</li>
+<li>add all newly created files in the repo</li>
+<li>use <code>--signoff</code> and commit the change via git-am</li>
+</ul>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2016 <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/3510a128/documentation/0.2.1/precommit-testformats/index.html
----------------------------------------------------------------------
diff --git a/documentation/0.2.1/precommit-testformats/index.html b/documentation/0.2.1/precommit-testformats/index.html
new file mode 100644
index 0000000..a86a27d
--- /dev/null
+++ b/documentation/0.2.1/precommit-testformats/index.html
@@ -0,0 +1,159 @@
+<!---
+  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 class="dropdown">
+                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation <span class="caret"></span></a>
+                    <ul class="dropdown-menu" role="menu">
+                      <li><a href="/documentation/0.1.0/">Docs for v0.1.0</a></li>
+                      <li><a href="/documentation/0.2.0/">Docs for v0.2.0</a></li>
+                      <li><a href="/documentation/0.2.1/">Docs for v0.2.1</a></li>
+                      <li><a href="/documentation/in-progress/">In Progress Docs for Contributors</a>
+                      </li>
+                    </ul>
+                </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-format-support">Test Format Support</h1>
+
+<p>test-patch has the ability to support multiple test formats. Test formats have some extra hooks to process the output of test tools and write the results to some tables. Every test format plug-in must have one line in order to be recognized:</p>
+<pre class="highlight shell"><code>add_test_format &lt;pluginname&gt;
+</code></pre>
+
+<ul>
+<li><p>pluginname_process_tests</p>
+
+<ul>
+<li>Given a path to the log file and tested module name, parse that file and store the test result into global variables and/or files.</li>
+</ul></li>
+<li><p>pluginname_finalize_results</p>
+
+<ul>
+<li>Using the results stored by pluginname_process_tests, write them to the test result table and/or the footer table for reporting.</li>
+</ul></li>
+</ul>
+
+	  </div>
+      <div class="container">
+    <hr>
+    <footer class="footer">
+        <div class="row-fluid">
+            <div class="span12 text-left">
+                            <div class="span12">
+                Copyright 2008-2016 <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>