Step 1 and 2 sound great. (I tried a first step with https://github.com/apache/beam/pull/29992 but didn't have bandwidth)
This will make it easier for people to get started with beam without having to deal with ancient version compatibility and installing old Java, etc. Even as a minor point, many of our build plugins are out of date because they have moved on to more modern Java versions. Questions: - Could Beam move to requiring latest Java to build and just relying on "--release" flag or "--target" flag to build the artifacts we release? (we need to be sure we don't rely on pieces of the standard library that are missing in JRE8) - Can we release multi-release jars to provide updated versions for different JDK versions? Kenn On Mon, Jun 24, 2024 at 9:44 AM Yi Hu via dev <dev@beam.apache.org> wrote: > Dear Beam developers, > > As Java8 has gone through end-of-public-update, many Beam dependencies > have already deprecated Java8 (see [1]), and dropping Java8 supports > are planned. > > Beam hasn't deprecated Java8, moreover, currently Beam CI is using Java8 > to test and release Beam. Referring to other Apache projects, I hereby > suggest a 3-step process for dropping Java 8 support: > > 1. Switch CI to Java11, while retain the byte code compatibility to Java8 > for Beam releases. Tracked in [1]. > > This won't affect Beam developers and users currently on Java8, and > can be done immediately > > 2. Require Java11+ to build Beam, deprecate Java8 support [2]. > > This still won't affect Beam users currently on Java8, but for Beam > developers build custom Beam artifacts, they will need Java11+ > > 3. Drop Java8 support > > This will affect Beam users. Targeted in a medium-long future date, > when Beam's major dependencies already dropped Java8 support > > There are a few details for further decision > > * Java8 has ended premier support in March 2022, the next LTS, Java11 also > ended premier support in Sept 2023. Should we bump the default Java version > to 17 for CI at once (while keeping Java8/11 bytecode compatibility for the > build)? > > * Timeline of deprecating Java8. > I am volunteering to work on [1] which is targeted to Beam 2.58.0; > naturally (2) would be Beam 2.59.0 or 2.60.0. > > Please provide your thoughts on the general process, and highlight > particular areas of concern. > > [1] https://github.com/apache/beam/issues/31677 > > [2] https://www.oracle.com/java/technologies/java-se-support-roadmap.html > > Regards, > Yi > > -- > > Yi Hu, (he/him/his) > > Software Engineer > > >