Thanks all for the input. It sounds like it is NOT feasible to maintain a legacy branch. So when Arrow drops Java 8 (and 11?) support, we should consider it EOL from Arrow's perspective.
+1 to Fokko's suggestion on waiting. I propose we commit to dropping Java 8 and 11 from Arrow in tandem with the Spark 4 release. Spark 4 has a release date of 2024-06[1]. I also propose that we re-discuss closer to that date as a final evaluation. This was also discussed in the Arrow bi-weekly sync where waiting for Spark 4 was agreed upon. There is a lot of pre-work we can do to prepare Arrow Java for new features that will become available. [1]https://lists.apache.org/thread/xhkgj60j361gdpywoxxz7qspp2w80ry6 -Dane On Wed, Oct 11, 2023 at 2:50 AM Fokko Driesprong <fo...@apache.org> wrote: > Hey everyone, > > Great to bring this up. I can speak for the Iceberg community, and we > expect to support Java 8 for a long time there (unfortunately). Let me go > over some of the arguments here. > > Java 8 does have a long Extended Support timeline, but a recent > > report shows Java 11 increasing in adoption vs Java 8. "More than 56% of > > applications are now using Java 11 in production (up from 48% in 2022 and > > 11% in 2020). Java 8 is a close second with nearly 33% of applications > > using it in production (down from 46% in 2022)."[2] > > > I think this is skewed, mostly because it is easy to upgrade a Spring > application to the latest version from Java, but if you're tied to the > Hadoop ecosystems, things are moving slowly. > > 2. Unblock Arrow from upgrading dependencies that no longer support Java 8. > > > Following the links, I noticed the dependencies are around tests (Mockito) > and static error checking (error-prone). Those sound like nice to have to > me. > > An example; Apache Thrift dropped Java 8 a while ago but added the support > again since it was breaking the ecosystem > <https://github.com/apache/thrift/pull/2785>. Thrift is used in Parquet, > and in Parquet we cannot yet drop Java 8 support. I think of Arrow as a > low-level library, like Thirft and Iceberg, and I think it makes sense to > serve an as wide audience as possible (within reasonable bounds of course). > > I would at least wait until the release of Spark 4. My experience is that > nobody is really eager to do backporting to older versions, and for me, I > still think the gains of dropping Java 8 support are not that big. > > Kind regards, > Fokko Driesprong > > Op wo 11 okt 2023 om 06:05 schreef Jacob Wujciak-Jens > <ja...@voltrondata.com.invalid>: > > > > I cannot estimate the effort to backport large features like the new > > layouts that are currently being added (e.g. RunEndEncoding, ListView, > > etc.). > > > > In my mind we are only talking about patch releases for security fixes or > > similarly critical issues as otherwise the effort to maintain 'v14' (but > > actually arrow-latest) would surely overshadow any gains made by > > deprecating jdk 8? > > > > On Wed, Oct 11, 2023 at 3:31 AM Gang Wu <ust...@gmail.com> wrote: > > > > > I agree that we have to move on. It seems that patch release to > > > Arrow v14 is a good idea, though I cannot estimate the effort to > > > backport large features like the new layouts that are currently > > > being added (e.g. RunEndEncoding, ListView, etc.). > > > > > > As an Arrow developer, I am always happy to drop JDK 8. My > > > employer has leveraged Apache Arrow in the internal engine > > > and depends on Arrow Java in the Java SDK. For end users > > > who cannot get away with JDK 8, we might need to prepare > > > different Java SDKs and use features that are available in the > > > Arrow v14, or let the server side chooses which subset of > > > features based on the SDK version. > > > > > > Thanks, > > > Gang > > > > > > > > > > > > On Wed, Oct 11, 2023 at 12:40 AM Dane Pitkin > > <d...@voltrondata.com.invalid > > > > > > > wrote: > > > > > > > To summarize the discussion so far: > > > > > > > > * Some Arrow Java users are still on JDK 8 > > > > * Arrow v14 is proposed as the final version with JDK 8 support > > > > * Arrow v14 can support patch releases if necessary for JDK 8 users > > > > * There is an open question to decide if JDK 11 should be dropped > > > > simultaneously > > > > > > > > Gang Wu, I'm curious what are your thoughts given your initial > > concerns? > > > > > > > > -Dane > > > > > > > > On Sat, Oct 7, 2023 at 12:00 AM Jacob Wujciak-Jens > > > > <ja...@voltrondata.com.invalid> wrote: > > > > > > > > > From a release engineer perspective (without java knowledge) I > agree > > > with > > > > > Micah, I'd rather make a patch release for an older version if > needed > > > but > > > > > modernize the codebase and simplify CI! > > > > > > > > > > > > > > > On Sat, Oct 7, 2023 at 5:27 AM Micah Kornfield < > > emkornfi...@gmail.com> > > > > > wrote: > > > > > > > > > > > I think given the stability of Arrow Java, dropping support > > probably > > > > > makes > > > > > > sense. If a bug comes up or consumers really need to new > features > > we > > > > can > > > > > > always make a patch release of an older version. > > > > > > > > > > > > On Thu, Oct 5, 2023 at 3:13 PM Dane Pitkin > > > > <d...@voltrondata.com.invalid > > > > > > > > > > > > wrote: > > > > > > > > > > > > > I also learned today that Apache Spark has dropped support for > > > Java 8 > > > > > and > > > > > > > 11 for their next release (v4.0)[1]. Should we consider > dropping > > > Java > > > > > 11 > > > > > > as > > > > > > > well? > > > > > > > > > > > > > > [1]https://github.com/apache/spark/pull/43005 > > > > > > > > > > > > > > -Dane > > > > > > > > > > > > > > On Thu, Oct 5, 2023 at 3:30 PM Dane Pitkin < > d...@voltrondata.com > > > > > > > > wrote: > > > > > > > > > > > > > > > I created a GH issue[1] proposing the removal of Java 8 > > support. > > > It > > > > > > > > would target the Arrow v15 release (~Jan 2024). > > > > > > > > > > > > > > > > IMO it would be in the best interest of the project for two > > major > > > > > > > reasons: > > > > > > > > 1. Unblock the Java Platform Module System (JPMS)[2] > > > > implementation. > > > > > > > > 2. Unblock Arrow from upgrading dependencies that no longer > > > support > > > > > > Java > > > > > > > > 8. (See [1] for examples) > > > > > > > > > > > > > > > > Since Arrow Java has been quite stable, will Java 8 users be > > okay > > > > > with > > > > > > > > pinning Arrow to the last supported release (v14) if the > Arrow > > > > > project > > > > > > > > ultimately decides to remove Java 8 support? > > > > > > > > > > > > > > > > > > > > > > > > [1]https://github.com/apache/arrow/issues/38051 > > > > > > > > [2]https://en.wikipedia.org/wiki/Java_Platform_Module_System > > > > > > > > > > > > > > > > -Dane > > > > > > > > > > > > > > > > On Fri, Sep 15, 2023 at 12:26 PM Dane Pitkin < > > > d...@voltrondata.com > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > >> - As a low level library, users have to add specific flags > to > > > use > > > > > > > >>> Java 9 and up with Arrow to resolve issues with java.nio. > > This > > > > has > > > > > > > >>> been annoying for our customers constantly. If this is not > > > > > resolved, > > > > > > > >>> I would say we may see a lot of complaints in the future. > > > > > > > >>> > > > > > > > >> I filed issue 37739[1] to track this, but it sounds like > this > > > > can't > > > > > be > > > > > > > >> changed until Java 21 or 24. > > > > > > > >> > > > > > > > >> - It seems that the EOL of Java 8 from Oracle is Dec 2030 > > [2]. A > > > > lot > > > > > > > >>> users will still stay on it for a long time. At least this > > is > > > > true > > > > > > for > > > > > > > >>> our > > > > > > > >>> customers. So I am afraid we may not upgrade to newer > > versions > > > > > > > >>> of Arrow if it no longer supports Java 8. > > > > > > > >>> > > > > > > > >> Java 8 does have a long Extended Support timeline, but a > > recent > > > > > > > >> report shows Java 11 increasing in adoption vs Java 8. "More > > > than > > > > > 56% > > > > > > of > > > > > > > >> applications are now using Java 11 in production (up from > 48% > > in > > > > > 2022 > > > > > > > and > > > > > > > >> 11% in 2020). Java 8 is a close second with nearly 33% of > > > > > applications > > > > > > > >> using it in production (down from 46% in 2022)."[2] > > > > > > > >> I expect the Java ecosystem will find a way to move on from > > > Java 8 > > > > > > much > > > > > > > >> sooner than 2030, meaning many of Arrow's dependencies could > > > drop > > > > > > > support > > > > > > > >> for Java 8 before then. At this point, Arrow may be forced > to > > > > > support > > > > > > a > > > > > > > >> higher minimum Java version. > > > > > > > >> > > > > > > > >> That being said, it's hard to argue against real use cases. > > I'd > > > be > > > > > > > >> curious to hear what Java version other users of Arrow are > > using > > > > > (and > > > > > > if > > > > > > > >> there is a timeline to upgrade if on Java 8). > > > > > > > >> > > > > > > > >> > > > > > > > >> [1]https://github.com/apache/arrow/issues/37739 > > > > > > > >> [2] > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://newrelic.com/sites/default/files/2023-04/new-relic-2023-state-of-the-java-ecosystem-2023-04-20.pdf > > > > > > > >> > > > > > > > >> > > > > > > > >> -Dane > > > > > > > >> > > > > > > > >> > > > > > > > >> On Thu, Sep 14, 2023 at 11:45 AM Gang Wu <ust...@gmail.com> > > > > wrote: > > > > > > > >> > > > > > > > >>> Thanks for bringing this up! > > > > > > > >>> > > > > > > > >>> I have two concerns of dropping Java 8 support: > > > > > > > >>> - As a low level library, users have to add specific flags > > [1] > > > to > > > > > use > > > > > > > >>> Java 9 and up with Arrow to resolve issues with java.nio. > > This > > > > has > > > > > > > >>> been annoying for our customers constantly. If this is not > > > > > resolved, > > > > > > > >>> I would say we may see a lot of complaints in the future. > > > > > > > >>> - It seems that the EOL of Java 8 from Oracle is Dec 2030 > > [2]. > > > A > > > > > lot > > > > > > > >>> users will still stay on it for a long time. At least this > > is > > > > true > > > > > > for > > > > > > > >>> our > > > > > > > >>> customers. So I am afraid we may not upgrade to newer > > versions > > > > > > > >>> of Arrow if it no longer supports Java 8. > > > > > > > >>> > > > > > > > >>> [1] > > > > > > > https://arrow.apache.org/docs/java/install.html#java-compatibility > > > > > > > >>> [2] > > > > > > > >>> > > > > > > > > > https://www.oracle.com/java/technologies/java-se-support-roadmap.html > > > > > > > >>> > > > > > > > >>> Best, > > > > > > > >>> Gang > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> On Thu, Sep 14, 2023 at 11:14 PM David Dali Susanibar Arce > < > > > > > > > >>> davi.sar...@gmail.com> wrote: > > > > > > > >>> > > > > > > > >>> > Hi Arrow Java developers, > > > > > > > >>> > > > > > > > > >>> > I would like to propose a timeline for dropping support > for > > > > Java > > > > > 8: > > > > > > > >>> > - Propose to drop JDK8 in Arrow v15 (2 releases from now) > > > > > > > >>> > - JDK 21 support will be added before removal of JDK8 > > > > > > > >>> > > > > > > > > >>> > Why? > > > > > > > >>> > - Java 8 no longer receives Premier Support (1) > > > > > > > >>> > - Some Arrow Java (test) dependencies have already > started > > to > > > > > drop > > > > > > > >>> > Java 8 support, forcing us to pin to older packager > > versions > > > > > > > >>> > > > > > > > > >>> > Also note: > > > > > > > >>> > - gRPC Java may drop support for a JDK version when that > > > > version > > > > > is > > > > > > > no > > > > > > > >>> > longer receiving Premier Support from Oracle (2), more > > detail > > > > at > > > > > > Java > > > > > > > >>> > 8 / Java 11 support timeline in gRPC here (3) > > > > > > > >>> > - Spark plans to tentatively drop JDK 8 support in Spark > > 4.0 > > > > (4), > > > > > > > >>> > which has a release timeline of approximately 2024-06 > (5). > > Is > > > > it > > > > > > fine > > > > > > > >>> > for us to drop JDK 8 support before spark? > > > > > > > >>> > > > > > > > > >>> > (1) > > > > > > > >>> > > > > > > > > > https://www.oracle.com/java/technologies/java-se-support-roadmap.html > > > > > > > >>> > (2) > > > > > > > >>> > > > > > > > > >>> > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/grpc/proposal/pull/283/files#:~:text=gRPC%20Java%20may,support%5D > > > > > > > >>> > . > > > > > > > >>> > (3) > > > > > > https://groups.google.com/g/grpc-io/c/-XK6Kd_19YQ/m/-4s07TzdAgAJ > > > > > > > >>> > (4) https://issues.apache.org/jira/browse/SPARK-44112 > > > > > > > >>> > (5) > > > > > > https://www.mail-archive.com/dev@spark.apache.org/msg30460.html > > > > > > > >>> > > > > > > > > >>> > Consider: > > > > > > > >>> > - JDK8 deprecation is currently not mandatory. We simply > > want > > > > to > > > > > > > >>> > devote more time to development of Java LTS versions 11, > 17 > > > and > > > > > 21. > > > > > > > >>> > - Java 11 is dropping Premier Support this month. > > > > > > > >>> > > > > > > > > >>> > Best regards, > > > > > > > >>> > > > > > > > > >>> > -- > > > > > > > >>> > David Susanibar > > > > > > > >>> > > > > > > > > >>> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >