I do have a silly question, I am struggling to find the reason for the fallback need of Java 11 in the beam_PreCommit_Java_Debezium_IO_Direct.yml [0] I was trying to not interfere with the build system outside of the module by doing some tricks within the build.gradle of Debzium IO in the second PR. [1] However, it seems that the CI always picks up Java 11 and therefore fails the build. It builds completely fine with Java 17 on my machine though. Is there a way to force Java 17 for the module by, for example, removing the 11 fallback from the PreCommit Workflow or does this have known side-effects?
Thank you! [0] https://github.com/apache/beam/pull/34751/files#diff-de752bcab62398ee28adb75a8fdb1933d8d855f2ae46417ec1d47180174a1800R91 [1] https://github.com/apache/beam/pull/34763 On Mon, Apr 28, 2025 at 5:04 PM Tobi Kaymak <kay...@google.com> wrote: > I did the second PR and removed the enforcement of proto3 in the > build.gradle ( > https://github.com/apache/beam/pull/34763/files#diff-1572bcc322ede7d3a757381b84791a29b691df4d8947f6ad39ce4597653787edL95) > - > All tests are green on my local machine, but they will of course fail on > the CI since the first PR has not been merged yet. > > I would be very happy about a review by Danny McCormick, who did work on > this a few months ago in his PR and added the enforcement ( > https://github.com/apache/beam/pull/33526). > > > On Sun, Apr 27, 2025 at 5:00 PM Tobi Kaymak <kay...@google.com> wrote: > >> I did create the first PR, after building the IO on my local machine with >> gradle and Java 17. This should not have an effect other than changing the >> build system. Feedback is very welcome: >> https://github.com/apache/beam/pull/34751 >> >> On Sat, Apr 26, 2025 at 12:49 AM Tobi Kaymak <kay...@google.com> wrote: >> >>> Thank you both! >>> I have checked and couldn't find a matching issue, so I created this >>> one: https://github.com/apache/beam/issues/34747 >>> >>> On Sat, Apr 26, 2025 at 12:32 AM XQ Hu via dev <dev@beam.apache.org> >>> wrote: >>> >>>> Can we create the GitHub issue to track this work if we haven't? >>>> >>>> On Fri, Apr 25, 2025, 4:39 PM Yi Hu via dev <dev@beam.apache.org> >>>> wrote: >>>> >>>>> Hi Tobi, >>>>> >>>>> Thanks for your interest and willing to take on the task. First of >>>>> all, could you please create a GitHub Issue to track the effort? >>>>> >>>>> I would like to share some comments if find useful >>>>> >>>>> - We already have infrastructure for the goal of "PR 1". We use >>>>> BeamPluginModulePlugin [1] to initialize java modules and there is a >>>>> setJavaVerOptions method. Here is a module could be an example how >>>>> compiling with different Java version works in Beam: [2]. >>>>> >>>>> - We'll need to handle Debezium with newer Java version as well >>>>> (That's the reason test currently failing on #34733). We'll need to modify >>>>> test workflow file [3]. However due to GitHub limitation changes to >>>>> .github/workflows won't be effective on unsubmitted PRs. You'd need to >>>>> test >>>>> your change locally. >>>>> >>>>> - Given that current Debezium (1.x) is already old I'm +1 with the >>>>> change. >>>>> >>>>> [1] >>>>> https://github.com/apache/beam/blob/master/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy >>>>> >>>>> [2] >>>>> https://github.com/apache/beam/blob/master/sdks/java/container/agent/build.gradle >>>>> >>>>> [3] >>>>> https://github.com/apache/beam/blob/master/.github/workflows/beam_PreCommit_Java_Debezium_IO_Direct.yml >>>>> >>>>> >>>>> Thanks. >>>>> >>>>> Yi >>>>> >>>>> On Fri, Apr 25, 2025 at 3:06 PM Tobi Kaymak via dev < >>>>> dev@beam.apache.org> wrote: >>>>> >>>>>> Hi Beam Devs, >>>>>> >>>>>> I'm interested in helping to upgrade the Debezium IO connector ( >>>>>> sdks:java:io:debezium) to Debezium version 3.1.1.Final. This version >>>>>> of Debezium requires its dependencies (like debezium-core) to be >>>>>> compiled against Java 17 >>>>>> <https://debezium.io/releases/3.0/release-notes#breaking_changes_14> >>>>>> bytecode. >>>>>> >>>>>> I took the work from Danny McCormick who started doing something >>>>>> similar for Debezium 2.7.4 and created a WIP branch >>>>>> <https://github.com/apache/beam/pull/34733> to get my feet wet with >>>>>> Java and Gradle's build system again. >>>>>> >>>>>> To manage this upgrade gracefully and make the review process >>>>>> smoother, I was thinking to split the work into a two-step PR: >>>>>> >>>>>> 1. >>>>>> >>>>>> *PR 1 (Build Infrastructure):* A smaller, focused PR to enable >>>>>> Java 17 compilation specifically for the sdks:java:io:debezium >>>>>> module. This would likely involve: >>>>>> - Modifying the sdks:java:io:debezium/build.gradle to allow >>>>>> forking its compileJava (and compileTestJava) tasks using a >>>>>> JDK 17 (e.g., via a java17Home Gradle property derived from a >>>>>> CI environment variable like JAVA_HOME_17_X64). >>>>>> - Updating the relevant PreCommit workflow ( >>>>>> beam_PreCommit_Java_Debezium_IO_Direct.yml) >>>>>> >>>>>> <https://github.com/apache/beam/blob/master/.github/workflows/beam_PreCommit_Java_Debezium_IO_Direct.yml#L87> >>>>>> to ensure a JDK 17 is available and its path is passed to Gradle >>>>>> for this >>>>>> module. >>>>>> - The goal of this first PR would be to get the module to >>>>>> compile successfully with Java 17 against the existing (older) >>>>>> Debezium >>>>>> version. >>>>>> 2. >>>>>> >>>>>> *PR 2 (Debezium 3.1.1 Upgrade & API Adaptation):* A subsequent PR >>>>>> that would: >>>>>> - Actually update the Debezium dependencies to 3.1.1.Final. >>>>>> - Incorporate the necessary code changes within >>>>>> sdks:java:io:debezium to adapt to any API changes in Debezium >>>>>> 3.1.1. >>>>>> - Address any new functionality or considerations with >>>>>> Debezium 3.1.1 (which I understand uses now libprotoc-dev 1.5, >>>>>> >>>>>> <https://github.com/debezium/container-images/pull/427/files#diff-bf3b0b8b023cf3cd20ca9d862bb8301523cdb9c934dec1ce96cd9640a613ae7e> >>>>>> - >>>>>> according to its release notes >>>>>> <https://debezium.io/releases/3.1/release-notes#other_changes_5> >>>>>> . >>>>>> >>>>>> My reasoning for this split is to isolate the build system changes >>>>>> from the actual library upgrade and code adaptation, allowing for smaller >>>>>> code reviews. >>>>>> >>>>>> I'd appreciate any feedback or suggestions on the best way to upgrade >>>>>> Debezium IO. >>>>>> >>>>>> Best >>>>>> Tobi >>>>>> >>>>>