Apache Yetus 0.13.0 Release Notes

These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements.

Support for prototool has been removed and replaced with buf.

This change moves the default Apache Yetus docker image to a new version of Ubuntu as well as upgrades many, many bundled components to new releases. Users utilizing the docker image should upgrade carefully!

Early removal notice:


The default branch setting for patch testing is now 'main'. Docker images based upon Apache Yetus' top of tree are now tagged with 'main'.


All references have been switched to 'main'.

If --mvn-only-changed-tests=true is added to the command line and a patch has only unit test modifications, test-patch will limit unit testing to just those tests.

This feature should be considered experimental at this time.


The log files for tests have been popped up into the voting table for many of the generated reports.


This is a breaking change. It reworks how tests should be registering the logfiles that they present to users and how bugsystem reporting engines should retrieve the filenames for those logfiles:

This change replaces the Apache Yetus comment with GitHub Status notifications. Note that your GitHub Token requires repo:status write or better privileges.

The apache/yetus docker image now defaults to running test-patch.

Prior to this change, using qbt or running test-patch on the tag of a repository under certain situations may have resulted in the tests being executed on a different commit. After this change, the local repository's tags are forcibly updated from the remote repository's references when --resetrepo is passed as an argument.

Comments added on a per line basis were only ever shipped with support on GitHub, only on PRs, and was rarely used due to being very noisy. That functionality has been removed and replaced with GitHub Checks Annotations when run under GitHub Actions with support for both branches and PRs. Any 3rd party plug-ins that support line-level comments will need to be updated to support the new API and file naming conventions in order to be compatible.

With GitHub Checks Annotations being the preferred way on GitHub for CI systems to make individual notes, the API requirements and surrounding support structure for line comments have also changed:

The precommit documentation on the ASF site has been revamped! It now features greatly expanded information, more parameters are documented, more commands are documented, and even separate pages per plug-in!


With this change, several plugins that did not generate line comments now do.


The generic_postlog_compare / generic_pre_handler / generic_post_handler functions have been deprecated and replaced with module_postlog_compare / module_pre_handler / module_post_handler functions. A new root_postlog_compare has been added that works similarly to module_postlog_compare for plug-ins that do not support the MODULE system. Using root_postlog_compare makes writing plug-ins for static linters significantly easier. See the associated APIs for more information.

With this change, the whitespace plug-in has been renamed 'blanks'. Users who specifically add whitespace to the plug-in list will need to change their parameters. The old parameters are still supported (--whitespace-tabs-ignore-list=<list> and --whitespace-eol-ignore-list=<list>) in this release but will likely be removed in the next one.

It also takes two different parameters: --blanks-eol-ignore-file=<file> and --blanks-tabs-ignore-file=<file> . These files contain regular expressions of files to ignore for their various targets, similar to the –excludes file option. By default, Apache Yetus will automatically use .yetus/blanks-eol.txt and .yetus/blanks-tabs.txt if they exist.


A new website link checker has been added to the CI process to verify that links are actually valid.

Git SHAs should now be more consistent on repositories hosted on GitHub, especially when running on Jenkins.

Prior to this fix, checkmake may have returned irrelevant results for a given change.

With this release, Apache Yetus' test-patch facility is now available as a Github Action! Please see the documentation for more details.

Many outputs for plug-ins have been reworked to provide a consistent format as well as compatibility with such features as GitHub Checks Annotations. Additionally, most of the log files have been renamed to be prefixed with results to make them more consistent between the various modes.

Homebrew support has been moved into its own repository. The new tap name is apache/yetus-homebrew. See the downloads documentation for more information.

The website now has links to all of the changelogs and release notes of every Apache Yetus release!

The jython versions of releasedocmaker and shelldocs have been removed. The releasedocmaker and shelldocs features of yetus-maven-plugin have been removed.

The Docker image now has the Apache Creadur RAT jar included. This change should allow for the asflicense plug-in for test-patch to work out of the box.

Apache Yetus no longer supports GitHub username and password logins. You must use a GitHub tokens in lieu.

The new github-status-recovery program is a way to feed GitHub results from an already executed precommit run. It requires a GitHub App token to populate the GitHub Checks and GitHub Statuses data.

precommit now defaults to using Docker BuildKit (with the notable exception of Travis CI). To disable, use --docker-buildkit=false.

Python 2 support has been removed from the Apache Yetus container image. Additionally, all of the code written in Python has been upgraded to require Python 3.8.

Codespell is now supported to provide spell checking for source trees.

Buildkite is now supported as a robot.