Skip to content

build: remove Guava dependency - #7000

Open
andygrove wants to merge 4 commits into
apache:mainfrom
andygrove:andygrove/guava-dependency-remove
Open

andygrove wants to merge 4 commits into
apache:mainfrom
andygrove:andygrove/guava-dependency-remove

Conversation

@andygrove

Copy link
Copy Markdown
Member

Which issue does this PR close?

N/A. This is dependency cleanup and does not fix a user-visible bug or add an enhancement.

Rationale for this change

Comet only used a small set of Guava utilities that have direct JDK equivalents. Removing those usages avoids carrying, shading, and relocating Guava and its failureaccess companion artifact in Comet's build and packaged JAR.

What changes are included in this PR?

  • Replace Guava utilities with JDK equivalents for object hashing, stream copying and closing, unsigned-long test values, and classpath scanning.
  • Remove the direct Guava and failureaccess dependencies, Guava shade configuration, relocation rules, and duplicate-class exception.
  • Update contributor documentation examples to use java.util.Objects.

Spark's explicit Guava exclusion remains unchanged because it controls Spark's transitive dependency rather than Comet's direct dependency.

How are these changes tested?

  • make core
  • ./mvnw package -DskipTests (Spark 4.1 / Scala 2.13)
  • ./mvnw -Pspark-3.5 package -DskipTests (Spark 3.5 / Scala 2.12)
  • Focused plan-equality and shuffle suites: 6 passed, 1 Spark-4.2-only test canceled
  • Parquet V1 suite with Spark 3.5: 79 passed, 2 canceled, 1 ignored
  • Verified the Maven dependency tree contains no guava or failureaccess artifacts
  • Verified the shaded JAR contains no Guava or relocated-Guava classes

@github-actions github-actions Bot added build Build environment enhancement New feature or request area:shuffle Shuffle (JVM and native) area:scan Parquet scan / data reading area:Iceberg labels Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:Iceberg area:scan Parquet scan / data reading area:shuffle Shuffle (JVM and native) build Build environment enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant