Fokko, thank you for these datapoints! It's great to see how other low
level Java OSS projects are approaching this.

JB, I believe yes we have formal consensus to drop Java 8 in Arrow. There
was no contention in current discussions across [GitHub issues | Arrow
Mailing List | Community Syncs].

We can save Java 11 deprecation for a future discussion. For users on Java
11, I do anticipate this discussion to come shortly after Java 8
deprecation is released.

On Fri, May 17, 2024 at 10:02 AM Fokko Driesprong <fo...@apache.org> wrote:

> I was traveling the last few weeks, so just a follow-up from my end.
>
> Fokko, can you elaborate on the discussions held in other OSS projects to
>> drop Java <17? How did they weigh the benefits/drawbacks for dropping both
>> Java 8 and 11 LTS versions? I'd also be curious if other projects plan to
>> support older branches with security patches.
>
>
> So, the ones that I'm involved with (including a TLDR):
>
>    - Avro:
>       - (April 2024: Consensus on moving to 11+, +1 for moving to 17+)
>       https://lists.apache.org/thread/6vbd3w5qk7mpb5lyrfyf2s0z1cymjt5w
>       - (Jan 2024: Consensus on dropping 8)
>       https://lists.apache.org/thread/bd39zhk655pgzfctq763vp3z4xrjpx58
>       - Iceberg:
>       - (Jan 2023: Concerns about Hive):
>       https://lists.apache.org/thread/hr7rdxvddw3fklfyg3dfbqbsy81hzhyk
>       - (Feb 2024: Concensus to drop Hadoop 2.x, and move to JDK11+,
>       also +1's for moving to 17+):
>       https://lists.apache.org/thread/ntrk2thvsg9tdccwd4flsdz9gg743368
>
> I think the most noteworthy (slow-moving in general):
>
>    - Spark 4 supports JDK 17+
>    - Hive 4 is still on Java 8
>    <https://github.com/apache/hive?tab=readme-ov-file#java>
>
> It looks like most of the projects are looking at each other. Keep in
> mind, that projects that still support older versions of Java, can still
> use older versions of Arrow.
>
> [image: spiderman-pointing-at-spiderman.jpeg]
> (in case the image doesn't come through, that's Spiderman pointing at
> Spiderman)
>
> Concerning the Java 11 support, some data:
>
>    - Oracle 11: support until January 2032 (extended fee has been waived)
>    - Cornetto 11: September 2027
>    - Adoptium 11: At least Oct 2027
>    - Zulu 11: Jan 2032
>    - OpenJDK11: October 2024
>
> I think it is fair to support 11 for the time being, but at some point, we
> also have to move on and start exploiting the new features and make sure
> that we keep up to date. For example, Java 8 also has extended support
> until 2030. Dependabot on the Iceberg project
> <https://github.com/apache/iceberg/pulls?q=is%3Aopen+is%3Apr+label%3Adependencies>
> nicely shows which projects are already at JDK11+ :)
>
> Thanks Dane for driving this!
>
> Kind regards,
> Fokko
>
>
>
>
>
> Op vr 17 mei 2024 om 07:44 schreef Jean-Baptiste Onofré <j...@nanthrax.net>:
>
>> Hi Dane
>>
>> Do we have a formal consensus about Java version in regards of arrow
>> version ?
>> I agree with the plan but just wondering if it’s ok from everyone with the
>> community.
>>
>> Regards
>> JB
>>
>> Le jeu. 16 mai 2024 à 18:05, Dane Pitkin <dpit...@apache.org> a écrit :
>>
>> > To wrap up this thread on Java 8 deprecation, here is my current plan of
>> > action:
>> >
>> > 1) Arrow v17 will be the last version supporting Java 8 and the release
>> > notes will warn of its impending deprecation.
>> > 2) Arrow v18 will be the first release supporting min version Java 11.
>> >
>> > I have updated the GH issue[1] to reflect this.
>> >
>> > [1]https://github.com/apache/arrow/issues/38051
>> >
>> > On Wed, May 8, 2024 at 5:46 PM Dane Pitkin <d...@voltrondata.com.invalid
>> >
>> > wrote:
>> >
>> > > Thank you all for your valuable input. The consensus from my
>> > understanding
>> > > is that dropping Java 8 is not contentious, so we will move forward
>> here.
>> > >
>> > > We won't drop Java 11 yet, but there's a chance it will happen sooner
>> > than
>> > > later. I brought up Java 8 & 11 deprecation in the community sync
>> again
>> > > today. The summary is that the ASF could be enforcing stricter
>> security
>> > > practices in the near future. Arrow Java may be forced to drop Java
>> 11 if
>> > > any of its dependencies no longer support Java 11. This is something
>> > we'll
>> > > have to investigate and monitor. When the time is right, we should
>> start
>> > a
>> > > new thread on the mailing list to discuss.
>> > >
>> > > Thanks,
>> > > Dane
>> > >
>> > > On Sat, May 4, 2024 at 2:51 AM <martin.trave...@icloud.com.invalid>
>> > wrote:
>> > >
>> > > > Hi,
>> > > >
>> > > > We were originally expecting to keep Java 11 to the 2026 EOL date
>> for
>> > > > extended support, but now that date is moved to 2032 which feels
>> like
>> > > more
>> > > > time than we need. The issue for us is that getting technology
>> approved
>> > > for
>> > > > use in an enterprise can have ridiculously long lead times, so
>> having a
>> > > > minimum supported version that is only 2 years old, while probably
>> ok
>> > in
>> > > > most case, would be a bit aggressive. We use optional dependencies
>> > where
>> > > we
>> > > > can, so e.g. the Java 17 dependency for Spark 4 would only affect
>> > clients
>> > > > using Spark 4, and they could wait to upgrade. But we chose to use
>> > Arrow
>> > > in
>> > > > the core of our product, it is the internal format everything else
>> goes
>> > > > through. On the compliance side we have to keep current with
>> security
>> > > > updates, so there is no option to stick on an old version.
>> > > >
>> > > > If we were to drop Java 11 after the next LTS comes out, i.e. 2025 /
>> > > 2026,
>> > > > then the three latest LTS versions would be supported and the
>> minimum
>> > > > version would have been available for 4 - 5 years. I think it would
>> be
>> > > very
>> > > > hard to argue 17 can’t be made available at that point. If Arrow
>> forces
>> > > our
>> > > > hand then obviously we’ll have to go sooner, but it wouldn’t be
>> ideal
>> > for
>> > > > us.
>> > > >
>> > > > Lastly just on language capabilities, the only things we’re really
>> > > > interested in are performance related, probably virtual threads and
>> > > foreign
>> > > > memory would be the main ones. Both of the those could be optional
>> > > > dependencies, in the case of FFM we’d rely on either yourselves or
>> > Netty
>> > > > anyway to provide an allocator. So in fact there is very little
>> benefit
>> > > for
>> > > > us to drop Java 11 early, all it costs us is one extra CI job.
>> > > >
>> > > > Hope some of this is helpful - apologies for the high latency, busy
>> as
>> > > > always!!
>> > > >
>> > > > Martin.
>> > > >
>> > > >
>> > > > > On 1 May 2024, at 22:38, Dane Pitkin <d...@voltrondata.com.INVALID
>> >
>> > > > wrote:
>> > > > >
>> > > > > Thanks, Martin. It's great to hear of real-world use cases. Do you
>> > > > > anticipate any timeline for dropping Java 11 for your product? If
>> > Arrow
>> > > > did
>> > > > > drop Java 11, then it sounds like pinning Arrow Java to an older
>> > > version
>> > > > > wouldn't be an ideal option if security patches are not
>> backported.
>> > > > >
>> > > > > Fokko, can you elaborate on the discussions held in other OSS
>> > projects
>> > > to
>> > > > > drop Java <17? How did they weigh the benefits/drawbacks for
>> dropping
>> > > > both
>> > > > > Java 8 and 11 LTS versions? I'd also be curious if other projects
>> > plan
>> > > to
>> > > > > support older branches with security patches.
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > On Tue, Apr 30, 2024 at 4:14 PM <martin.trave...@icloud.com
>> .invalid>
>> > > > wrote:
>> > > > >
>> > > > >> Speaking for my own product we would like to see Java 11
>> support, we
>> > > > rely
>> > > > >> heavily on Arrow and have Java 11 as our minimum supported
>> version.
>> > > We’d
>> > > > >> like to keep doing that if possible. Our clients are big
>> enterprises
>> > > > with
>> > > > >> notoriously sluggish update cycles, so we want to offer maximum
>> > > > >> compatibility. Once security patches are no longer available on
>> the
>> > > > regular
>> > > > >> public channels then there is a compliance issue, so we generally
>> > > follow
>> > > > >> the EOL schedule of our dependencies.
>> > > > >>
>> > > > >> Corretto, Adoptium and Zulu all have recent public builds of
>> both 8
>> > > and
>> > > > 11
>> > > > >> and look set to support them with public builds for many years to
>> > > come.
>> > > > >> Several organisations I have worked with switched away from
>> Oracle
>> > > when
>> > > > >> they made their licensing blunder with Java 8 and although that
>> is
>> > > > >> rectified now, the change seems to have stuck in quite a few
>> places
>> > > (at
>> > > > >> least in my anecdotal experience).
>> > > > >>
>> > > > >> A major practical difference to me in Java 17 is the strong
>> > > > encapsulation
>> > > > >> of internals. Since that affects the majority of serious Java
>> > > > applications
>> > > > >> then perhaps most people have figured out by now to add the JVM
>> > params
>> > > > that
>> > > > >> let Java continue working. Still, it could be a consideration, if
>> > > > Java17
>> > > > >> is the baseline supported version.
>> > > > >>
>> > > > >> Regards,
>> > > > >> Martin.
>> > > > >>
>> > > > >> - In case anyone is curious why we don’t support Java 8 per our
>> own
>> > > > >> policy, it’s because of the “var” keyword - seriously, why did
>> Java
>> > > > take so
>> > > > >> long with that, even C++ got there sooner!
>> > > > >>
>> > > > >>> On 30 Apr 2024, at 16:20, Jacob Wujciak <assignu...@apache.org>
>> > > wrote:
>> > > > >>>
>> > > > >>> Hello everyone!
>> > > > >>> Great to see this move forward!
>> > > > >>> +1 on dropping both 8 and 11 unless there is very good reason to
>> > keep
>> > > > 11
>> > > > >>> around.
>> > > > >>> Otherwise people will just move to 11 and then have the pain of
>> > > > migration
>> > > > >>> again when we drop that (which will happen soon regardless imo).
>> > > > >>>
>> > > > >>> Am Di., 30. Apr. 2024 um 16:18 Uhr schrieb Dane Pitkin
>> > > > >>> <d...@voltrondata.com.invalid>:
>> > > > >>>
>> > > > >>>> Thanks, JB. Are we aware of any downstream dependencies that
>> would
>> > > > >> benefit
>> > > > >>>> from maintaining Java 11 support? Apache Spark jumped straight
>> to
>> > > Java
>> > > > >> 17.
>> > > > >>>> It seems other projects are dropping both 8 and 11 at the same
>> > time
>> > > as
>> > > > >>>> mentioned by Fokko. From a maintenance perspective, it would be
>> > nice
>> > > > to
>> > > > >>>> drop both.
>> > > > >>>>
>> > > > >>>> On Mon, Apr 29, 2024 at 11:20 AM Jean-Baptiste Onofré <
>> > > > j...@nanthrax.net>
>> > > > >>>> wrote:
>> > > > >>>>
>> > > > >>>>> Hi
>> > > > >>>>>
>> > > > >>>>> I think it's time to drop JDK8 support. I would say that we
>> > should
>> > > > >>>>> keep Java11 (jumping directly to Java17 would be problematic
>> > > > >>>>> potentially for some users I guess).
>> > > > >>>>>
>> > > > >>>>> Regards
>> > > > >>>>> JB
>> > > > >>>>>
>> > > > >>>>> On Thu, Apr 25, 2024 at 10:21 PM James Duong
>> > > > >>>>> <james.du...@improving.com.invalid> wrote:
>> > > > >>>>>>
>> > > > >>>>>> If we dropped JDK 8, we could use the JDK to compile
>> > > > module-info.java
>> > > > >>>>> files. Then we could remove the custom maven plugin we’re
>> using
>> > for
>> > > > >>>>> compiling module-info.java files for JPMS support and get
>> better
>> > > IDE
>> > > > >>>>> integration (as what we’re doing currently somewhat shoe-horns
>> > > module
>> > > > >>>>> information alongside JDK8 bytecode).
>> > > > >>>>>>
>> > > > >>>>>> From: Dane Pitkin <d...@voltrondata.com.INVALID>
>> > > > >>>>>> Date: Thursday, April 25, 2024 at 1:02 PM
>> > > > >>>>>> To: dev@arrow.apache.org <dev@arrow.apache.org>
>> > > > >>>>>> Subject: [DISCUSS] Drop Java 8 support
>> > > > >>>>>> Hi all,
>> > > > >>>>>>
>> > > > >>>>>> I would like to revisit the discussion of dropping Java 8
>> (and
>> > > maybe
>> > > > >>>> 11)
>> > > > >>>>>> from Arrow's Java implementation. See GH issue[1] below. This
>> > was
>> > > > also
>> > > > >>>>>> discussed in the last Arrow community sync meeting on
>> > 2024-04-24.
>> > > > >>>>>>
>> > > > >>>>>> For context, this was discussed[2] last year on this mailing
>> > list.
>> > > > We
>> > > > >>>>>> decided to revisit the discussion around the June 2024
>> release
>> > > > (Arrow
>> > > > >>>>> v17).
>> > > > >>>>>> The timing coincides with the initial release of Apache Spark
>> > > 4.0.0,
>> > > > >>>>> which
>> > > > >>>>>> drops both Java 8 and 11 support.
>> > > > >>>>>>
>> > > > >>>>>> For background, we chose not to drop Java 8 support last year
>> > > > because
>> > > > >>>>> Arrow
>> > > > >>>>>> is seen as a low level library that should support as many
>> > > > >> environments
>> > > > >>>>> as
>> > > > >>>>>> possible. Nowadays, we see more enthusiasm for dropping Java
>> 8
>> > > (and
>> > > > >> 11)
>> > > > >>>>> as
>> > > > >>>>>> exemplified by Apache Spark as well as Apache Iceberg[3].
>> > > > >>>>>>
>> > > > >>>>>> Is it time to consider dropping Java 8? Should we drop Java
>> 11
>> > and
>> > > > >> skip
>> > > > >>>>>> straight to Java 17 as our minimum version? What
>> implications do
>> > > we
>> > > > >>>> need
>> > > > >>>>> to
>> > > > >>>>>> be aware of?
>> > > > >>>>>>
>> > > > >>>>>> Thanks,
>> > > > >>>>>> Dane
>> > > > >>>>>>
>> > > > >>>>>> [1]https://github.com/apache/arrow/issues/38051
>> > > > >>>>>> [2]
>> > > https://lists.apache.org/thread/s07jx58yw4mkl54t3bkggnyg0sftcrr8
>> > > > >>>>>> [3]
>> > > https://lists.apache.org/thread/ntrk2thvsg9tdccwd4flsdz9gg743368
>> > > > >>>>>
>> > > > >>>>
>> > > > >>
>> > > > >>
>> > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to