This is an automated email from the ASF dual-hosted git repository. voonhous pushed a commit to tag rfc-105-pre-cleanup in repository https://gitbox.apache.org/repos/asf/hudi.git
commit aff98c018a1abe2b2b699167d736bb17ec442531 Author: voon <[email protected]> AuthorDate: Mon May 25 22:50:22 2026 +0800 fix(trino): two-stage build under JDK 17 + JDK 25 in Trino workflows Hudi root-wide targets Java 11 and uses Lombok 1.18.36, which does not run on JDK 25 (the bytecode rewriter trips on class file 69). Building the upstream reactor with -am under JDK 25 fails inside hudi-io with 'cannot find symbol: variable log' as Lombok silently no-ops on its own @Slf4j annotation. Both Trino workflows now install the upstream modules hudi-trino-plugin depends on (hudi-common, hudi-hive-sync, hudi-io, hudi-sync-common) under JDK 17 first, then switch to JDK 25 to build the connector standalone (no -am). This keeps the Lombok bump out of scope per the project memory note and aligns with the local dev IDE setup documented in the plugin README. --- .github/workflows/hudi_trino_ci.yml | 23 +++++++++++++++++------ .github/workflows/hudi_trino_compat.yml | 16 ++++++++++++++-- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.github/workflows/hudi_trino_ci.yml b/.github/workflows/hudi_trino_ci.yml index 28214a815833..477619a84431 100644 --- a/.github/workflows/hudi_trino_ci.yml +++ b/.github/workflows/hudi_trino_ci.yml @@ -26,18 +26,29 @@ env: jobs: build-and-test: - name: Build and Test (JDK 25) + name: Build connector runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 + # Hudi targets Java 11 and uses Lombok 1.18.36, which does not run on JDK 25. + # Build the upstream modules hudi-trino-plugin depends on under JDK 17 first, + # install them into the local m2, then build the connector itself under JDK 25. + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Install upstream Hudi modules (JDK 17) + run: mvn $MVN_ARGS install -pl hudi-common,hudi-hive-sync,hudi-io,hudi-sync-common -am -Dmaven.test.skip=true -Drat.skip -Dcheckstyle.skip - name: Set up JDK 25 uses: actions/setup-java@v5 with: java-version: '25' distribution: 'temurin' cache: maven - - name: Build connector - # Tests live behind the hudi-trino-tests profile (Trino does not publish the - # test-jars we need). -Dmaven.test.skip=true skips test compilation so the build - # resolves cleanly against Maven Central. - run: mvn $MVN_ARGS -Phudi-trino -pl hudi-trino-plugin -am install -Dmaven.test.skip=true + # Tests live behind the hudi-trino-tests profile (Trino does not publish the + # test-jars we need). -Dmaven.test.skip=true skips test compilation so the build + # resolves cleanly against Maven Central. + - name: Build connector (JDK 25) + run: mvn $MVN_ARGS -Phudi-trino -pl hudi-trino-plugin install -Dmaven.test.skip=true diff --git a/.github/workflows/hudi_trino_compat.yml b/.github/workflows/hudi_trino_compat.yml index 60dcccd25d75..51c6a3d01973 100644 --- a/.github/workflows/hudi_trino_compat.yml +++ b/.github/workflows/hudi_trino_compat.yml @@ -23,6 +23,18 @@ jobs: repository: trinodb/trino ref: master path: trino + # Hudi targets Java 11 and uses Lombok 1.18.36, which does not run on JDK 25. + # Install the upstream Hudi modules under JDK 17 first, then compile the connector + # under JDK 25. + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Install upstream Hudi modules (JDK 17) + working-directory: hudi + run: mvn $MVN_ARGS install -pl hudi-common,hudi-hive-sync,hudi-io,hudi-sync-common -am -Dmaven.test.skip=true -Drat.skip -Dcheckstyle.skip - name: Set up JDK 25 uses: actions/setup-java@v5 with: @@ -36,12 +48,12 @@ jobs: VERSION=$(grep -m1 '<version>' trino/pom.xml | sed -E 's|.*<version>([0-9]+)(-SNAPSHOT)?</version>.*|\1|') echo "trino_version=$VERSION" >> "$GITHUB_OUTPUT" echo "Detected Trino version: $VERSION" - - name: Compile hudi-trino-plugin against current Trino SPI + - name: Compile hudi-trino-plugin against current Trino SPI (JDK 25) working-directory: hudi run: | mvn $MVN_ARGS -Phudi-trino \ -Dtrino.connector.version=${{ steps.trino-version.outputs.trino_version }} \ - -pl hudi-trino-plugin -am compile + -pl hudi-trino-plugin compile - name: Open issue on failure if: failure() uses: actions/github-script@v7
