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 >> > > > >>>>> >> > > > >>>> >> > > > >> >> > > > >> >> > > > >> > > > >> > > >> > >> >