These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements.
| YETUS-15 | Critical | 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.
Also, other changes introduced:
| YETUS-681 | Major | Add robots plugin type |
This change makes significant changes to precommit to support a variety of automation systems for continuous integration (aka robots or the --robot flag) as well as rework the existing Jenkins support (--jenkins).
--jenkins flag has been removed. test-patch/qbt should now autodetect not only if it is running Jenkins, but also Circle CI, Gitlab CI, and Travis CI. Please see the robots document for specifics as to how that works, limitations, etc.test-patch/qbt may update the git remote repository information for branches. This is done because in some configurations, the information is missing and is required for proper functionality. In cases where this is not possible, the programs will treat the remote repositories as offline or the local repository as shallow. As a result, some functionality may not be available. The limitations may include test-patch functioning as though it was qbt. In other words, performing a full build rather than a patch-based build.--git-shallow may be used to pre-warn that the local checkout is shallow/other branches are not available.--git-offline may be used to pre-warn that remote repositories are not available/pulls will fail.--offline sets --git-offline as well.--build-tool set to the appropriate plugin, including nobuild to disable build tools altogether.${HOME} should now be set to somewhere valid if it isn't valid. This will enable Apache Maven and other utilities that would otherwise crash due to broken homes.${GITHUB_REPO} information will likely cause problems with autodetection of Github information. See YETUS-721 for more information.${JENKINS} should specifically start checking for ${ROBOTTYPE}=jenkins for equivalent functionality. But be aware that coding specifically for Jenkins may be incorrect.add_docker_env. For environment variables, this should be used instead of directly setting ${DOCKER_EXTRAARGS}. Environment variables set via add_docker_env will be resolved just prior to Docker run thus enabling the value to change.${BUILDMODE} during locate_patch resolution. This change was made due to limitations with some bug system/CI integrations. See set_buildmode for more information.github_breakup_url can now be used for Github repo URLs and not just pull requests.gitlab_breakup_url can now be used for Gitlab repo URLs and not just merge requests.| YETUS-723 | Major | Overhaul the docker support for 2018 |
This change represents a fairly large overhaul of precommit's Docker support in order to fix many outstanding bugs and feature requests. As a result, there are several incompatible changes from previous versions. Please see the precommit Docker documentation for additional information.
COPY and ADD support when building (requires Docker API version 18+).org.apache.yetus to make them easier to find via docker inspect.--dockeronfail is no longer supported.ANT_ARGS, ANT_OPTS, and MAVEN_OPTS are now honored. Before they were always overwritten.yetus/tp-(number) images are now removed after normal completion.--docker-privd flag must be set to true.--docker-bash-debug will run test-patch.sh with bash -x inside the container for extensive debugging.yetus_file_to_array function.relative_dir has been promoted to yetuslib as yetus_relative_dirANT_ARGS has been replaced with YETUS_ANT_ARGS| YETUS-750 | Major | don't try patch on a git format-patch file |
Apache Yetus tools no longer support patch levels greater than 1.
| YETUS-751 | Minor | line comments generate too many messages; not obvious how to disable |
The API for bug system line comments has completely changed. Please see the relevant documentation.
| YETUS-721 | Critical | personalities shouldn't directly set repository information |
Personalities should no longer directly set GITHUB_REPO or GITLAB_REPO. Instead, they should set GITHUB_REPO_DEFAULT and GITLAB_REPO_DEFAULT. This will allow for certain CI environments to proper auto-determine the place where the build is coming from.