There is literally months worth of differences between the test-patch in trunk
vs. what is in Apache Yetus. There are too many changes to list, but some
highlights/most impactful for Hadoop:
* The YETUS-83 branch is being downloaded from github prior to every
run. This will allow the Yetus team to make quick workarounds if need be and
have those fixes appear on the very next run.
* This is ONLY configured for Hadoop common. It has NOT been deployed
to HDFS, MR, or YARN yet. That will likely happen later as we verify things
are good here and we’ve knocked off a few more of the bigger bugs.
* Multi JDK mode has been enabled with JDK 1.7.0_79 and JDK1.8.0_??
(see prev msg). This effectively makes runtime 2x, but that shouldn’t be a
surprise, right?
* Multiple maven repos have been enabled. These repos are per-project,
per-branch, per-Jenkins instance. The *first* run on a given repo dir will add
~10 minutes to the test time to build up the cache. These repos are NOT the
same repos used by the daily/nightly builds or, anyone else really, so should
put an end to all the conflicts. There is code in place to purge old repos
after some time.
* There are tons of fixes that would make take too much time to
mention. But the biggest one being that new files added during a patch weren’t
being properly analyzed. This has been fixed and should help tremendously for
things like weird findbug errors magically appearing after commit.
* Build order and how much is actually built is slightly different in
order to speed up certain tests and/or improve test coverage (which usually
means a slower run). This has some ramifications. It will likely flag actual
issues that were hidden before (like the MR unit test leaving files laying
around that the ASF rat check will pick up…) . Poms that are not doing
dependencies correctly will break. We *may* need to tune the ordering a bit in
some cases.
* The vast majority of the native code is now getting compiled. The
system should -1 if more warnings are added to the native code.
* Whitespace will now error on tabs as well as spaces.
* XML is being validated.
* patch format handling has been completely rewritten and should be
more tolerant
* Mentioning a github pull request URL in a certain way will cause
test-patch to pull from github
* The output is, in some ways, very different due to some major
internal structural differences to support multiple projects, multiple
languages, multiple build tools, etc, etc. The most obvious one is going to be
that the output is bigger with a lot more detail. Access to the various logs
that the vast majority of people care about is MUCH easier and more consistent.