From efa4ad17755539d106933971a58b39af39e369ff Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Wed, 15 Jul 2026 17:51:05 +0000 Subject: [PATCH 01/14] try to upgrade spotless to 8.3 --- buildSrc/build.gradle.kts | 4 ++-- .../groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 2 +- sdks/java/io/cassandra/build.gradle | 2 +- sdks/java/io/hadoop-file-system/build.gradle | 2 +- sdks/java/io/hadoop-format/build.gradle | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 96b1cb12dd4c..5243f1636703 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -32,7 +32,7 @@ val useMirror = isCi && !mavenCentralMirrorUrl.isNullOrBlank() plugins { `java-gradle-plugin` groovy - id("com.diffplug.spotless") version "5.6.1" + id("com.diffplug.spotless") version "8.3.0" } // Define the set of repositories required to fetch and enable plugins. @@ -68,7 +68,7 @@ dependencies { runtimeOnly("com.google.protobuf:protobuf-gradle-plugin:0.8.13") // Enable proto code generation runtimeOnly("com.github.davidmc24.gradle.plugin:gradle-avro-plugin:1.9.1") // Enable Avro code generation. Version 1.1.0 is the last supporting avro 1.10.2 - runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:5.6.1") // Enable a code formatting plugin + runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:8.3.0") // Enable a code formatting plugin runtimeOnly("gradle.plugin.com.dorongold.plugins:task-tree:1.5") // Adds a 'taskTree' task to print task dependency tree runtimeOnly("net.linguica.gradle:maven-settings-plugin:0.5") runtimeOnly("gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.5.0") // Enable creating an offline repository diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 8298eacff4d2..0f7cce13258a 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1478,7 +1478,7 @@ class BeamModulePlugin implements Plugin { enforceCheck !disableSpotlessCheck java { licenseHeader javaLicenseHeader - googleJavaFormat('1.7') + googleJavaFormat('1.17.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' exclude '**/DefaultPackageTest.java' diff --git a/sdks/java/io/cassandra/build.gradle b/sdks/java/io/cassandra/build.gradle index 43ac8bc8bf85..402490c3309c 100644 --- a/sdks/java/io/cassandra/build.gradle +++ b/sdks/java/io/cassandra/build.gradle @@ -62,7 +62,7 @@ dependencies { configurations.all (Configuration it) -> { // error-prone requires newer guava, don't override for annotation processing // https://github.com/google/error-prone/issues/2745 - if (it.name == "annotationProcessor" || it.name =="testAnnotationProcessor") { + if (it.name == "annotationProcessor" || it.name =="testAnnotationProcessor" || it.name.startsWith("spotless")) { return } resolutionStrategy { diff --git a/sdks/java/io/hadoop-file-system/build.gradle b/sdks/java/io/hadoop-file-system/build.gradle index d78d6a300cac..854ccefa0174 100644 --- a/sdks/java/io/hadoop-file-system/build.gradle +++ b/sdks/java/io/hadoop-file-system/build.gradle @@ -85,7 +85,7 @@ hadoopVersions.each {kv -> configurations.all (Configuration it) -> { // error-prone requires newer guava, don't override for annotation processing // https://github.com/google/error-prone/issues/2745 - if (it.name == "annotationProcessor" || it.name =="testAnnotationProcessor") { + if (it.name == "annotationProcessor" || it.name =="testAnnotationProcessor" || it.name.startsWith("spotless")) { return } resolutionStrategy { diff --git a/sdks/java/io/hadoop-format/build.gradle b/sdks/java/io/hadoop-format/build.gradle index 83dfcf22d86d..92eda09a3166 100644 --- a/sdks/java/io/hadoop-format/build.gradle +++ b/sdks/java/io/hadoop-format/build.gradle @@ -125,7 +125,7 @@ hadoopVersions.each {kv -> configurations.all (Configuration it) -> { // error-prone requires newer guava, don't override for annotation processing // https://github.com/google/error-prone/issues/2745 - if (it.name == "annotationProcessor" || it.name =="testAnnotationProcessor") { + if (it.name == "annotationProcessor" || it.name =="testAnnotationProcessor" || it.name.startsWith("spotless")) { return } resolutionStrategy { From 41c9a0891b5fb52143b3ed0d1d843a9108994e29 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Wed, 15 Jul 2026 19:04:29 +0000 Subject: [PATCH 02/14] 8.3 doesn't work, try 7.2 --- buildSrc/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 5243f1636703..ad75eff8f6b1 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -32,7 +32,7 @@ val useMirror = isCi && !mavenCentralMirrorUrl.isNullOrBlank() plugins { `java-gradle-plugin` groovy - id("com.diffplug.spotless") version "8.3.0" + id("com.diffplug.spotless") version "7.2.1" } // Define the set of repositories required to fetch and enable plugins. @@ -68,7 +68,7 @@ dependencies { runtimeOnly("com.google.protobuf:protobuf-gradle-plugin:0.8.13") // Enable proto code generation runtimeOnly("com.github.davidmc24.gradle.plugin:gradle-avro-plugin:1.9.1") // Enable Avro code generation. Version 1.1.0 is the last supporting avro 1.10.2 - runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:8.3.0") // Enable a code formatting plugin + runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:7.2.1") // Enable a code formatting plugin runtimeOnly("gradle.plugin.com.dorongold.plugins:task-tree:1.5") // Adds a 'taskTree' task to print task dependency tree runtimeOnly("net.linguica.gradle:maven-settings-plugin:0.5") runtimeOnly("gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.5.0") // Enable creating an offline repository From ae4a473cf56aa4ee423e8e399439fa742012519b Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Wed, 15 Jul 2026 21:49:20 +0000 Subject: [PATCH 03/14] fix spark and flink --- runners/flink/build.gradle | 6 +++++- runners/spark/build.gradle | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index 4d058a481820..4f2e0d221b93 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -23,10 +23,14 @@ apply plugin: 'com.diffplug.spotless' * These java sources are included in the subproject's sources in order to compile against the different versions. * We configure spotless here once in order to only check these java sources once. */ +repositories { + mavenCentral() +} + spotless { java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.7') + googleJavaFormat('1.17.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index 4d058a481820..4f2e0d221b93 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -23,10 +23,14 @@ apply plugin: 'com.diffplug.spotless' * These java sources are included in the subproject's sources in order to compile against the different versions. * We configure spotless here once in order to only check these java sources once. */ +repositories { + mavenCentral() +} + spotless { java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.7') + googleJavaFormat('1.17.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file From 55182c46ffcc5c54223dcfa13284027b7cc3682e Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 12:27:59 +0000 Subject: [PATCH 04/14] fix with exclusions --- .../apache/beam/gradle/BeamModulePlugin.groovy | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 0f7cce13258a..54d9eaa791b6 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1455,6 +1455,11 @@ class BeamModulePlugin implements Plugin { // command-line. This is useful for pre-commit which runs checkStyle separately. def disableCheckStyle = project.hasProperty('disableCheckStyle') && project.disableCheckStyle == 'true' + project.tasks.withType(org.gradle.api.plugins.quality.Checkstyle).configureEach { + classpath = project.files() + exclude '**/generated-src/**' + exclude '**/generated-sources/**' + } project.checkstyleMain.enabled = !disableCheckStyle project.checkstyleTest.enabled = !disableCheckStyle @@ -2588,6 +2593,12 @@ class BeamModulePlugin implements Plugin { if (testSourcesJar != null) { testSourcesJar.dependsOn project.tasks.getByName('generateTestAvroJava') } + project.tasks.matching { it.name == 'checkstyleMain' }.configureEach { + it.mustRunAfter project.tasks.named('generateAvroJava') + } + project.tasks.matching { it.name == 'checkstyleTest' }.configureEach { + it.mustRunAfter project.tasks.named('generateTestAvroJava') + } } project.ext.applyAntlrNature = { @@ -2610,6 +2621,12 @@ class BeamModulePlugin implements Plugin { if (testSourcesJar != null) { testSourcesJar.dependsOn project.tasks.getByName('generateTestGrammarSource') } + project.tasks.matching { it.name == 'checkstyleMain' }.configureEach { + it.mustRunAfter project.tasks.named('generateGrammarSource') + } + project.tasks.matching { it.name == 'checkstyleTest' }.configureEach { + it.mustRunAfter project.tasks.named('generateTestGrammarSource') + } } // Creates a task to run the quickstart for a runner. From 6e397929daa1e611e4699918035904e700dfe2ef Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 14:25:02 +0000 Subject: [PATCH 05/14] remove redundant add --- buildSrc/build.gradle.kts | 4 +-- .../beam/gradle/BeamDockerPlugin.groovy | 6 ++-- .../beam/gradle/BeamModulePlugin.groovy | 35 ++++++++----------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index ad75eff8f6b1..5243f1636703 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -32,7 +32,7 @@ val useMirror = isCi && !mavenCentralMirrorUrl.isNullOrBlank() plugins { `java-gradle-plugin` groovy - id("com.diffplug.spotless") version "7.2.1" + id("com.diffplug.spotless") version "8.3.0" } // Define the set of repositories required to fetch and enable plugins. @@ -68,7 +68,7 @@ dependencies { runtimeOnly("com.google.protobuf:protobuf-gradle-plugin:0.8.13") // Enable proto code generation runtimeOnly("com.github.davidmc24.gradle.plugin:gradle-avro-plugin:1.9.1") // Enable Avro code generation. Version 1.1.0 is the last supporting avro 1.10.2 - runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:7.2.1") // Enable a code formatting plugin + runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:8.3.0") // Enable a code formatting plugin runtimeOnly("gradle.plugin.com.dorongold.plugins:task-tree:1.5") // Adds a 'taskTree' task to print task dependency tree runtimeOnly("net.linguica.gradle:maven-settings-plugin:0.5") runtimeOnly("gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.5.0") // Enable creating an offline repository diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy index 6963f96d7313..9aaeaea96950 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy @@ -185,7 +185,8 @@ class BeamDockerPlugin implements Plugin { [ tagName: tagName, tagTask: { - -> tagName } + -> tagName + } ] ] } @@ -201,7 +202,8 @@ class BeamDockerPlugin implements Plugin { tags[taskName] = [ tagName: unresolvedTagName, tagTask: { - -> computeName(ext.name, unresolvedTagName) } + -> computeName(ext.name, unresolvedTagName) + } ] } } diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 54d9eaa791b6..20175fc68adb 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1176,16 +1176,16 @@ class BeamModulePlugin implements Plugin { // If compiled on older SDK, compile with JDK configured with compatible javaXXHome // The order is intended here if (requireJavaVersion.compareTo(JavaVersion.VERSION_11) <= 0 && - project.findProperty('java11Home')) { + project.findProperty('java11Home')) { forkJavaVersion = '11' } else if (requireJavaVersion.compareTo(JavaVersion.VERSION_17) <= 0 && - project.findProperty('java17Home')) { + project.findProperty('java17Home')) { forkJavaVersion = '17' } else if (requireJavaVersion.compareTo(JavaVersion.VERSION_21) <= 0 && - project.findProperty('java21Home')) { + project.findProperty('java21Home')) { forkJavaVersion = '21' } else if (requireJavaVersion.compareTo(JavaVersion.VERSION_25) <= 0 && - project.findProperty('java25Home')) { + project.findProperty('java25Home')) { forkJavaVersion = '25' } else { logger.config("Module ${project.name} disabled. To enable, either " + @@ -2103,7 +2103,8 @@ class BeamModulePlugin implements Plugin { } else { dependencyNode.appendNode('groupId', it.group) dependencyNode.appendNode('artifactId', it.name) - if (it.version != null) { // bom-managed artifacts do not have their versions + if (it.version != null) { + // bom-managed artifacts do not have their versions dependencyNode.appendNode('version', it.version) } dependencyNode.appendNode('scope', param.scope) @@ -2470,7 +2471,8 @@ class BeamModulePlugin implements Plugin { project.protobuf { protoc { // The artifact spec for the Protobuf Compiler - artifact = "com.google.protobuf:protoc:$protobuf_version" } + artifact = "com.google.protobuf:protoc:$protobuf_version" + } // Configure the codegen plugins plugins { @@ -2552,7 +2554,8 @@ class BeamModulePlugin implements Plugin { project.protobuf { protoc { // The artifact spec for the Protobuf Compiler - artifact = "com.google.protobuf:protoc:${GrpcVendoring_1_69_0.protobuf_version}" } + artifact = "com.google.protobuf:protoc:${GrpcVendoring_1_69_0.protobuf_version}" + } // Configure the codegen plugins plugins { @@ -2593,12 +2596,6 @@ class BeamModulePlugin implements Plugin { if (testSourcesJar != null) { testSourcesJar.dependsOn project.tasks.getByName('generateTestAvroJava') } - project.tasks.matching { it.name == 'checkstyleMain' }.configureEach { - it.mustRunAfter project.tasks.named('generateAvroJava') - } - project.tasks.matching { it.name == 'checkstyleTest' }.configureEach { - it.mustRunAfter project.tasks.named('generateTestAvroJava') - } } project.ext.applyAntlrNature = { @@ -2621,12 +2618,6 @@ class BeamModulePlugin implements Plugin { if (testSourcesJar != null) { testSourcesJar.dependsOn project.tasks.getByName('generateTestGrammarSource') } - project.tasks.matching { it.name == 'checkstyleMain' }.configureEach { - it.mustRunAfter project.tasks.named('generateGrammarSource') - } - project.tasks.matching { it.name == 'checkstyleTest' }.configureEach { - it.mustRunAfter project.tasks.named('generateTestGrammarSource') - } } // Creates a task to run the quickstart for a runner. @@ -2762,7 +2753,8 @@ class BeamModulePlugin implements Plugin { doLast { def beamPythonTestPipelineOptions = [ "pipeline_opts": config.pythonPipelineOptions + (usesDataflowRunner ? [ - "--sdk_location=${project.ext.sdkLocation}"] + "--sdk_location=${project.ext.sdkLocation}" + ] : []), "test_opts": config.pytestOptions, "suite": config.name, @@ -3054,7 +3046,8 @@ class BeamModulePlugin implements Plugin { doLast { def beamPythonTestPipelineOptions = [ "pipeline_opts": config.pythonPipelineOptions + (usesDataflowRunner ? [ - "--sdk_location=${project.ext.sdkLocation}"] + "--sdk_location=${project.ext.sdkLocation}" + ] : []), "test_opts": config.pytestOptions, "suite": config.name, From cc24465a4e00c6b744e88e605215f556a027a057 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 14:27:27 +0000 Subject: [PATCH 06/14] update back to 7.2 --- buildSrc/build.gradle.kts | 4 ++-- .../groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 5243f1636703..ad75eff8f6b1 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -32,7 +32,7 @@ val useMirror = isCi && !mavenCentralMirrorUrl.isNullOrBlank() plugins { `java-gradle-plugin` groovy - id("com.diffplug.spotless") version "8.3.0" + id("com.diffplug.spotless") version "7.2.1" } // Define the set of repositories required to fetch and enable plugins. @@ -68,7 +68,7 @@ dependencies { runtimeOnly("com.google.protobuf:protobuf-gradle-plugin:0.8.13") // Enable proto code generation runtimeOnly("com.github.davidmc24.gradle.plugin:gradle-avro-plugin:1.9.1") // Enable Avro code generation. Version 1.1.0 is the last supporting avro 1.10.2 - runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:8.3.0") // Enable a code formatting plugin + runtimeOnly("com.diffplug.spotless:spotless-plugin-gradle:7.2.1") // Enable a code formatting plugin runtimeOnly("gradle.plugin.com.dorongold.plugins:task-tree:1.5") // Adds a 'taskTree' task to print task dependency tree runtimeOnly("net.linguica.gradle:maven-settings-plugin:0.5") runtimeOnly("gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.5.0") // Enable creating an offline repository diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy index 9aaeaea96950..6963f96d7313 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamDockerPlugin.groovy @@ -185,8 +185,7 @@ class BeamDockerPlugin implements Plugin { [ tagName: tagName, tagTask: { - -> tagName - } + -> tagName } ] ] } @@ -202,8 +201,7 @@ class BeamDockerPlugin implements Plugin { tags[taskName] = [ tagName: unresolvedTagName, tagTask: { - -> computeName(ext.name, unresolvedTagName) - } + -> computeName(ext.name, unresolvedTagName) } ] } } From 3e17bc1b529c92e53b8ad1e51f44c2a91ca9f8d0 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 15:34:20 +0000 Subject: [PATCH 07/14] switch to 1.15 for java format for java 11 --- .../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 2 +- runners/flink/build.gradle | 2 +- runners/spark/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 20175fc68adb..5931f65a45d3 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1483,7 +1483,7 @@ class BeamModulePlugin implements Plugin { enforceCheck !disableSpotlessCheck java { licenseHeader javaLicenseHeader - googleJavaFormat('1.17.0') + googleJavaFormat('1.15.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' exclude '**/DefaultPackageTest.java' diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index 4f2e0d221b93..f9001ee89458 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -30,7 +30,7 @@ repositories { spotless { java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.17.0') + googleJavaFormat('1.15.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index 4f2e0d221b93..f9001ee89458 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -30,7 +30,7 @@ repositories { spotless { java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.17.0') + googleJavaFormat('1.15.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file From 6db2a3734e4c711bd9bf58bf633be9556196e09b Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 15:48:44 +0000 Subject: [PATCH 08/14] update java format to 1.10 instead --- .../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 2 +- runners/flink/build.gradle | 2 +- runners/spark/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 5931f65a45d3..7c8e8c3ded10 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1483,7 +1483,7 @@ class BeamModulePlugin implements Plugin { enforceCheck !disableSpotlessCheck java { licenseHeader javaLicenseHeader - googleJavaFormat('1.15.0') + googleJavaFormat('1.10.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' exclude '**/DefaultPackageTest.java' diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index f9001ee89458..1d8a7ac3641d 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -30,7 +30,7 @@ repositories { spotless { java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.15.0') + googleJavaFormat('1.10.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index f9001ee89458..1d8a7ac3641d 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -30,7 +30,7 @@ repositories { spotless { java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.15.0') + googleJavaFormat('1.10.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file From 4e9d6171159a1739ccea6b14f0c565dc595e43c9 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 16:19:58 +0000 Subject: [PATCH 09/14] try lazy task and model-info --- .../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 7c8e8c3ded10..e8264a9d9852 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1459,6 +1459,7 @@ class BeamModulePlugin implements Plugin { classpath = project.files() exclude '**/generated-src/**' exclude '**/generated-sources/**' + mustRunAfter project.tasks.matching { it.name.startsWith('generate') } } project.checkstyleMain.enabled = !disableCheckStyle project.checkstyleTest.enabled = !disableCheckStyle @@ -1487,6 +1488,7 @@ class BeamModulePlugin implements Plugin { target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' exclude '**/DefaultPackageTest.java' + exclude '**/module-info.java' } // For spotless:off and spotless:on toggleOffOn() From 1723e2fcf7ec3554e720622ad413519e56b26799 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 16:57:47 +0000 Subject: [PATCH 10/14] ratchet --- .../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 1 + runners/flink/build.gradle | 1 + runners/spark/build.gradle | 1 + 3 files changed, 3 insertions(+) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index e8264a9d9852..abec63e460ef 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1482,6 +1482,7 @@ class BeamModulePlugin implements Plugin { project.disableSpotlessCheck == 'true' project.spotless { enforceCheck !disableSpotlessCheck + ratchetFrom 'origin/master' java { licenseHeader javaLicenseHeader googleJavaFormat('1.10.0') diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index 1d8a7ac3641d..49cf6c6e0659 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -28,6 +28,7 @@ repositories { } spotless { + ratchetFrom 'origin/master' java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader googleJavaFormat('1.10.0') diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index 1d8a7ac3641d..49cf6c6e0659 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -28,6 +28,7 @@ repositories { } spotless { + ratchetFrom 'origin/master' java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader googleJavaFormat('1.10.0') From 13aed10b41b84dc4e35533524d70a5a7d7566acc Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 17:21:53 +0000 Subject: [PATCH 11/14] have 1.17 and rachetFrom --- .../groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 4 ++-- runners/flink/build.gradle | 4 ++-- runners/spark/build.gradle | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index abec63e460ef..b272935fb19e 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1482,10 +1482,10 @@ class BeamModulePlugin implements Plugin { project.disableSpotlessCheck == 'true' project.spotless { enforceCheck !disableSpotlessCheck - ratchetFrom 'origin/master' + ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' java { licenseHeader javaLicenseHeader - googleJavaFormat('1.10.0') + googleJavaFormat('1.17.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' exclude '**/DefaultPackageTest.java' diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index 49cf6c6e0659..a4e6b2f6eeaf 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -28,10 +28,10 @@ repositories { } spotless { - ratchetFrom 'origin/master' + ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.10.0') + googleJavaFormat('1.17.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index 49cf6c6e0659..a4e6b2f6eeaf 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -28,10 +28,10 @@ repositories { } spotless { - ratchetFrom 'origin/master' + ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader - googleJavaFormat('1.10.0') + googleJavaFormat('1.17.0') target project.fileTree(project.projectDir) { include 'src/*/java/**/*.java' } } } \ No newline at end of file From a80cbd461a852955cfca0946599e43601791e36b Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 17:32:03 +0000 Subject: [PATCH 12/14] fetch origin/master --- .github/workflows/beam_PreCommit_Spotless.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/beam_PreCommit_Spotless.yml b/.github/workflows/beam_PreCommit_Spotless.yml index 64701930e856..c4e878ccdac0 100644 --- a/.github/workflows/beam_PreCommit_Spotless.yml +++ b/.github/workflows/beam_PreCommit_Spotless.yml @@ -85,6 +85,8 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action + - name: Fetch origin/master for Spotless ratcheting + run: git fetch origin master:refs/remotes/origin/master - name: run Spotless PreCommit script uses: ./.github/actions/gradle-command-self-hosted-action with: From c3a90e6056aa2ea15b060e319162a8fced740ccf Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 18:07:47 +0000 Subject: [PATCH 13/14] another try with ratchet --- .github/workflows/beam_PreCommit_Spotless.yml | 2 +- .../groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 4 +++- runners/flink/build.gradle | 4 +++- runners/spark/build.gradle | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/beam_PreCommit_Spotless.yml b/.github/workflows/beam_PreCommit_Spotless.yml index c4e878ccdac0..d698e7c96878 100644 --- a/.github/workflows/beam_PreCommit_Spotless.yml +++ b/.github/workflows/beam_PreCommit_Spotless.yml @@ -91,7 +91,7 @@ jobs: uses: ./.github/actions/gradle-command-self-hosted-action with: gradle-command: spotlessCheck checkStyleMain checkStyleTest :buildSrc:spotlessCheck - arguments: -PdisableSpotlessApply + arguments: -PdisableSpotlessApply -PspotlessRatchet - name: Upload test report uses: actions/upload-artifact@v7 with: diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index b272935fb19e..40b0c8bd05f6 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1482,7 +1482,9 @@ class BeamModulePlugin implements Plugin { project.disableSpotlessCheck == 'true' project.spotless { enforceCheck !disableSpotlessCheck - ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' + if (project.hasProperty('spotlessRatchet')) { + ratchetFrom 'origin/master' + } java { licenseHeader javaLicenseHeader googleJavaFormat('1.17.0') diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index a4e6b2f6eeaf..f35441e9df6f 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -28,7 +28,9 @@ repositories { } spotless { - ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' + if (project.hasProperty('spotlessRatchet')) { + ratchetFrom 'origin/master' + } java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader googleJavaFormat('1.17.0') diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index a4e6b2f6eeaf..f35441e9df6f 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -28,7 +28,9 @@ repositories { } spotless { - ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' + if (project.hasProperty('spotlessRatchet')) { + ratchetFrom 'origin/master' + } java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader googleJavaFormat('1.17.0') From 3488dfb1ef084b3c2c90f94a3416185d096760af Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Thu, 16 Jul 2026 18:09:53 +0000 Subject: [PATCH 14/14] ratchet form updates --- .../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 2 +- runners/flink/build.gradle | 2 +- runners/spark/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 40b0c8bd05f6..5dd5579cd2de 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1483,7 +1483,7 @@ class BeamModulePlugin implements Plugin { project.spotless { enforceCheck !disableSpotlessCheck if (project.hasProperty('spotlessRatchet')) { - ratchetFrom 'origin/master' + ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' } java { licenseHeader javaLicenseHeader diff --git a/runners/flink/build.gradle b/runners/flink/build.gradle index f35441e9df6f..d7fcd072fdd3 100644 --- a/runners/flink/build.gradle +++ b/runners/flink/build.gradle @@ -29,7 +29,7 @@ repositories { spotless { if (project.hasProperty('spotlessRatchet')) { - ratchetFrom 'origin/master' + ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' } java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle index f35441e9df6f..d7fcd072fdd3 100644 --- a/runners/spark/build.gradle +++ b/runners/spark/build.gradle @@ -29,7 +29,7 @@ repositories { spotless { if (project.hasProperty('spotlessRatchet')) { - ratchetFrom 'origin/master' + ratchetFrom project.findProperty('spotlessRatchetFrom') ?: 'origin/master' } java { licenseHeader org.apache.beam.gradle.BeamModulePlugin.javaLicenseHeader