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

Reply via email to