From a986b9448ac7124a3f57728637be2fa1c6bcb878 Mon Sep 17 00:00:00 2001 From: Vinish Reddy Date: Thu, 9 Jul 2026 11:38:06 -0700 Subject: [PATCH 1/3] [736] Make the bundled xtable-utilities jar runnable again (Hudi 0.x) Cherry-pick of #840 (4daec279) adapted for the Hudi 0.14 line on main-hudi-0x. The #736 root cause applies here too: the #822 shade allowlist dropped runtime deps from the bundled utilities jar, so java -jar RunSync failed with NoClassDefFoundError. Applicable subset for Hudi 0.x: - jol-core: the parent pins it to test scope, but Hudi's ObjectSizeCalculator loads org.openjdk.jol at runtime; override to runtime and add to the shade allowlist (the actual #736 fix). - slf4j-api: add to the allowlist (org/slf4j/LoggerFactory was missing). Dropped from the original #840 (Hudi 1.x only): hudi-hadoop-common and hudi-io do not exist in Hudi 0.14 (that split is 1.x); hudi-common still provides org.apache.hudi.common.fs.FSUtils. There is also no redundant test-scoped hudi-java-client to remove on this branch. Verified: the 0.x bundled jar now contains org/slf4j/LoggerFactory, org/openjdk/jol/info/GraphLayout, org/apache/hudi/common/fs/FSUtils and org/apache/hudi/client/common/HoodieJavaEngineContext. Cherry picked from commit 4daec2795e6ec1234f0d0c8aa05aadee0780b714. Co-Authored-By: Claude Opus 4.8 (1M context) --- xtable-utilities/pom.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xtable-utilities/pom.xml b/xtable-utilities/pom.xml index 570737eb5..8202f64a2 100644 --- a/xtable-utilities/pom.xml +++ b/xtable-utilities/pom.xml @@ -222,10 +222,17 @@ hudi-spark${spark.version.prefix}-bundle_${scala.binary.version} test + org.openjdk.jol jol-core - test + ${jol.core.version} + runtime @@ -681,6 +688,7 @@ org.json4s:json4s-scalap_${scala.binary.version} org.lz4:lz4-java org.objenesis:objenesis + org.openjdk.jol:jol-core org.reactivestreams:reactive-streams org.roaringbitmap:RoaringBitmap org.roaringbitmap:shims @@ -692,6 +700,7 @@ org.scala-lang.modules:scala-xml_${scala.binary.version} org.slf4j:jcl-over-slf4j org.slf4j:jul-to-slf4j + org.slf4j:slf4j-api org.slf4j:slf4j-reload4j org.threeten:threeten-extra org.threeten:threetenbp From 9e808b57409ba35913ec8b088b9a21b5cac5b5b3 Mon Sep 17 00:00:00 2001 From: Vinish Reddy Date: Thu, 9 Jul 2026 11:38:52 -0700 Subject: [PATCH 2/3] ci: run Maven CI build and license check on main-hudi-0x Add main-hudi-0x to the push and pull_request branch triggers so the existing CI (build + test, license check) runs for the long-lived Hudi 0.x branch and PRs targeting it, matching main. package-deploy (release-triggered) and the site workflows are unchanged. The concurrency guard already treats any ref containing "main" as non-cancelable, so main-hudi-0x is covered without further changes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/mvn-ci-build.yml | 2 ++ .github/workflows/mvn-license-check.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/mvn-ci-build.yml b/.github/workflows/mvn-ci-build.yml index 6b51ce66e..f894ca6da 100644 --- a/.github/workflows/mvn-ci-build.yml +++ b/.github/workflows/mvn-ci-build.yml @@ -24,10 +24,12 @@ on: push: branches: - "main" + - "main-hudi-0x" pull_request: branches: - "main" + - "main-hudi-0x" jobs: build: diff --git a/.github/workflows/mvn-license-check.yml b/.github/workflows/mvn-license-check.yml index 16fff36e2..abd20a12b 100644 --- a/.github/workflows/mvn-license-check.yml +++ b/.github/workflows/mvn-license-check.yml @@ -24,10 +24,12 @@ on: push: branches: - "main" + - "main-hudi-0x" pull_request: branches: - "main" + - "main-hudi-0x" jobs: build: From 043c82bc1abcf88e68683b651bf6c39f209529a2 Mon Sep 17 00:00:00 2001 From: vinishjail97 Date: Sun, 12 Jul 2026 23:06:01 -0700 Subject: [PATCH 3/3] ci: point branch triggers at branch-0.4 (renamed from main-hudi-0x) The release branch was renamed main-hudi-0x -> branch-0.4 to use a version-keyed name instead of a dependency-keyed one. Update the push / pull_request triggers so Maven CI Build and License Check run on the renamed branch. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/mvn-ci-build.yml | 4 ++-- .github/workflows/mvn-license-check.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mvn-ci-build.yml b/.github/workflows/mvn-ci-build.yml index f894ca6da..5e3e1b763 100644 --- a/.github/workflows/mvn-ci-build.yml +++ b/.github/workflows/mvn-ci-build.yml @@ -24,12 +24,12 @@ on: push: branches: - "main" - - "main-hudi-0x" + - "branch-0.4" pull_request: branches: - "main" - - "main-hudi-0x" + - "branch-0.4" jobs: build: diff --git a/.github/workflows/mvn-license-check.yml b/.github/workflows/mvn-license-check.yml index abd20a12b..970e982df 100644 --- a/.github/workflows/mvn-license-check.yml +++ b/.github/workflows/mvn-license-check.yml @@ -24,12 +24,12 @@ on: push: branches: - "main" - - "main-hudi-0x" + - "branch-0.4" pull_request: branches: - "main" - - "main-hudi-0x" + - "branch-0.4" jobs: build: