I guess it depends on the generated class file version. On Wed, Jul 10, 2024 at 2:53 PM Manu Zhang <owenzhang1...@gmail.com> wrote:
> I suppose Iceberg built with Java 11/17/21 (at least one of them) can run > with Spark/Hadoop built with Java 8? > > On Wed, Jul 10, 2024 at 11:59 AM Steven Wu <stevenz...@gmail.com> wrote: > >> +1 for dropping Java 8 as it is really old (3 versions behind latest Java >> LTS version - 11, 17, 21). >> >> Here was the thread from over a year ago on dropping JDK 8 support. >> https://lists.apache.org/thread/gq08prw7tv8q6h71lfc9bjlj074ckccv >> >> Hive's lack of Java 11 support was identified as a blocker. There doesn't >> seem to be much progress according to the jira issue. >> https://issues.apache.org/jira/browse/HIVE-22415 >> >> Should we drop the hive3 connector? assuming we have no problem with >> moving the hive-metastore module to JDK 11. >> >> >> >> On Tue, Jul 9, 2024 at 3:18 PM Pucheng Yang <py...@pinterest.com.invalid> >> wrote: >> >>> Piotr, thanks for the details. I am not sure about the community usage >>> of Java 8. I was mostly asking for my company which is still on Java 8 as >>> of today. >>> >>> On Tue, Jul 9, 2024 at 2:40 PM Piotr Findeisen < >>> piotr.findei...@gmail.com> wrote: >>> >>>> Hi >>>> >>>> Thanks Russel, Ryan, Pucheng for your input! >>>> >>>> >>>> As an alternative I think it would be fine if we disable the formatter >>>>> when using Java 21 and just make sure we always have tests run with Java 8 >>>>> and the formatter checks in our CI. If we go this route I think we stay >>>>> with Java 8 for formatting and save the reformat for when Java 8 is >>>>> dropped >>>>> officially. >>>> >>>> >>>> Yes, that's my preferred approach (unless we can just drop Java 8 >>>> "today"). >>>> >>>> >>>> Thanks Ryan for supporting drop of Java 8. Let's continue discussion >>>> here for now, but I guess I could have started with drop Java 8 first >>>> (optimistically). >>>> >>>> Pucheng, i think it means they will need to move off Java 8 to get new >>>> Iceberg versions. >>>> I do believe it's inevitable though. >>>> Even if Iceberg somehow decides to never benefit from new Java language >>>> features, it needs to support newer Java versions. >>>> And as this thread shows, supporting old Java versions and new Java >>>> versions at the same time becomes challenging. >>>> Do you maybe know how big of the impact on community would dropping >>>> Java 8 have? Some estimate on percentage of install base? >>>> >>>> Best, >>>> Piotr >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Tue, 9 Jul 2024 at 18:32, Pucheng Yang <py...@pinterest.com.invalid> >>>> wrote: >>>> >>>>> What does dropping Java 8 support mean to companies that are still >>>>> using Java 8 for Iceberg in production? >>>>> >>>>> On Tue, Jul 9, 2024 at 9:26 AM Ryan Blue <b...@databricks.com.invalid> >>>>> wrote: >>>>> >>>>>> +1 for removing Java 8 support. >>>>>> >>>>>> On Tue, Jul 9, 2024 at 9:24 AM Russell Spitzer < >>>>>> russell.spit...@gmail.com> wrote: >>>>>> >>>>>>> The different formatting preferences sounds annoying enough that I >>>>>>> would think we should just drop the Java8 support. Do we have anyone who >>>>>>> strongly prefers keeping Java 8 support? >>>>>>> >>>>>>> As an alternative I think it would be fine if we disable the >>>>>>> formatter when using Java 21 and just make sure we always have tests run >>>>>>> with Java 8 and the formatter checks in our CI. If we go this route I >>>>>>> think >>>>>>> we stay with Java 8 for formatting and save the reformat for when Java >>>>>>> 8 is >>>>>>> dropped officially. >>>>>>> >>>>>>> On Tue, Jul 9, 2024 at 7:32 AM Piotr Findeisen < >>>>>>> piotr.findei...@gmail.com> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Java 21 is the latest "LTS version" released GA in September 2023. >>>>>>>> Some Iceberg users already run with Java 21 on production (and FWIW >>>>>>>> Trino runs with 22 already) >>>>>>>> I thought it would be nice to add support for building and testing >>>>>>>> Iceberg with Java 21. >>>>>>>> >>>>>>>> Conceptually this is simple (see PR >>>>>>>> <https://github.com/apache/iceberg/pull/10474>), but there is a >>>>>>>> caveat worth discussing: >>>>>>>> There seems to be no version of Google Java Format library that can >>>>>>>> run under JDK 8 and JDK 21. >>>>>>>> Choosing Google Java Format version dynamically is not an option, >>>>>>>> because different versions have slightly different formatting >>>>>>>> preferences, >>>>>>>> so updating formatter version requires updating the code in a handful >>>>>>>> of >>>>>>>> places. >>>>>>>> >>>>>>>> Question: >>>>>>>> do we want to add support for building and testing with Java 21? >>>>>>>> Ability to test with Java 21 would match what some of Iceberg users >>>>>>>> are doing. >>>>>>>> If we choose so, we would simply disable spotless formatter when >>>>>>>> build runs on Java 21 (or 8 if this is preferred instead) >>>>>>>> >>>>>>>> or we prefer to wait until we can drop Java 8 support >>>>>>>> <https://github.com/apache/iceberg/pull/10518> first, and only >>>>>>>> then add Java 21 support? >>>>>>>> >>>>>>>> Pre-existing context: >>>>>>>> the topic has been discussed on the PR here: >>>>>>>> https://github.com/apache/iceberg/pull/10474#discussion_r1658513019 >>>>>>>> and it was proposed there to bring this to Dev group attention. >>>>>>>> >>>>>>>> Best, >>>>>>>> PF >>>>>>>> >>>>>>>> >>>>>> >>>>>> -- >>>>>> Ryan Blue >>>>>> Databricks >>>>>> >>>>>