I suggest dropping Java 8 support first as it currently a blocker for
parquet version bump
https://github.com/apache/iceberg/pull/10209#issuecomment-2230161894

We can have a separate vote thread to drop Java 8 as this therad's title is
to support Java 21.

And IMO we should support Java 21 or latest after dropping Java 8 support
to avoid consuming more CI resources by too many java builds.

- Ajantha

On Thu, Jul 11, 2024 at 3:21 PM Steve Loughran <ste...@cloudera.com.invalid>
wrote:

> A move to java 11 means it is time to move to Hadoop 3.3.x as the minimum
> release, anything 17+ means java 3.4.x. Which before long will go making
> java 11 its minimum version.
>
> That is:
> - cut the hadoop2 version/profile which is really java7.
> - be prepared to move to 3.4.x if some java11/17 incompatibility surfaces
> as any issues there will only be on branch-3.4 and trunk branches.
>
> Cutting the hadoop2 profile can only be good as it reduces the test matrix
> and means that if problems do surface they won't be rejected as WONTFIX +
> /upgrade
>
> There are still some bits outstanding in the hadoop "support java 17"
> JIRAs, but they should be all server-side and test issues, and *should*
> be nothing to worry about.
> https://issues.apache.org/jira/browse/HADOOP-17177  that is: filesystem
> clients should all be good. And the CI tooling is getting set up for java17
> test runs
> https://github.com/apache/hadoop/pull/6914
>
> Meanwhile the first java 23 issue has surfaced: Oracle filed a bug report
> warning that the whole Subject class is going to break so
> UserGroupInformation.doAs() will go.
> https://issues.apache.org/jira/browse/HADOOP-19212
> That's going to be traumatic across everything. Reflection is going to be
> needed to use the successor classes/methods, but because the UGI calls are
> common in hive and any other service which support different users in the
> same process, getting adoption of the new operations will be tricking.
>
> steve
>
>
>
>
> Java21 would be interesting; their new memory
>
>
> On Thu, 11 Jul 2024 at 09:09, Gabor Kaszab <gaborkas...@apache.org> wrote:
>
>> Hey,
>>
>> About the part where we plan to drop the Hive module. This seems like a
>> thing that has already been discussed and decided, so I might have missed
>> that conversation. Would it make sense to involve Hive devs into this
>> decision, though, so that we can make sure there is no difficulty on Hive
>> side due to this? Mayba a vote (if we hadn't had it already)?
>>
>> Cheers,
>> Gabor
>>
>>
>> On Wed, Jul 10, 2024 at 5:34 PM Robert Stupp <sn...@snazy.de> wrote:
>>
>>> +1 on deprecating Java 8 in the next "catchable" Iceberg release.
>>>
>>> +1 on removing Java 8 in Iceberg 2.0
>>>
>>> +1 on _building_ for Java 11 in Iceberg 2.0
>>>
>>> +1 on _building_ with Java 17 in Iceberg 2.0
>>>
>>>
>>> I'd recommend to _build_ for Java 11 wherever possible (`javac --release
>>> 11`), because many users are concerned about bumping 2 Java LTS versions (8
>>> ---> 17).
>>>
>>>
>>> From our experience, it's fine to bump the JDK in CI to Java 17, that's
>>> the Java version that works for Spark 3.3..3.5 (with some JPMS options).
>>> I'm less concerned about Spark 4 requiring Java 17 (`--release 17` can
>>> be configured for Spark 4, leaving everything at a lower version).
>>>
>>> I'm quite concerned about Avro 1.12 requiring Java 17 - maybe we can
>>> stick w/ Avro 1.11.x.
>>>
>>>
>>> On 10.07.24 15:13, Piotr Findeisen wrote:
>>>
>>> Hi,
>>>
>>> Thanks for additional feedback. It sounds like we're OK enabling builds
>>> and testing with JDK 21 with the caveats that formatter is off.
>>> The non-negotiable condition is that CI still checks format.
>>> I think this is exactly what this PR
>>> <https://github.com/apache/iceberg/pull/10474> is doing, which means we
>>> maybe can merge it. One small step forward.
>>>
>>> BTW there is no risk of `./gradlew spotlessApply` producing different
>>> results when being executed under JDK 21.
>>> The spotless plugin needs to be fully disabled, and then this command
>>> will fail saying the target is not found.
>>> It would be even better to provide custom spotlessApply command stub
>>> that would produce an actionable error message.
>>> I will add something like this to the above PR.
>>>
>>> re dropping Java 8
>>> we need to figure out exact deprecation path and I don't know yet the
>>> customs to drive this fully.
>>> But happy to help as much as I can nonetheless.
>>>
>>>
>>> Best
>>> Piotr
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Wed, 10 Jul 2024 at 11:19, Eduard Tudenhöfner <
>>> etudenhoef...@apache.org> wrote:
>>>
>>>>
>>>>> It has a caveat (we can't run formatter on 21 and 8, and we need to
>>>>>> choose one).
>>>>>
>>>>>
>>>>> Would it format differently? I would go for 21 since that's the path
>>>>> forward, but I'm also fine with JB's suggestion 👍
>>>>>
>>>>>>
>>>>>>
>>>> Yeah it would format differently, because the underlying
>>>> *google-java-format* picks a different formatting depending on the JDK
>>>> version and that's why we had to pin the *google-java-format* version
>>>> to the one that still supports JDK8.
>>>>
>>>> I think it's ok to disable the formatter when running with JDK 21 for
>>>> people that want to use that JDK but we need to make sure that CI checks
>>>> still run JDK < 21 in order to make sure code is properly formatted.
>>>>
>>>> The one risk I see is that it will be difficult to understand why
>>>> running the build with JDK 21 passes locally but fails on CI (where an
>>>> older JDK is used).
>>>> Maybe it's sufficient to mention in the docs that *./gradlew
>>>> spotlessApply* needs to be executed locally with an older JDK.
>>>>
>>>> Eduard
>>>>
>>> --
>>> Robert Stupp
>>> @snazy
>>>
>>>

Reply via email to