YETUS-926. Add visual separation to console report summary (#81)

The final output table is a wall of text. If you squint a little, you
can see that there are subsections contained within. Add some visual
separation between sections so that one can navigate the results.

Before this change:

```
| Vote |       Subsystem |  Runtime   | Comment
============================================================================
|      |                 |            | Prechecks
|  +1  |        dupname  |   0m  0s   | No case conflicting files found.
|  +1  |      hbaseanti  |   0m  0s   | Patch does not have any anti-patterns.
|  +1  |        @author  |   0m  0s   | The patch does not contain any @author
|      |                 |            | tags.
|  +1  |     test4tests  |   0m  0s   | The patch appears to include 4 new or
|      |                 |            | modified test files.
|      |                 |            | master Compile Tests
|  +1  |     mvninstall  |   4m  6s   | master passed
|  +1  |        compile  |   0m 31s   | master passed
|  +1  |     checkstyle  |   0m 37s   | master passed
|  +1  |     shadedjars  |   2m 30s   | branch has no errors when building our
|      |                 |            | shaded downstream artifacts.
|  +1  |        javadoc  |   0m 22s   | master passed
|   0  |       spotbugs  |   3m 20s   | Used deprecated FindBugs config;
|      |                 |            | considering switching to SpotBugs.
|  +1  |       findbugs  |   3m 19s   | master passed
|      |                 |            | Patch Compile Tests
|  +1  |     mvninstall  |   2m 49s   | the patch passed
|  +1  |        compile  |   0m 30s   | the patch passed
|  +1  |          javac  |   0m 30s   | the patch passed
|  -0  |     checkstyle  |   0m 34s   | hbase-server: The patch generated 8 new
|      |                 |            | + 234 unchanged - 7 fixed = 242 total
|      |                 |            | (was 241)
|  +1  |     whitespace  |   0m  0s   | The patch has no whitespace issues.
|  +1  |     shadedjars  |   2m 31s   | patch has no errors when building our
|      |                 |            | shaded downstream artifacts.
|  +1  |    hadoopcheck  |  11m 22s   | Patch does not cause any errors with
|      |                 |            | Hadoop 2.8.5 2.9.2 or 3.1.1 3.1.2.
|  +1  |        javadoc  |   0m 18s   | the patch passed
|  +1  |       findbugs  |   3m 19s   | the patch passed
|      |                 |            | Other Tests
|  -1  |           unit  |  26m 48s   | hbase-server in the patch failed.
|  +1  |     asflicense  |   0m 22s   | The patch does not generate ASF License
|      |                 |            | warnings.
|      |                 |  62m 50s   |
```

After:

```
| Vote |       Subsystem |  Runtime   | Comment
============================================================================
+---------------------------------------------------------------------------
|      |                 |            | Prechecks
+---------------------------------------------------------------------------
|  +1  |        dupname  |   0m  0s   | No case conflicting files found.
|  +1  |      hbaseanti  |   0m  0s   | Patch does not have any anti-patterns.
|  +1  |        @author  |   0m  0s   | The patch does not contain any @author
|      |                 |            | tags.
|  +1  |     test4tests  |   0m  0s   | The patch appears to include 4 new or
|      |                 |            | modified test files.
+---------------------------------------------------------------------------
|      |                 |            | master Compile Tests
+---------------------------------------------------------------------------
|  +1  |     mvninstall  |   3m 54s   | master passed
|  +1  |        compile  |   0m 30s   | master passed
|  +1  |     checkstyle  |   0m 37s   | master passed
|  +1  |     shadedjars  |   2m 27s   | branch has no errors when building our
|      |                 |            | shaded downstream artifacts.
|  +1  |        javadoc  |   0m 23s   | master passed
|   0  |       spotbugs  |   3m 23s   | Used deprecated FindBugs config;
|      |                 |            | considering switching to SpotBugs.
|  +1  |       findbugs  |   3m 22s   | master passed
+---------------------------------------------------------------------------
|      |                 |            | Patch Compile Tests
+---------------------------------------------------------------------------
|  +1  |     mvninstall  |   2m 42s   | the patch passed
|  +1  |        compile  |   0m 29s   | the patch passed
|  +1  |          javac  |   0m 29s   | the patch passed
|  -0  |     checkstyle  |   0m 34s   | hbase-server: The patch generated 8 new
|      |                 |            | + 234 unchanged - 7 fixed = 242 total
|      |                 |            | (was 241)
|  +1  |     whitespace  |   0m  0s   | The patch has no whitespace issues.
|  +1  |     shadedjars  |   2m 27s   | patch has no errors when building our
|      |                 |            | shaded downstream artifacts.
|  +1  |    hadoopcheck  |  11m 36s   | Patch does not cause any errors with
|      |                 |            | Hadoop 2.8.5 2.9.2 or 3.1.1 3.1.2.
|  +1  |        javadoc  |   0m 19s   | the patch passed
|  +1  |       findbugs  |   3m 22s   | the patch passed
+---------------------------------------------------------------------------
|      |                 |            | Other Tests
+---------------------------------------------------------------------------
|  -1  |           unit  |  51m 52s   | hbase-server in the patch failed.
|  +1  |     asflicense  |   0m 11s   | The patch does not generate ASF License
|      |                 |            | warnings.
|      |                 |  87m 43s   |
```

Signed-off-by: Sean Busbey <busbey@apache.org>
1 file changed
tree: a12ef66c032636d70f173dc36bddb7de58d23c70
  1. .circleci/
  2. .semaphore/
  3. asf-site-src/
  4. audience-annotations-component/
  5. Formula/
  6. hooks/
  7. precommit/
  8. releasedocmaker/
  9. shelldocs/
  10. yetus-assemblies/
  11. yetus-dist/
  12. yetus-maven-plugin/
  13. yetus-minimaven-plugin/
  14. .cirrus.yml
  15. .gitattributes
  16. .gitignore
  17. .gitlab-ci.yml
  18. .hadolint.yaml
  19. .jshintignore
  20. .markdownlint.yaml
  21. .rubocop.yml
  22. .travis.yml
  23. Dockerfile
  24. Jenkinsfile
  25. LICENSE
  26. NOTICE
  27. pom.xml
  28. README.md
  29. start-build-env.sh
  30. yetus-dl.sh
README.md

Apache Yetus

Apache Yetus is a collection of libraries and tools that enable contribution and release process for software projects.

Components

Here is a list of the major components:

  • Website source Holds our documentation, which is presented via our website.

  • 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 to get started working with precommit.

  • Audience Annotations 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 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 analyzes Jira and Git information to produce Markdown formatted release notes.

  • 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 for requirements and instructions.

# 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 site:stage

After executing one or more of the Apache Maven commands, artifacts will be in yetus-dist/target/artifacts or ready for a mvn deploy.

Container Quickstart

The project makes available two convenience container images on https://hub.docker.com for both tagged releases and for the master branch. It is highly recommended that casual users use a tagged release so as to not be surprised by incompatible changes that are still rolling through the master branch.

apache/yetus-base

This image contains all of the tools that Apache Yetus supports. It is intended to be used when the Apache Yetus binaries are running outside of the container to speed up building the actual testing container.

apache/yetus

This image contains all of apache/yetus-base plus a built and installed version of Apache Yetus. The binaries are in /usr/bin and therefore part of the default path. This image is ideal for CI systems that take a container image as the operating environment or for interactive use.