Skip to content

HBASE-26650 Create module hbase-client-test-support - #4016

Closed
ndimiduk wants to merge 1 commit into
apache:masterfrom
ndimiduk:26650-create-module-hbase-client-test-support
Closed

HBASE-26650 Create module hbase-client-test-support#4016
ndimiduk wants to merge 1 commit into
apache:masterfrom
ndimiduk:26650-create-module-hbase-client-test-support

Conversation

@ndimiduk

Copy link
Copy Markdown
Member

Move SpanData matcher support classes to new module. Probably there are others, but start with these for now.

This is a prerequisite for further progress with the otel effort.

move SpanData matcher support classes to new module.
@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 27sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 26sMaven dependency ordering for branch
+1 💚mvninstall4m 9smaster passed
+1 💚compile8m 59smaster passed
+1 💚checkstyle1m 57smaster passed
+1 💚spotbugs11m 23smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall3m 50sthe patch passed
+1 💚compile9m 1sthe patch passed
+1 💚javac9m 1sthe patch passed
+1 💚checkstyle1m 55sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 4sThe patch has no ill-formed XML file.
+1 💚hadoopcheck19m 28sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚spotbugs12m 32sthe patch passed
_ Other Tests _
+1 💚asflicense0m 45sThe patch does not generate ASF License warnings.
84m 4s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#4016
Optional Testsdupname asflicense javac hadoopcheck xml compile spotbugs hbaseanti checkstyle
unameLinux ee4df724f37a 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 7972b2e
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count141 (vs. ulimit of 30000)
modulesC: hbase-client-test-support . hbase-client U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 26sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 26sMaven dependency ordering for branch
+1 💚mvninstall4m 51smaster passed
+1 💚compile3m 21smaster passed
+1 💚shadedjars8m 25sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 25smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall4m 46sthe patch passed
+1 💚compile3m 27sthe patch passed
+1 💚javac3m 27sthe patch passed
+1 💚shadedjars8m 56spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 47sthe patch passed
_ Other Tests _
-1 ❌unit164m 20sroot in the patch failed.
210m 19s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#4016
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 61628ad517d1 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 7972b2e
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/testReport/
Max. process+thread count3563 (vs. ulimit of 30000)
modulesC: hbase-client-test-support . hbase-client U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 26sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 23sMaven dependency ordering for branch
+1 💚mvninstall4m 35smaster passed
+1 💚compile3m 3smaster passed
+1 💚shadedjars9m 9sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 45smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall4m 17sthe patch passed
+1 💚compile3m 2sthe patch passed
+1 💚javac3m 2sthe patch passed
+1 💚shadedjars9m 15spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 56sthe patch passed
_ Other Tests _
+1 💚unit432m 15sroot in the patch passed.
476m 33s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#4016
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 33ccb0d6ea08 4.15.0-163-generic #171-Ubuntu SMP Fri Nov 5 11:55:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 7972b2e
Default JavaAdoptOpenJDK-1.8.0_282-b08
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/testReport/
Max. process+thread count4412 (vs. ulimit of 30000)
modulesC: hbase-client-test-support . hbase-client U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4016/1/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9

Copy link
Copy Markdown
Contributor

Why not just put them under hbase-client test code?

@ndimiduk

Copy link
Copy Markdown
MemberAuthor

Why not just put them under hbase-client test code?

Because one test jar should not import another ; test jars should be leaf nodes in any dependency graph. I want to consume these classes from hbase-server:test:jar.

@Apache9

Copy link
Copy Markdown
Contributor

Why not just put them under hbase-client test code?

Because one test jar should not import another ; test jars should be leaf nodes in any dependency graph. I want to consume these classes from hbase-server:test:jar.

Is this a best practice? At least in the current hbase code base, we need to depend on the test jar of some modules, for example HBaseTestingUtil is in hbase-server module, and we use it in hbase-mapreduce module.

You can check the pom definition, we have lots of tests jar dependencies…

@ndimiduk

Copy link
Copy Markdown
MemberAuthor

Is this a best practice? At least in the current hbase code base, we need to depend on the test jar of some modules, for example HBaseTestingUtil is in hbase-server module, and we use it in hbase-mapreduce module.

You can check the pom definition, we have lots of tests jar dependencies…

The HBaseTestingUtility is an especially bad example, because it's how we suggest users test their HBase applications (I do see that on branch-2 it's marked as @deprecated, with no mention of a replacement). In that sense, it's a part of our public API that is provided by a test jar!

I think dependency on a test jar is bad practice and maven authors appear to agree -- you have to go out of your way to have maven produce test jars, they're disabled by default. However, I don't want to hold up the otel improvements on these kinds of layout/organization improvements to our repo.

@ndimiduk
ndimiduk deleted the 26650-create-module-hbase-client-test-support branch January 12, 2022 20:34
@ndimiduk

Copy link
Copy Markdown
MemberAuthor

I have stumbled into one annoyance -- when a dependency jar is of type:test-jar, it seems that the transitive dependencies are not included. So for example, say I want to use the OpenTelemetryClassRule and OpenTelemetryTestRule defined in hbase-server:test from hbase-endpoint:test. These rules use classes from io.opentelemetry:opentelemetry-sdk-testing. This transitive dependency is not included automatically -- hbase-endpoint:test must explicitly include both hbase-server:test and io.opentelemetry:opentelemetry-sdk-testing, otherwise a NoClassDefFoundError is thrown at test time.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ndimiduk@Apache-HBase@Apache9