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_dir
ANT_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.