yetus-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a.@apache.org
Subject [17/17] yetus git commit: YETUS-15. build environment
Date Sun, 11 Nov 2018 22:19:33 GMT
YETUS-15. build environment

Apache Yetus has been converted to use Apache Maven as a build tool. As a result, many changes
have taken place that directly impacts the project.

(Please see the release notes for YETUS-15 for any updates about this commit.)

* Source directories have been re-arranged and re-named:
  * All bash code is now in (feature)/src/main/shell
  * All python code is now in (feature)/src/main/python
* audience-annotations is mostly unchanged.
* releasedocmaker and shelldocs are now available as Jython-built jars.
* Introduction of the yetus-minimaven-plugin and yetus-maven-plugins.  The yetus-minimaven-plugin
is used to build Apache Yetus.  yetus-maven-plugin is an end-user artifact that gives access
some Apache Yetus features to Apache Maven and compatible build systems without needing any
external help (e.g., yetus-wrapper)
* Middleman is still used for creating the static website, however, it is now tied into the
'mvn site' command. 'mvn install' MUST be executed before running 'mvn site' as website generation
depends upon the yetus-minimaven-plugin.
* The content of yetus-project is now in the root of the source tree.
* The new yetus-dist module handles the creation of a complete distribution. The artifacts
are now in the yetus-dist/target directory.  The artifact contents are largely unchanged.
 New yetus-assemblies module and various Apache Maven configuration files have been added
to create distribution parity.
* The website is also available as a tar.gz tarball in the yetus-dist artifact area.
* The jdiff module is now always built.
* Version handling has been modified in several different locations and the executables themselves.
* The creationg of the source tar ball is now tied to the apache-release profile.

Also, other changes introduced:

* start-build-env.sh has been added to create a Docker-ized development environment. In particular,
this imports the .ssh and .gnupg directories and has all pre-requisites for building Apache
Yetus and making releases.
* A Dockerfile in root has been added for hub.docker.com and CI-system integration.
* The old Dockerfile (previously located at precommit/test-patch-docker and now located at
precommit/src/main/shell/test-patch-docker) has been changed to be able also to run releasedocmaker.
* Some ruby dependencies for the website have been for security reasons.
* JDK8 is now the minimum version of Java used to build the Apache Yetus Java components.
* precommit's shellcheck.sh now recognizes src/main/shell as containing shell code to check.
* releasedocmaker and shelldocs now explicitly call for python2

Signed-off-by: Kengo Seki <sekikn@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/yetus/repo
Commit: http://git-wip-us.apache.org/repos/asf/yetus/commit/6ebaa111
Tree: http://git-wip-us.apache.org/repos/asf/yetus/tree/6ebaa111
Diff: http://git-wip-us.apache.org/repos/asf/yetus/diff/6ebaa111

Branch: refs/heads/master
Commit: 6ebaa1119e611db14f219e289e33ab8ac5c254a7
Parents: a54a4f5
Author: Allen Wittenauer <aw@apache.org>
Authored: Fri Oct 20 07:22:56 2017 -0700
Committer: Allen Wittenauer <aw@apache.org>
Committed: Sun Nov 11 14:17:32 2018 -0800

----------------------------------------------------------------------
 .gitignore                                      |    4 +-
 .rat-excludes                                   |   18 -
 Dockerfile                                      |   29 +
 LICENSE                                         |   53 +
 README.md                                       |   54 +-
 VERSION                                         |    1 -
 asf-site-src/.dockerignore                      |   22 +
 asf-site-src/Dockerfile                         |   61 +
 asf-site-src/Gemfile.lock                       |   16 +-
 asf-site-src/config.rb                          |   16 +-
 asf-site-src/pom.xml                            |  268 ++
 asf-site-src/source/contribute/releases.md      |  444 ++-
 asf-site-src/source/contribute/website.md       |   45 +-
 asf-site-src/source/documentation/0.6.0         |    1 -
 asf-site-src/source/documentation/0.6.0.html.md |    1 -
 asf-site-src/source/documentation/0.7.0         |    1 -
 asf-site-src/source/documentation/0.7.0.html.md |    1 -
 asf-site-src/source/documentation/0.8.0         |    1 -
 asf-site-src/source/documentation/0.8.0.html.md |    1 -
 asf-site-src/src/main/assemblies/asf-site.xml   |   37 +
 .../audience-annotations-jdiff/pom.xml          |   33 +-
 .../assemblies/audience-annotations-jdiff.xml   |   37 +
 .../audience-annotations/pom.xml                |   42 +-
 .../main/assemblies/audience-annotations.xml    |   37 +
 .../yetus/audience/InterfaceAudience.java       |    7 +-
 .../yetus/audience/InterfaceStability.java      |    6 +-
 .../org/apache/yetus/audience/package-info.java |   22 +
 .../yetus/audience/tools/StabilityOptions.java  |    6 +-
 .../yetus/audience/tools/package-info.java      |   22 +
 audience-annotations-component/pom.xml          |   35 +-
 build.sh                                        |  283 --
 hooks/build                                     |   27 +
 pom.xml                                         |  336 ++
 precommit/coprocs.d/README.md                   |   25 -
 precommit/coprocs.d/e_a_r_helper.sh             |   35 -
 precommit/coprocs.d/process_counter.sh          |   48 -
 precommit/coprocs.d/reaper.sh                   |   30 -
 precommit/core.d/00-yetuslib.sh                 |  331 --
 precommit/core.d/01-common.sh                   |  615 ----
 precommit/core.d/builtin-bugsystem.sh           |  185 -
 precommit/core.d/builtin-personality.sh         |   39 -
 precommit/core.d/docker.sh                      |  661 ----
 precommit/core.d/patchfiles.sh                  |  342 --
 precommit/core.d/reaper.sh                      |  252 --
 precommit/docker-cleanup.sh                     |  206 --
 precommit/it/it-tp.sh                           |  124 -
 precommit/jenkins/jenkins-admin.py              |  245 --
 precommit/jenkins/unit-test-filter-file.example |    2 -
 precommit/personality/accumulo.sh               |   66 -
 precommit/personality/bigtop.sh                 |   32 -
 precommit/personality/drill.sh                  |   34 -
 precommit/personality/flink.sh                  |  115 -
 precommit/personality/geode.sh                  |   37 -
 precommit/personality/hadoop.sh                 |  563 ---
 precommit/personality/hbase.sh                  |  368 --
 precommit/personality/jmeter.sh                 |   71 -
 precommit/personality/kafka.sh                  |   71 -
 precommit/personality/orc.sh                    |   36 -
 precommit/personality/pig.sh                    |   70 -
 precommit/personality/ratis.sh                  |   32 -
 precommit/personality/samza.sh                  |   34 -
 precommit/personality/tajo.sh                   |   34 -
 precommit/personality/tez.sh                    |   34 -
 precommit/pom.xml                               |  154 +
 precommit/smart-apply-patch.sh                  |  333 --
 precommit/src/main/python/jenkins-admin.py      |  245 ++
 .../main/python/unit-test-filter-file.example   |    2 +
 precommit/src/main/shell/coprocs.d/README.md    |   25 +
 .../src/main/shell/coprocs.d/e_a_r_helper.sh    |   35 +
 .../src/main/shell/coprocs.d/process_counter.sh |   48 +
 precommit/src/main/shell/coprocs.d/reaper.sh    |   30 +
 precommit/src/main/shell/core.d/00-yetuslib.sh  |  331 ++
 precommit/src/main/shell/core.d/01-common.sh    |  643 ++++
 .../src/main/shell/core.d/builtin-bugsystem.sh  |  185 +
 .../main/shell/core.d/builtin-personality.sh    |   39 +
 precommit/src/main/shell/core.d/docker.sh       |  661 ++++
 precommit/src/main/shell/core.d/patchfiles.sh   |  342 ++
 precommit/src/main/shell/core.d/reaper.sh       |  252 ++
 precommit/src/main/shell/docker-cleanup.sh      |  206 ++
 precommit/src/main/shell/it/it-tp.sh            |  124 +
 .../src/main/shell/personality/accumulo.sh      |   66 +
 precommit/src/main/shell/personality/bigtop.sh  |   32 +
 precommit/src/main/shell/personality/drill.sh   |   34 +
 precommit/src/main/shell/personality/flink.sh   |  115 +
 precommit/src/main/shell/personality/geode.sh   |   37 +
 precommit/src/main/shell/personality/hadoop.sh  |  563 +++
 precommit/src/main/shell/personality/hbase.sh   |  368 ++
 precommit/src/main/shell/personality/jmeter.sh  |   71 +
 precommit/src/main/shell/personality/kafka.sh   |   71 +
 precommit/src/main/shell/personality/orc.sh     |   36 +
 precommit/src/main/shell/personality/pig.sh     |   70 +
 precommit/src/main/shell/personality/ratis.sh   |   32 +
 precommit/src/main/shell/personality/samza.sh   |   34 +
 precommit/src/main/shell/personality/tajo.sh    |   34 +
 precommit/src/main/shell/personality/tez.sh     |   34 +
 precommit/src/main/shell/personality/yetus.sh   |   32 +
 precommit/src/main/shell/smart-apply-patch.sh   |  333 ++
 .../src/main/shell/test-patch-docker/Dockerfile |  201 ++
 .../shell/test-patch-docker/Dockerfile-endstub  |   21 +
 .../test-patch-docker/launch-test-patch.sh      |   80 +
 precommit/src/main/shell/test-patch.d/ant.sh    |  221 ++
 .../src/main/shell/test-patch.d/asflicense.sh   |  204 ++
 precommit/src/main/shell/test-patch.d/author.sh |  148 +
 .../src/main/shell/test-patch.d/autoconf.sh     |  223 ++
 .../src/main/shell/test-patch.d/briefreport.sh  |  262 ++
 .../src/main/shell/test-patch.d/bugzilla.sh     |  154 +
 precommit/src/main/shell/test-patch.d/cc.sh     |   66 +
 .../src/main/shell/test-patch.d/checkstyle.sh   |  412 +++
 precommit/src/main/shell/test-patch.d/cmake.sh  |  202 ++
 precommit/src/main/shell/test-patch.d/ctest.sh  |  106 +
 .../src/main/shell/test-patch.d/dupname.sh      |  124 +
 .../src/main/shell/test-patch.d/findbugs.sh     |  488 +++
 precommit/src/main/shell/test-patch.d/github.sh |  601 ++++
 precommit/src/main/shell/test-patch.d/gradle.sh |  297 ++
 .../src/main/shell/test-patch.d/hadolint.sh     |  204 ++
 .../src/main/shell/test-patch.d/htmlout.sh      |  247 ++
 precommit/src/main/shell/test-patch.d/java.sh   |  219 ++
 precommit/src/main/shell/test-patch.d/jira.sh   |  526 +++
 precommit/src/main/shell/test-patch.d/junit.sh  |   92 +
 precommit/src/main/shell/test-patch.d/make.sh   |  181 +
 precommit/src/main/shell/test-patch.d/maven.sh  |  761 ++++
 .../src/main/shell/test-patch.d/nobuild.sh      |   54 +
 .../src/main/shell/test-patch.d/pathlen.sh      |  126 +
 .../src/main/shell/test-patch.d/perlcritic.sh   |  171 +
 precommit/src/main/shell/test-patch.d/pylint.sh |  183 +
 .../src/main/shell/test-patch.d/rubocop.sh      |  170 +
 .../src/main/shell/test-patch.d/ruby-lint.sh    |  200 ++
 precommit/src/main/shell/test-patch.d/scala.sh  |  140 +
 .../src/main/shell/test-patch.d/shellcheck.sh   |  263 ++
 .../src/main/shell/test-patch.d/shelldocs.sh    |  195 +
 precommit/src/main/shell/test-patch.d/tap.sh    |   81 +
 .../src/main/shell/test-patch.d/test4tests.sh   |   60 +
 .../src/main/shell/test-patch.d/unitveto.sh     |   62 +
 .../src/main/shell/test-patch.d/whitespace.sh   |  150 +
 precommit/src/main/shell/test-patch.d/xml.sh    |   90 +
 precommit/src/main/shell/test-patch.sh          | 3345 +++++++++++++++++
 precommit/test-patch-docker/Dockerfile          |  203 --
 precommit/test-patch-docker/Dockerfile-endstub  |   21 -
 .../test-patch-docker/launch-test-patch.sh      |   80 -
 precommit/test-patch.d/ant.sh                   |  221 --
 precommit/test-patch.d/asflicense.sh            |  204 --
 precommit/test-patch.d/author.sh                |  148 -
 precommit/test-patch.d/autoconf.sh              |  223 --
 precommit/test-patch.d/briefreport.sh           |  262 --
 precommit/test-patch.d/bugzilla.sh              |  154 -
 precommit/test-patch.d/cc.sh                    |   66 -
 precommit/test-patch.d/checkstyle.sh            |  412 ---
 precommit/test-patch.d/cmake.sh                 |  202 --
 precommit/test-patch.d/ctest.sh                 |  106 -
 precommit/test-patch.d/dupname.sh               |  124 -
 precommit/test-patch.d/findbugs.sh              |  488 ---
 precommit/test-patch.d/github.sh                |  601 ----
 precommit/test-patch.d/gradle.sh                |  297 --
 precommit/test-patch.d/hadolint.sh              |  204 --
 precommit/test-patch.d/htmlout.sh               |  247 --
 precommit/test-patch.d/java.sh                  |  219 --
 precommit/test-patch.d/jira.sh                  |  526 ---
 precommit/test-patch.d/junit.sh                 |   92 -
 precommit/test-patch.d/make.sh                  |  181 -
 precommit/test-patch.d/maven.sh                 |  761 ----
 precommit/test-patch.d/nobuild.sh               |   54 -
 precommit/test-patch.d/pathlen.sh               |  126 -
 precommit/test-patch.d/perlcritic.sh            |  171 -
 precommit/test-patch.d/pylint.sh                |  183 -
 precommit/test-patch.d/rubocop.sh               |  170 -
 precommit/test-patch.d/ruby-lint.sh             |  200 --
 precommit/test-patch.d/scala.sh                 |  140 -
 precommit/test-patch.d/shellcheck.sh            |  261 --
 precommit/test-patch.d/shelldocs.sh             |  195 -
 precommit/test-patch.d/tap.sh                   |   81 -
 precommit/test-patch.d/test4tests.sh            |   60 -
 precommit/test-patch.d/unitveto.sh              |   62 -
 precommit/test-patch.d/whitespace.sh            |  150 -
 precommit/test-patch.d/xml.sh                   |   90 -
 precommit/test-patch.sh                         | 3357 ------------------
 release-doc-maker/releasedocmaker.py            |  947 -----
 release-doc-maker/utils.py                      |  201 --
 releasedocmaker/pom.xml                         |  149 +
 .../src/main/assemblies/releasedocmaker.xml     |   46 +
 .../yetus/releasedocmaker/ReleaseDocMaker.java  |   45 +
 .../src/main/python/releasedocmaker.py          |   24 +
 .../src/main/python/releasedocmaker/__init__.py |  946 +++++
 .../src/main/python/releasedocmaker/utils.py    |  201 ++
 releasedocmaker/src/main/shell/releasedocmaker  |   30 +
 shelldocs/pom.xml                               |  161 +
 shelldocs/shelldocs.py                          |  426 ---
 .../org/apache/yetus/shelldocs/ShellDocs.java   |   45 +
 shelldocs/src/main/python/shelldocs.py          |   25 +
 shelldocs/src/main/python/shelldocs/__init__.py |  426 +++
 start-build-env.sh                              |   89 +
 yetus-assemblies/pom.xml                        |   47 +
 .../main/resources/assemblies/module-dist.xml   |   38 +
 .../main/resources/assemblies/script-bundle.xml |   46 +
 yetus-dist/pom.xml                              |  310 ++
 yetus-dist/src/main/assemblies/bin-tgz.xml      |   34 +
 yetus-dist/src/main/assemblies/site-meta.xml    |   38 +
 yetus-dist/src/main/assemblies/site-tgz.xml     |   34 +
 yetus-dist/src/main/assemblies/site.xml         |   81 +
 yetus-dist/src/main/assemblies/source.xml       |   43 +
 yetus-dist/src/main/assemblies/yetus-dist.xml   |   60 +
 yetus-dist/src/main/resources/VERSION           |    1 +
 yetus-maven-plugin/pom.xml                      |  137 +
 .../src/main/assemblies/yetus-maven-plugin.xml  |   37 +
 .../maven/plugin/fileops/CreateDirsMojo.java    |   97 +
 .../maven/plugin/fileops/package-info.java      |   22 +
 .../maven/plugin/rdm/ReleaseDocMakerMojo.java   |  234 ++
 .../yetus/maven/plugin/rdm/package-info.java    |   22 +
 .../apache/yetus/maven/plugin/utils/Utils.java  |  131 +
 .../yetus/maven/plugin/utils/package-info.java  |   22 +
 yetus-minimaven-plugin/pom.xml                  |   83 +
 .../maven/plugin/fileops/CreateSymLinkMojo.java |   94 +
 .../maven/plugin/fileops/MakeBins4Libs.java     |  156 +
 .../maven/plugin/fileops/package-info.java      |   22 +
 .../src/main/resources/licenses/ASL20.txt       |   14 +
 yetus-project/pom.xml                           |  171 -
 215 files changed, 21960 insertions(+), 18768 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 7383e69..480fc92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,7 +14,9 @@
 .project
 .settings
 target
-build
 publish
 *.swp
 *.pyc
+asf-site-src/source/documentation/0*
+asf-site-src/source/documentation/in-progress/CHANGELOG.md
+asf-site-src/source/documentation/in-progress/RELEASENOTES.md

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/.rat-excludes
----------------------------------------------------------------------
diff --git a/.rat-excludes b/.rat-excludes
deleted file mode 100644
index 6b5d184..0000000
--- a/.rat-excludes
+++ /dev/null
@@ -1,18 +0,0 @@
-\..*
-Gemfile.lock
-config.json
-bootstrap.*
-[Ff]ont-?[Aa]wesome.*
-glyphicons.*
-jquery.*
-package-list
-precommit-apidocs
-VERSION
-0.6.0
-0.6.0.html.md
-0.7.0
-0.7.0.html.md
-0.8.0
-0.8.0.html.md
-script.js
-unit-test-filter-file.example

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/Dockerfile
----------------------------------------------------------------------
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..2d4f052
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,29 @@
+# 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.
+
+ARG DOCKER_TAG=latest
+ARG DOCKER_REPO=apache/yetus
+FROM ${DOCKER_REPO}-base:${DOCKER_TAG}
+
+COPY . /ysrc/
+
+# hadolint ignore=DL3003
+RUN cd /ysrc \
+    && mvn clean install -DskipTests \
+    && rm -rf /.m2 \
+    && cd /usr \
+    && tar xzpf /ysrc/yetus-dist/target/artifacts/apache-yetus*bin.tar.gz \
+       --strip 1 \
+    && rm -rf /ysrc

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index 1c7f96b..21579c4 100644
--- a/LICENSE
+++ b/LICENSE
@@ -418,3 +418,56 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+----
+
+This project utilizes Jython 2.7 for running Python code on JVMs.  It
+is available under the Python Software Foundation License v2:
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Jython") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Jython alone
+or in any derivative version, provided, however, that PSF's License
+Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2007
+Python Software Foundation; All Rights Reserved" are retained in
+Jython alone or in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Jython or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Jython.
+
+4. PSF is making Jython available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF JYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF JYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING JYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Jython, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 2b814c2..a7dde39 100644
--- a/README.md
+++ b/README.md
@@ -16,36 +16,50 @@
   specific language governing permissions and limitations
   under the License.
 -->
-# Apache Yetus Source
+# Apache Yetus
 
 Apache Yetus is a collection of libraries and tools that enable
 contribution and release process for software projects.
 
-> :warning: **A Note About Repository Layout**
-> Yetus currently has no unified build tool, so individual components handle their own
tooling. The current layout
-> is temporary until such time as we adopt a project-wide build system. For more information,
watch
-> [YETUS-125](https://issues.apache.org/jira/browse/YETUS-125)
+## Components
 
-The current repository is broken up by major component:
+Here is a list of the major components:
 
 * [Website source](asf-site-src/)
 Holds our documentation, which is presented via [our website](https://yetus.apache.org/).
-See the [guide to contributing](asf-site-src/source/contribute.html.md) for instructions
on building the rendered
-version.
 * [Precommit](precommit/)
-Precommit provides robust tools to deal with contributions, including applying patches from
a variety of project sources
-and evaluating them against project norms via a system of plugins. See the
-[precommit overview](asf-site-src/source/documentation/in-progress/precommit-architecture.md)
to get started working with
-precommit. Note that even if the top level layout doesn't change, the layout of Precommit
might when it adds in
-unit tests under [YETUS-15](https://issues.apache.org/jira/browse/YETUS-15).
-* [Yetus Project Pom](yetus-project/)
-Provides common configuration and dependency management for Yetus' java based component.
Currently
-builds with Maven 3.2.0+.
+Precommit provides robust tools to deal with contributions, including applying patches from
a variety of project sources and evaluating them against project norms via a system of plugins.
See the [precommit overview](asf-site-src/source/documentation/in-progress/precommit-architecture.md)
to get started working with precommit.
 * [Audience Annotations](audience-annotations-component/)
-Audience Annotations allows projects to use Java Annotations to delineate public and non-public
parts of their APIs.
-It also provides doclets to generate javadocs filtered by intended audience. Currently builds
with Maven 3.2.0+.
+Audience Annotations allows projects to use Java Annotations to delineate public and non-public
parts of their APIs. It also provides doclets to generate javadocs filtered by the intended
audience. Currently builds with Maven 3.2.0+.
 * [Shelldocs](shelldocs/)
-Shelldocs processes comments on Bash functions for a annotations similar to Javadoc. It also
includes built in
-audience scoping functionality similar to the doclet from Audience Annotations.
+Shelldocs processes comments on Bash functions for annotations similar to Javadoc. It also
includes built-in audience scoping functionality similar to the doclet from Audience Annotations.
 * [Release Doc Maker](release-doc-maker/)
 Release Doc Maker analyzes Jira and Git information to produce Markdown formatted release
notes.
+* [yetus-maven-plugin](yetus-maven-plugin/)
+Builds a maven plugin that provides some small utilities for some uncommon maven requirements
(such as symlinks) in addition to being mavenized versions of some of the Apache Yetus functionality.
+
+## Building Quickstart
+
+For full instructions on how to build releases and the website, see the [guide to contributing](asf-site-src/source/contribute.html.md)
for requirements and instructions.
+
+```bash
+# Launch a Docker container that has all of the project's dependencies and a working build
environment
+./start-build-env.sh
+
+# Build the binary tarball, located in yetus-dist/target/artifacts:
+mvn clean install
+
+# Build the binary and source tarballs and sign the content:
+mvn clean install -Papache-release
+
+# Same, but if outside the container and need to let the system know that the OS uses 'gpg2'
instead of 'gpg':
+mvn clean install -Papache-release -Pgpg2
+
+# Build the binary and source tarballs, but skip signing them:
+mvn clean install -Papache-release -Dgpg.sign=skip
+
+# Build the website (requires a mvn install first)
+mvn site
+```
+
+After executing one or more of the Apache Maven commands, artifacts will be in `yetus-dist/target/artifacts`
or ready for a `mvn deploy`.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/VERSION
----------------------------------------------------------------------
diff --git a/VERSION b/VERSION
deleted file mode 100644
index 5ea35de..0000000
--- a/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.9.0-SNAPSHOT

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/asf-site-src/.dockerignore
----------------------------------------------------------------------
diff --git a/asf-site-src/.dockerignore b/asf-site-src/.dockerignore
new file mode 100644
index 0000000..1e75cce
--- /dev/null
+++ b/asf-site-src/.dockerignore
@@ -0,0 +1,22 @@
+# 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.
+README.md
+config.rb
+data
+pom.xml
+source
+src
+target
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/asf-site-src/Dockerfile
----------------------------------------------------------------------
diff --git a/asf-site-src/Dockerfile b/asf-site-src/Dockerfile
new file mode 100644
index 0000000..77f34a8
--- /dev/null
+++ b/asf-site-src/Dockerfile
@@ -0,0 +1,61 @@
+# 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.
+
+ARG DOCKER_TAG=latest
+FROM apache/yetus-build:${DOCKER_TAG}
+
+WORKDIR /root
+SHELL ["/bin/bash", "-o", "pipefail", "-c"]
+
+ARG GROUP_ID
+ARG USER_ID
+ARG USER_NAME
+
+# hadolint ignore=DL3008
+RUN apt-get -q update \
+    && apt-get -q install --no-install-recommends -y \
+      gnupg2 \
+      gnupg-agent \
+      pinentry-curses \
+      pinentry-tty \
+      subversion \
+      sudo \
+      vim \
+      zlib1g-dev \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/*
+
+# we really want gpg2 to be the default gpg implementation
+# it doesn't appear Xenial supports that though
+RUN ln -s /usr/bin/gpg2 /usr/local/bin/gpg
+# pre-install most of the middleman stack to save time
+# on re-launches
+RUN gem install bundler \
+    middleman:'~>3.4.0' \
+    middleman-livereload \
+    middleman-syntax \
+    redcarpet \
+    therubyracer \
+    tzinfo-data \
+    rake:10.3.1 \
+    nokogiri:1.8.5
+RUN bundle config --global github.https true
+RUN echo "export GPG_TTY=\$(tty)" >>  /root/.bashrc
+RUN groupadd --non-unique -g "${GROUP_ID}" "${USER_NAME}"
+RUN useradd -g "${GROUP_ID}" -u "${USER_ID}" -k /root -m "${USER_NAME}"
+# shellcheck disable=SC2039,SC1117
+RUN echo -e "${USER_NAME}\\tALL=NOPASSWD: ALL" > "/etc/sudoers.d/yetus-build-${USER_ID}"
+ENV HOME /home/${USER_NAME}

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/asf-site-src/Gemfile.lock
----------------------------------------------------------------------
diff --git a/asf-site-src/Gemfile.lock b/asf-site-src/Gemfile.lock
index 0ce4618..293c203 100644
--- a/asf-site-src/Gemfile.lock
+++ b/asf-site-src/Gemfile.lock
@@ -1,5 +1,5 @@
 GIT
-  remote: git://github.com/middleman/middleman-syntax.git
+  remote: https://github.com/middleman/middleman-syntax.git
   revision: 0377cc9d2219c2a6ffc2acfd39057f833934af9a
   specs:
     middleman-syntax (3.1.0)
@@ -7,7 +7,7 @@ GIT
       rouge (~> 3.1)
 
 GIT
-  remote: git://github.com/vmg/redcarpet.git
+  remote: https://github.com/vmg/redcarpet.git
   revision: 92a7b3ae2241b862e9bf45e0af3cf53ebdfb0afb
   specs:
     redcarpet (3.4.0)
@@ -96,13 +96,13 @@ GEM
       sprockets (~> 2.12.1)
       sprockets-helpers (~> 1.1.0)
       sprockets-sass (~> 1.3.0)
-    mime-types (3.1)
+    mime-types (3.2.2)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2016.0521)
+    mime-types-data (3.2018.0812)
     mini_portile2 (2.3.0)
     minitest (5.11.3)
     multi_json (1.13.1)
-    nokogiri (1.8.4)
+    nokogiri (1.8.5)
       mini_portile2 (~> 2.3.0)
     padrino-helpers (0.12.9)
       i18n (~> 0.6, >= 0.6.7)
@@ -113,14 +113,14 @@ GEM
     rack (1.6.10)
     rack-livereload (0.3.17)
       rack
-    rack-test (1.0.0)
+    rack-test (1.1.0)
       rack (>= 1.0, < 3)
     rake (10.3.1)
     rb-fsevent (0.10.3)
     rb-inotify (0.9.10)
       ffi (>= 0.5.0, < 2)
     ref (2.0.0)
-    rouge (3.1.1)
+    rouge (3.3.0)
     sass (3.4.25)
     sprockets (2.12.5)
       hike (~> 1.2)
@@ -162,4 +162,4 @@ DEPENDENCIES
   wdm (~> 0.1.0)
 
 BUNDLED WITH
-   1.16.1
+   1.17.1

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/asf-site-src/config.rb
----------------------------------------------------------------------
diff --git a/asf-site-src/config.rb b/asf-site-src/config.rb
index 0c7bf8a..5cb6093 100644
--- a/asf-site-src/config.rb
+++ b/asf-site-src/config.rb
@@ -29,7 +29,7 @@ set(
   lax_spacing:                  true
 )
 
-set :build_dir, 'publish'
+set :build_dir, 'target/site'
 
 set :css_dir, 'assets/css'
 set :js_dir, 'assets/js'
@@ -75,7 +75,7 @@ class ApiDocs
   end
 end
 
-SHELLDOCS = File.absolute_path('../shelldocs/shelldocs.py')
+SHELLDOCS = File.absolute_path('../shelldocs/src/main/python/shelldocs.py')
 
 def shelldocs(output, docs = [])
   unless FileUtils.uptodate?(output, docs) &&
@@ -88,7 +88,7 @@ def shelldocs(output, docs = [])
   end
 end
 
-RELEASEDOCMAKER = File.absolute_path('../release-doc-maker/releasedocmaker.py')
+RELEASEDOCMAKER = File.absolute_path('../releasedocmaker/src/main/python/releasedocmaker.py')
 
 def releasenotes(output, version)
   # TODO: check jira for last update to the version and compare to source
@@ -180,19 +180,19 @@ after_configuration do
   # has to be outside of hte asf-site-src directory.
   # TODO when we can, update to middleman 4 so we can use multiple source dirs
   # instead of symlinks
-  FileUtils.mkdir_p '../target/in-progress/precommit-apidocs'
-  precommit_shelldocs('../target/in-progress/precommit-apidocs', '../precommit')
+  FileUtils.mkdir_p 'target/site/documentation/in-progress/precommit-apidocs'
+  precommit_shelldocs('target/site/documentation/in-progress/precommit-apidocs', '../precommit/src/main/shell')
   unless data.versions.releases.nil?
     data.versions.releases.each do |release|
-      build_release_docs('../target', release)
-      releasenotes('../target', release)
+      build_release_docs('target', release)
+      releasenotes('target', release)
       # stitch the javadoc in place
       sitemap.register_resource_list_manipulator(
         "#{release}_javadocs".to_sym,
         ApiDocs.new(
           sitemap,
           "documentation/#{release}/audience-annotations-apidocs",
-          "../target/build-#{release}/audience-annotations-component/target/site/apidocs"
+          "target/build-#{release}/audience-annotations-component/target/site/apidocs"
         )
       )
     end

http://git-wip-us.apache.org/repos/asf/yetus/blob/6ebaa111/asf-site-src/pom.xml
----------------------------------------------------------------------
diff --git a/asf-site-src/pom.xml b/asf-site-src/pom.xml
new file mode 100644
index 0000000..c60221b
--- /dev/null
+++ b/asf-site-src/pom.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.yetus</groupId>
+    <artifactId>yetus-project</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>asf-site</artifactId>
+  <description>Website and Documentation for Apache Yetus</description>
+  <name>Apache Yetus - Website/Documentation</name>
+  <packaging>pom</packaging>
+
+  <properties>
+    <rdm.bin>${basedir}/../releasedocmaker/src/main/python/releasedocmaker.py</rdm.bin>
+  </properties>
+
+  <build>
+
+    <plugins>
+      <plugin>
+        <groupId>org.apache.yetus</groupId>
+        <artifactId>yetus-minimaven-plugin</artifactId>
+        <version>${project.version}</version>
+        <executions>
+          <execution>
+            <id>0.6.0</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>../../target/0.6.0</target>
+              <newLink>${basedir}/source/documentation/0.6.0</newLink>
+            </configuration>
+          </execution>
+          <execution>
+            <id>0.6.0.html.md</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>../../target/0.6.0.html.md</target>
+              <newLink>${basedir}/source/documentation/0.6.0.html.md</newLink>
+            </configuration>
+          </execution>
+          <execution>
+            <id>0.7.0</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>../../target/0.7.0</target>
+              <newLink>${basedir}/source/documentation/0.7.0</newLink>
+            </configuration>
+          </execution>
+          <execution>
+            <id>0.7.0.html.md</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>../../target/0.7.0.html.md</target>
+              <newLink>${basedir}/source/documentation/0.7.0.html.md</newLink>
+            </configuration>
+          </execution>
+          <execution>
+            <id>0.8.0</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>../../target/0.8.0</target>
+              <newLink>${basedir}/source/documentation/0.8.0</newLink>
+            </configuration>
+          </execution>
+          <execution>
+            <id>0.8.0.html.md</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>../../target/0.8.0.html.md</target>
+              <newLink>${basedir}/source/documentation/0.8.0.html.md</newLink>
+            </configuration>
+          </execution>
+          <execution>
+            <id>in-progress</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>symlink</goal>
+            </goals>
+            <configuration>
+              <target>in-progress</target>
+              <newLink>${basedir}/source/documentation/${project.version}</newLink>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>releasedocs</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <executable>${rdm.bin}</executable>
+              <requiresOnline>true</requiresOnline>
+              <arguments>
+                <argument>--lint=all</argument>
+                <argument>--license</argument>
+                <argument>--outputdir</argument>
+                <argument>source/documentation/in-progress</argument>
+                <argument>--project</argument>
+                <argument>YETUS</argument>
+                <argument>--projecttitle</argument>
+                <argument>Apache Yetus</argument>
+                <argument>--usetoday</argument>
+                <argument>--version</argument>
+                <argument>${project.version}</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>bundle-install</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <executable>bundle</executable>
+              <requiresOnline>true</requiresOnline>
+              <arguments>
+                <argument>install</argument>
+              </arguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>middleman</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+            <configuration>
+              <executable>bundle</executable>
+              <requiresOnline>false</requiresOnline>
+              <arguments>
+                <argument>exec</argument>
+                <argument>middleman</argument>
+                <argument>build</argument>
+              </arguments>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>website-docs</id>
+            <phase>site</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+            <configuration>
+              <finalName>apache-yetus-${project.version}-site</finalName>
+              <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
+              <descriptors>
+                <descriptor>src/main/assemblies/${project.artifactId}.xml</descriptor>
+              </descriptors>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>Gemfile.lock</exclude>
+            <exclude>source/assets/config.json</exclude>
+            <exclude>source/assets/css/bootstrap-theme.css</exclude>
+            <exclude>source/assets/css/bootstrap-theme.css.map</exclude>
+            <exclude>source/assets/css/bootstrap-theme.min.css</exclude>
+            <exclude>source/assets/css/bootstrap.css</exclude>
+            <exclude>source/assets/css/bootstrap.css.map</exclude>
+            <exclude>source/assets/css/bootstrap.min.css</exclude>
+            <exclude>source/assets/css/font-awesome.css</exclude>
+            <exclude>source/assets/css/font-awesome.min.css</exclude>
+            <exclude>source/assets/fonts/fontawesome-webfont.svg</exclude>
+            <exclude>source/assets/fonts/glyphicons-halflings-regular.svg</exclude>
+            <exclude>source/assets/js/bootstrap.js</exclude>
+            <exclude>source/assets/js/bootstrap.min.js</exclude>
+            <exclude>source/assets/js/jquery-2.1.4.min.js</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <configuration>
+          <filesets>
+            <fileset>
+              <directory>source/documentation/</directory>
+                <includes>
+                  <include>0*</include>
+                </includes>
+              <followSymlinks>false</followSymlinks>
+            </fileset>
+            <fileset>
+              <directory>source/documentation/in-progress</directory>
+                <includes>
+                  <include>CHANGELOG.md</include>
+                  <include>RELEASENOTES.md</include>
+                </includes>
+              <followSymlinks>false</followSymlinks>
+            </fileset>
+          </filesets>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-deploy-plugin</artifactId>
+        <configuration>
+          <skip>true</skip>
+        </configuration>
+      </plugin>
+
+
+    </plugins>
+  </build>
+
+</project>


Mime
View raw message