iceberg icon indicating copy to clipboard operation
iceberg copied to clipboard

Bump to Parquet 1.14.1

Open Fokko opened this issue 1 year ago • 8 comments

To assess the impact of the changes.

Blocked by #8485

Fokko avatar Apr 23 '24 22:04 Fokko

The tests are failing, but that's because Jackson ships with JDK21-specific code, and the shadow plugin cannot cope with that. There is a fork of the plugin, but that one requires Gradle 8.3+. Gradle plugins are blocked because revapi is not being maintained and does not work with Gradle >=8.1.1. @jbonofre is digging into bumping Gradle by running RevAPI standalone 🙏 I ran ./gradlew clean test locally and everything passed.

Fokko avatar May 05 '24 20:05 Fokko

Yes, I will move forward on the Gradle/revapi PR (a bit busy with a few Avro stuff 😄 ).

jbonofre avatar May 07 '24 09:05 jbonofre

Looks like there are erroneously issues with the duplicate classes, but they are JVM specific:

  # Danger! Multiple jars contain identically named classes. This may cause different behaviour depending on classpath ordering.
  # Run ./gradlew checkClassUniqueness --write-locks to update this file
  
  ## runtimeClasspath
  [com.fasterxml.jackson.core:jackson-core, org.apache.parquet:parquet-jackson]
    - META-INF.versions.11.com.fasterxml.jackson.core.io.doubleparser.BigSignificand
    - META-INF.versions.11.com.fasterxml.jackson.core.io.doubleparser.FastDoubleSwar
    - META-INF.versions.11.com.fasterxml.jackson.core.io.doubleparser.FastIntegerMath
    - META-INF.versions.17.com.fasterxml.jackson.core.io.doubleparser.FastDoubleSwar
    - META-INF.versions.17.com.fasterxml.jackson.core.io.doubleparser.FastIntegerMath
    - META-INF.versions.21.com.fasterxml.jackson.core.io.doubleparser.FastDoubleSwar
    - META-INF.versions.21.com.fasterxml.jackson.core.io.doubleparser.FastIntegerMath

Unfortunally, we cannot upgrade gradle-baseline-java because that would require Java11+

Fokko avatar Jun 27 '24 08:06 Fokko

@Fokko do you want me to check if I can do a baseline gradle plugin version JDK8 compliant dealing with that duplicated classes ?

jbonofre avatar Jun 27 '24 09:06 jbonofre

Feel free to dig into it. The current version that we use is from November 2021: https://github.com/palantir/gradle-baseline/releases/tag/4.42.0 :(

Fokko avatar Jun 27 '24 09:06 Fokko

@Fokko ok let me take a look. I think it would be great to include Parquet update in Iceberg 1.6.0 release.

jbonofre avatar Jun 27 '24 09:06 jbonofre

I'm also good to leave this one out for the 1.6.0 release. I think it is going to be quite a bit of work.

Fokko avatar Jun 28 '24 10:06 Fokko

Yeah I think it's reasonable. Thanks.

jbonofre avatar Jun 28 '24 10:06 jbonofre

@Fokko do you want me to check if I can do a baseline gradle plugin version JDK8 compliant dealing with that duplicated classes ?

@jbonofre: I don't think we should maintain private forks of these. Dropping JDK8 seems like a good idea, so we can bump the gradle-baseline-java which handles the multi-version-jar.

ajantha-bhat avatar Jul 16 '24 06:07 ajantha-bhat

@ajantha-bhat my previous comment was not about doing a private plugin fork, it was more about fixing the plugin. Palantir seems to still maintain the baseline plugin, so I can provide a PR.

jbonofre avatar Jul 16 '24 06:07 jbonofre

Change LGTM, but FYI, the build is failing.

findepi avatar Aug 02 '24 12:08 findepi

@findepi Looks like some false positive from the shadow plugin that's unable to coop with the Java-version specific files. Have to dig deeper into this.

Fokko avatar Aug 05 '24 07:08 Fokko

Dependabot beat me: https://github.com/apache/iceberg/pull/11264

Fokko avatar Oct 30 '24 12:10 Fokko