From 1adb1f80273d8c36a15af9932d612f5d12f69ef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Mon, 9 Feb 2026 16:09:26 +0100 Subject: [PATCH 01/12] Upgrade to Gradle 9.3.1 --- aws-bundle/build.gradle | 2 +- azure-bundle/build.gradle | 2 +- baseline.gradle | 2 -- build.gradle | 12 ++++++------ deploy.gradle | 8 ++++---- flink/v2.1/build.gradle | 2 +- gcp-bundle/build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- mr/build.gradle | 2 +- spark/v4.0/build.gradle | 4 ++-- spark/v4.1/build.gradle | 4 ++-- tasks.gradle | 2 +- 12 files changed, 22 insertions(+), 24 deletions(-) diff --git a/aws-bundle/build.gradle b/aws-bundle/build.gradle index 5b9054812a50..f9d356a774f5 100644 --- a/aws-bundle/build.gradle +++ b/aws-bundle/build.gradle @@ -44,7 +44,7 @@ project(":iceberg-aws-bundle") { shadowJar { archiveClassifier.set(null) - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/azure-bundle/build.gradle b/azure-bundle/build.gradle index 0bdc30fdaa7e..25a1e4c856fe 100644 --- a/azure-bundle/build.gradle +++ b/azure-bundle/build.gradle @@ -32,7 +32,7 @@ project(":iceberg-azure-bundle") { shadowJar { archiveClassifier.set(null) - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/baseline.gradle b/baseline.gradle index 7884c1a65ae3..fa2b6fc3a68a 100644 --- a/baseline.gradle +++ b/baseline.gradle @@ -36,7 +36,6 @@ subprojects { // Thus we concede to applying all of the Baseline plugins individually on all the projects we are // ready to enforce linting on. - apply plugin: 'org.inferred.processors' if (!project.hasProperty('quick')) { apply plugin: 'com.palantir.baseline-checkstyle' apply plugin: 'com.palantir.baseline-error-prone' @@ -49,7 +48,6 @@ subprojects { t.setReproducibleFileOrder(true); t.setDuplicatesStrategy(DuplicatesStrategy.WARN); }); - apply plugin: 'com.palantir.baseline-exact-dependencies' apply plugin: 'com.diffplug.spotless' String scalaVersion = System.getProperty("scalaVersion") != null ? System.getProperty("scalaVersion") : System.getProperty("defaultScalaVersion") diff --git a/build.gradle b/build.gradle index 2c6ba9da2e06..95dd82ddbe75 100644 --- a/build.gradle +++ b/build.gradle @@ -27,9 +27,8 @@ buildscript { } dependencies { classpath 'com.gradleup.shadow:shadow-gradle-plugin:8.3.9' - classpath 'com.palantir.baseline:gradle-baseline-java:6.90.0' + classpath 'com.palantir.baseline:gradle-baseline-java:7.0.0' classpath 'com.diffplug.spotless:spotless-plugin-gradle:8.2.1' - classpath 'gradle.plugin.org.inferred:gradle-processors:3.7.0' classpath 'me.champeau.jmh:jmh-gradle-plugin:0.7.3' classpath 'gradle.plugin.io.morethan.jmhreport:gradle-jmh-report:0.9.6' classpath "com.github.alisiikh:gradle-scalastyle-plugin:3.5.0" @@ -285,7 +284,7 @@ project(':iceberg-bundled-guava') { shadowJar { archiveClassifier.set(null) configurations = [project.configurations.compileClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { @@ -440,7 +439,7 @@ project(':iceberg-data') { test { useJUnitPlatform() // Only for TestSplitScan as of Gradle 5.0+ - maxHeapSize '1500m' + maxHeapSize = '1500m' } } @@ -1041,7 +1040,8 @@ project(':iceberg-open-api') { dependencies { testImplementation project(':iceberg-api') testImplementation project(':iceberg-core') - testImplementation project(':iceberg-core').sourceSets.test.runtimeClasspath + testImplementation project(path: ':iceberg-core', configuration: 'testArtifacts') + testImplementation project(path: ':iceberg-api', configuration: 'testArtifacts') testImplementation(testFixtures(project(':iceberg-open-api'))) testImplementation libs.junit.jupiter @@ -1125,7 +1125,7 @@ project(':iceberg-open-api') { archiveClassifier.set(null) configurations = [project.configurations.testFixturesRuntimeClasspath] from sourceSets.testFixtures.output - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the runtime Jar from(projectDir) { diff --git a/deploy.gradle b/deploy.gradle index 740d0056273b..9b3313350abc 100644 --- a/deploy.gradle +++ b/deploy.gradle @@ -33,13 +33,13 @@ subprojects { task sourceJar(type: Jar, dependsOn: classes) { archiveClassifier.set('sources') from sourceSets.main.allSource - group 'build' + group = 'build' } task javadocJar(type: Jar, dependsOn: javadoc) { archiveClassifier.set('javadoc') from javadoc.destinationDir - group 'build' + group = 'build' } task testJar(type: Jar) { @@ -124,8 +124,8 @@ subprojects { repositories { maven { credentials { - username project.hasProperty('mavenUser') ? "$mavenUser" : "" - password project.hasProperty('mavenPassword') ? "$mavenPassword" : "" + username = project.hasProperty('mavenUser') ? "$mavenUser" : "" + password = project.hasProperty('mavenPassword') ? "$mavenPassword" : "" } // upload to the releases repository using ./gradlew -Prelease publish def apacheSnapshotsRepoUrl = 'https://repository.apache.org/content/repositories/snapshots' diff --git a/flink/v2.1/build.gradle b/flink/v2.1/build.gradle index 91081bdc2e42..c331b1b090df 100644 --- a/flink/v2.1/build.gradle +++ b/flink/v2.1/build.gradle @@ -226,7 +226,7 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/gcp-bundle/build.gradle b/gcp-bundle/build.gradle index 6ebe05ccdbce..f2b048caa6ee 100644 --- a/gcp-bundle/build.gradle +++ b/gcp-bundle/build.gradle @@ -34,7 +34,7 @@ project(":iceberg-gcp-bundle") { shadowJar { archiveClassifier.set(null) - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 207c4600bb1b..41465649341d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=f1771298a70f6db5a29daf62378c4e18a17fc33c9ba6b14362e0cdf40610380d -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip +distributionSha256Sum=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/mr/build.gradle b/mr/build.gradle index dac7e3d4542b..6efffae6546b 100644 --- a/mr/build.gradle +++ b/mr/build.gradle @@ -76,7 +76,7 @@ project(':iceberg-mr') { test { // testJoinTables / testScanTable - maxHeapSize '2500m' + maxHeapSize = '2500m' } } diff --git a/spark/v4.0/build.gradle b/spark/v4.0/build.gradle index fb9df4e0e0f2..7274c5135942 100644 --- a/spark/v4.0/build.gradle +++ b/spark/v4.0/build.gradle @@ -132,7 +132,7 @@ project(":iceberg-spark:iceberg-spark-${sparkMajorVersion}_${scalaVersion}") { tasks.withType(Test) { // Vectorized reads need more memory - maxHeapSize '3160m' + maxHeapSize = '3160m' } } @@ -298,7 +298,7 @@ project(":iceberg-spark:iceberg-spark-runtime-${sparkMajorVersion}_${scalaVersio shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/spark/v4.1/build.gradle b/spark/v4.1/build.gradle index a342a0b59c92..f37eaf193819 100644 --- a/spark/v4.1/build.gradle +++ b/spark/v4.1/build.gradle @@ -133,7 +133,7 @@ project(":iceberg-spark:iceberg-spark-${sparkMajorVersion}_${scalaVersion}") { tasks.withType(Test) { // Vectorized reads need more memory - maxHeapSize '3160m' + maxHeapSize = '3160m' } } @@ -300,7 +300,7 @@ project(":iceberg-spark:iceberg-spark-runtime-${sparkMajorVersion}_${scalaVersio shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/tasks.gradle b/tasks.gradle index 5515d7b75052..42e7b30877bd 100644 --- a/tasks.gradle +++ b/tasks.gradle @@ -22,7 +22,7 @@ task aggregateJavadoc(type: Javadoc) { def javadocTasks = subprojects.findAll { it.name != 'iceberg-bom' }.javadoc dependsOn javadocTasks source javadocTasks.source - destinationDir project.rootProject.file("site/docs/javadoc/${getJavadocVersion()}") + destinationDir = project.rootProject.file("site/docs/javadoc/${getJavadocVersion()}") classpath = project.rootProject.files(javadocTasks.classpath) final JAVADOC_FIX_SEARCH_STR = '\n\n' + From 11af97b12910e8ffa25482da0959395e0ba16004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Mon, 9 Feb 2026 16:13:02 +0100 Subject: [PATCH 02/12] "Force" add bom to avoid gradle complaining --- bom/build.gradle | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 bom/build.gradle diff --git a/bom/build.gradle b/bom/build.gradle new file mode 100644 index 000000000000..3579f7b5df9c --- /dev/null +++ b/bom/build.gradle @@ -0,0 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +// This file is intentionally minimal - BOM configuration is in root build.gradle \ No newline at end of file From dc62f848a57e9abe66198c5ed6ea13932b445351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Mon, 9 Feb 2026 16:23:34 +0100 Subject: [PATCH 03/12] Fix exceptionFormat in build.gradle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 95dd82ddbe75..d04822ac127f 100644 --- a/build.gradle +++ b/build.gradle @@ -249,7 +249,7 @@ subprojects { } else { events "failed" } - exceptionFormat "full" + exceptionFormat = "full" } systemProperty 'project.version', project.version From 9044d6c1216ca36b376e878d63e0e4137ec7b04c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Mon, 9 Feb 2026 16:44:37 +0100 Subject: [PATCH 04/12] Fix integrationImplementation definition depending of modules --- build.gradle | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index d04822ac127f..545ad999f5eb 100644 --- a/build.gradle +++ b/build.gradle @@ -617,9 +617,23 @@ project(':iceberg-delta-lake') { test { useJUnitPlatform() } - configurations { - integrationImplementation.extendsFrom testImplementation - integrationRuntime.extendsFrom testRuntimeOnly + + // The newest version of delta-core uses Spark 3.5.*. Define integration source set and config + // before dependencies so integrationImplementation exists when dependencies are applied. + if (sparkVersions.contains("3.5")) { + sourceSets { + integration { + java.srcDir "$projectDir/src/integration/java" + resources.srcDir "$projectDir/src/integration/resources" + compileClasspath += main.output + test.output + runtimeClasspath += main.output + test.output + } + } + + configurations { + integrationImplementation.extendsFrom testImplementation + integrationRuntime.extendsFrom testRuntimeOnly + } } dependencies { @@ -670,15 +684,6 @@ project(':iceberg-delta-lake') { // The newest version of delta-core uses Spark 3.5.*. The integration test should only be built // if iceberg-spark-3.5 is available if (sparkVersions.contains("3.5")) { - sourceSets { - integration { - java.srcDir "$projectDir/src/integration/java" - resources.srcDir "$projectDir/src/integration/resources" - compileClasspath += main.output + test.output - runtimeClasspath += main.output + test.output - } - } - task integrationTest(type: Test) { useJUnitPlatform() testClassesDirs = sourceSets.integration.output.classesDirs From 4e08c758e0a24f30ecd5af185811b72c88e5b874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 11 Feb 2026 15:24:19 +0100 Subject: [PATCH 05/12] Don't upgrade gradle-baseline-java version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 545ad999f5eb..9c0bc87100db 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,7 @@ buildscript { } dependencies { classpath 'com.gradleup.shadow:shadow-gradle-plugin:8.3.9' - classpath 'com.palantir.baseline:gradle-baseline-java:7.0.0' + classpath 'com.palantir.baseline:gradle-baseline-java:6.90.0' classpath 'com.diffplug.spotless:spotless-plugin-gradle:8.2.1' classpath 'me.champeau.jmh:jmh-gradle-plugin:0.7.3' classpath 'gradle.plugin.io.morethan.jmhreport:gradle-jmh-report:0.9.6' From c00b0d9fa907405fa245655edcc112a720f2069e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 11 Feb 2026 15:27:56 +0100 Subject: [PATCH 06/12] Update tasks.gradle Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tasks.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.gradle b/tasks.gradle index 42e7b30877bd..c1c3b7591985 100644 --- a/tasks.gradle +++ b/tasks.gradle @@ -22,7 +22,7 @@ task aggregateJavadoc(type: Javadoc) { def javadocTasks = subprojects.findAll { it.name != 'iceberg-bom' }.javadoc dependsOn javadocTasks source javadocTasks.source - destinationDir = project.rootProject.file("site/docs/javadoc/${getJavadocVersion()}") + destinationDirectory.set(project.rootProject.file("site/docs/javadoc/${getJavadocVersion()}")) classpath = project.rootProject.files(javadocTasks.classpath) final JAVADOC_FIX_SEARCH_STR = '\n\n' + From eed4282a64a0b7a7b2c6a61203a82315e42e018e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 11 Feb 2026 15:36:32 +0100 Subject: [PATCH 07/12] Revert "Update tasks.gradle" This reverts commit c00b0d9fa907405fa245655edcc112a720f2069e. --- tasks.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.gradle b/tasks.gradle index c1c3b7591985..42e7b30877bd 100644 --- a/tasks.gradle +++ b/tasks.gradle @@ -22,7 +22,7 @@ task aggregateJavadoc(type: Javadoc) { def javadocTasks = subprojects.findAll { it.name != 'iceberg-bom' }.javadoc dependsOn javadocTasks source javadocTasks.source - destinationDirectory.set(project.rootProject.file("site/docs/javadoc/${getJavadocVersion()}")) + destinationDir = project.rootProject.file("site/docs/javadoc/${getJavadocVersion()}") classpath = project.rootProject.files(javadocTasks.classpath) final JAVADOC_FIX_SEARCH_STR = '\n\n' + From c9fa4983a40eb8bbeee8a5c05e76b0fd0f71ac76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Tue, 3 Mar 2026 17:33:44 -0500 Subject: [PATCH 08/12] Re-add the baseline plugin --- baseline.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/baseline.gradle b/baseline.gradle index fa2b6fc3a68a..c4cea08c7507 100644 --- a/baseline.gradle +++ b/baseline.gradle @@ -48,6 +48,7 @@ subprojects { t.setReproducibleFileOrder(true); t.setDuplicatesStrategy(DuplicatesStrategy.WARN); }); + apply plugin: 'com.palantir.baseline-exact-dependencies' apply plugin: 'com.diffplug.spotless' String scalaVersion = System.getProperty("scalaVersion") != null ? System.getProperty("scalaVersion") : System.getProperty("defaultScalaVersion") From 0c7d376bd368f760c48cb31d229a578429cf25c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 4 Mar 2026 09:31:13 -0500 Subject: [PATCH 09/12] Add JUnit platform in flink --- flink/v2.1/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/flink/v2.1/build.gradle b/flink/v2.1/build.gradle index c331b1b090df..9ba61b954619 100644 --- a/flink/v2.1/build.gradle +++ b/flink/v2.1/build.gradle @@ -176,6 +176,8 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { // all of those dependencies are required because the integration test extends FlinkTestBase integrationCompileOnly project(':iceberg-api') integrationImplementation libs.assertj.core + integrationImplementation libs.junit.jupiter + integrationImplementation libs.junit.platform.launcher integrationImplementation project(path: ":iceberg-flink:iceberg-flink-${flinkMajorVersion}", configuration: "testArtifacts") integrationImplementation project(path: ':iceberg-api', configuration: 'testArtifacts') integrationImplementation project(path: ':iceberg-hive-metastore', configuration: 'testArtifacts') @@ -255,6 +257,9 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { task integrationTest(type: Test) { description = "Test Flink Runtime Jar against Flink ${flinkMajorVersion}" group = "verification" + useJUnitPlatform { + excludeEngines "junit-vintage" + } jvmArgs += project.property('extraJvmArgs') testClassesDirs = sourceSets.integration.output.classesDirs classpath = sourceSets.integration.runtimeClasspath + files(shadowJar.archiveFile.get().asFile.path) From b459e7ddf168afed56ff859b0de22b6e2d844bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 4 Mar 2026 10:02:21 -0500 Subject: [PATCH 10/12] Apply same fix (JUnit) on flink 1.20 --- flink/v1.20/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/flink/v1.20/build.gradle b/flink/v1.20/build.gradle index 3591bf37b1a7..dd998ed3c02f 100644 --- a/flink/v1.20/build.gradle +++ b/flink/v1.20/build.gradle @@ -176,6 +176,8 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { // all of those dependencies are required because the integration test extends FlinkTestBase integrationCompileOnly project(':iceberg-api') integrationImplementation libs.assertj.core + integrationImplementation libs.junit.jupiter + integrationImplementation libs.junit.platform.launcher integrationImplementation project(path: ":iceberg-flink:iceberg-flink-${flinkMajorVersion}", configuration: "testArtifacts") integrationImplementation project(path: ':iceberg-api', configuration: 'testArtifacts') integrationImplementation project(path: ':iceberg-hive-metastore', configuration: 'testArtifacts') @@ -255,6 +257,9 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { task integrationTest(type: Test) { description = "Test Flink Runtime Jar against Flink ${flinkMajorVersion}" group = "verification" + useJUnitPlatform { + excludeEngines "junit-vintage" + } jvmArgs += project.property('extraJvmArgs') testClassesDirs = sourceSets.integration.output.classesDirs classpath = sourceSets.integration.runtimeClasspath + files(shadowJar.archiveFile.get().asFile.path) From 6e08097628fef430d87b06b356a57c577c33178d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 4 Mar 2026 11:01:33 -0500 Subject: [PATCH 11/12] Update classpath for flink integration test --- flink/v1.20/build.gradle | 3 +-- flink/v2.0/build.gradle | 3 +-- flink/v2.1/build.gradle | 1 - spark/v3.4/build.gradle | 2 +- spark/v3.5/build.gradle | 2 +- 5 files changed, 4 insertions(+), 7 deletions(-) diff --git a/flink/v1.20/build.gradle b/flink/v1.20/build.gradle index dd998ed3c02f..a5620d27130e 100644 --- a/flink/v1.20/build.gradle +++ b/flink/v1.20/build.gradle @@ -183,7 +183,6 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { integrationImplementation project(path: ':iceberg-hive-metastore', configuration: 'testArtifacts') integrationImplementation(libs.flink120.test.utils) { exclude group: "org.apache.curator", module: 'curator-test' - exclude group: 'junit' } integrationImplementation libs.flink120.table.api.java.bridge @@ -228,7 +227,7 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/flink/v2.0/build.gradle b/flink/v2.0/build.gradle index 5907f41b3544..c61de641616a 100644 --- a/flink/v2.0/build.gradle +++ b/flink/v2.0/build.gradle @@ -181,7 +181,6 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { integrationImplementation project(path: ':iceberg-hive-metastore', configuration: 'testArtifacts') integrationImplementation(libs.flink20.test.utils) { exclude group: "org.apache.curator", module: 'curator-test' - exclude group: 'junit' } integrationImplementation libs.flink20.table.api.java.bridge @@ -226,7 +225,7 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/flink/v2.1/build.gradle b/flink/v2.1/build.gradle index 9ba61b954619..8c386cd5d4b4 100644 --- a/flink/v2.1/build.gradle +++ b/flink/v2.1/build.gradle @@ -183,7 +183,6 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { integrationImplementation project(path: ':iceberg-hive-metastore', configuration: 'testArtifacts') integrationImplementation(libs.flink21.test.utils) { exclude group: "org.apache.curator", module: 'curator-test' - exclude group: 'junit' } integrationImplementation libs.flink21.table.api.java.bridge diff --git a/spark/v3.4/build.gradle b/spark/v3.4/build.gradle index 714ee703b842..adee7b926447 100644 --- a/spark/v3.4/build.gradle +++ b/spark/v3.4/build.gradle @@ -287,7 +287,7 @@ project(":iceberg-spark:iceberg-spark-runtime-${sparkMajorVersion}_${scalaVersio shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { diff --git a/spark/v3.5/build.gradle b/spark/v3.5/build.gradle index 20a9cfb007bd..e95304382a76 100644 --- a/spark/v3.5/build.gradle +++ b/spark/v3.5/build.gradle @@ -289,7 +289,7 @@ project(":iceberg-spark:iceberg-spark-runtime-${sparkMajorVersion}_${scalaVersio shadowJar { configurations = [project.configurations.runtimeClasspath] - zip64 true + zip64 = true // include the LICENSE and NOTICE files for the shaded Jar from(projectDir) { From af66985bf4facf5867ab16799b644509ffa6b410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 4 Mar 2026 12:15:29 -0500 Subject: [PATCH 12/12] Add missing dependency for Flink itests --- flink/v1.20/build.gradle | 1 + flink/v2.0/build.gradle | 1 + flink/v2.1/build.gradle | 1 + 3 files changed, 3 insertions(+) diff --git a/flink/v1.20/build.gradle b/flink/v1.20/build.gradle index a5620d27130e..a82b3db064c7 100644 --- a/flink/v1.20/build.gradle +++ b/flink/v1.20/build.gradle @@ -185,6 +185,7 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { exclude group: "org.apache.curator", module: 'curator-test' } + integrationImplementation libs.flink120.connector.base integrationImplementation libs.flink120.table.api.java.bridge integrationImplementation "org.apache.flink:flink-table-planner_${scalaVersion}:${libs.versions.flink120.get()}" diff --git a/flink/v2.0/build.gradle b/flink/v2.0/build.gradle index c61de641616a..7bfc6387f75b 100644 --- a/flink/v2.0/build.gradle +++ b/flink/v2.0/build.gradle @@ -183,6 +183,7 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { exclude group: "org.apache.curator", module: 'curator-test' } + integrationImplementation libs.flink20.connector.base integrationImplementation libs.flink20.table.api.java.bridge integrationImplementation "org.apache.flink:flink-table-planner_${scalaVersion}:${libs.versions.flink20.get()}" diff --git a/flink/v2.1/build.gradle b/flink/v2.1/build.gradle index 8c386cd5d4b4..b17a275b16ec 100644 --- a/flink/v2.1/build.gradle +++ b/flink/v2.1/build.gradle @@ -185,6 +185,7 @@ project(":iceberg-flink:iceberg-flink-runtime-${flinkMajorVersion}") { exclude group: "org.apache.curator", module: 'curator-test' } + integrationImplementation libs.flink21.connector.base integrationImplementation libs.flink21.table.api.java.bridge integrationImplementation "org.apache.flink:flink-table-planner_${scalaVersion}:${libs.versions.flink21.get()}"