From 399d2e3ccb1056d09c5c54f8b42814489a88f9c3 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 10:10:20 -0400 Subject: [PATCH 01/13] chore: speed up lint job --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1095d4f071c4..5cf2923b2b8e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -79,7 +79,7 @@ jobs: path: ~/.m2/repository key: ${{ runner.os }}-maven-unified-${{ steps.date.outputs.week_of_year }} - run: java -version - - run: mvn -B -ntp com.spotify.fmt:fmt-maven-plugin:check -T 1C + - run: mvn -B -ntp com.spotify.fmt:fmt-maven-plugin:check -T 1.5C - run: mvn -B -ntp checkstyle:check@checkstyle enforcer: runs-on: ubuntu-latest From 34d4a5c8605bc1a0f9f755e9280c854b5a632bc2 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 10:26:06 -0400 Subject: [PATCH 02/13] run with files --- .github/workflows/ci.yaml | 5 +++-- .kokoro/build.sh | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5cf2923b2b8e..bf427d321f2d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -79,8 +79,9 @@ jobs: path: ~/.m2/repository key: ${{ runner.os }}-maven-unified-${{ steps.date.outputs.week_of_year }} - run: java -version - - run: mvn -B -ntp com.spotify.fmt:fmt-maven-plugin:check -T 1.5C - - run: mvn -B -ntp checkstyle:check@checkstyle + - run: .kokoro/build.sh + env: + JOB_TYPE: lint enforcer: runs-on: ubuntu-latest steps: diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 2e2efd05017c..c1d0ea80dfc5 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -92,6 +92,15 @@ case ${JOB_TYPE} in echo "Not running GraalVM checks -- No changes in relevant modules" fi ;; + lint) + changed_file_list="$(git diff --name-only main HEAD)" + printf "Running linter checks against \n%s\n" "${changed_file_list}" + mvn -B -ntp \ + com.spotify.fmt:fmt-maven-plugin:check \ + -T 1.5C \ + -Dfmt.filesNamePattern="${changed_file_list}" + mvn -B -ntp checkstyle:check@checkstyle + ;; *) ;; esac From 4d2cd5285c3bee1171c56c5061911723c6e4b4e7 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 10:33:06 -0400 Subject: [PATCH 03/13] use base_ref --- .github/workflows/ci.yaml | 1 + .kokoro/build.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bf427d321f2d..c86d1eeb168b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -82,6 +82,7 @@ jobs: - run: .kokoro/build.sh env: JOB_TYPE: lint + TARGET_BRANCH: ${{ github.base_ref }} enforcer: runs-on: ubuntu-latest steps: diff --git a/.kokoro/build.sh b/.kokoro/build.sh index c1d0ea80dfc5..236722810841 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -93,7 +93,7 @@ case ${JOB_TYPE} in fi ;; lint) - changed_file_list="$(git diff --name-only main HEAD)" + changed_file_list="$(git diff --name-only "${TARGET_BRANCH}" HEAD)" printf "Running linter checks against \n%s\n" "${changed_file_list}" mvn -B -ntp \ com.spotify.fmt:fmt-maven-plugin:check \ From b7609f91b8b65b5d0ead42f16afea7309d583b65 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 10:36:13 -0400 Subject: [PATCH 04/13] fetch-depth: 0 --- .github/workflows/ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c86d1eeb168b..ea7858282b2f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -78,6 +78,7 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-unified-${{ steps.date.outputs.week_of_year }} + fetch-depth: 0 - run: java -version - run: .kokoro/build.sh env: From d6851cf53a470339c0bd070a2844afd66e77bcda Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 10:42:54 -0400 Subject: [PATCH 05/13] fetch-depth: 0 --- .github/workflows/ci.yaml | 6 ++++-- .kokoro/build.sh | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ea7858282b2f..66dd7f5aed7a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -68,6 +68,8 @@ jobs: id: date run: echo "::set-output name=week_of_year::$(date +'%W' --utc)" - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: actions/setup-java@v4 with: distribution: temurin @@ -78,12 +80,12 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-unified-${{ steps.date.outputs.week_of_year }} - fetch-depth: 0 - run: java -version - run: .kokoro/build.sh env: JOB_TYPE: lint - TARGET_BRANCH: ${{ github.base_ref }} + HEAD_BRANCH: ${{ github.head_ref }} + BASE_BRANCH: ${{ github.base_ref }} enforcer: runs-on: ubuntu-latest steps: diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 236722810841..19fcafadfb3b 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -93,7 +93,9 @@ case ${JOB_TYPE} in fi ;; lint) - changed_file_list="$(git diff --name-only "${TARGET_BRANCH}" HEAD)" + git checkout "${BASE_BRANCH}" + git checkout "${HEAD_BRANCH}" + changed_file_list="$(git diff --name-only "${BASE_BRANCH}" HEAD)" printf "Running linter checks against \n%s\n" "${changed_file_list}" mvn -B -ntp \ com.spotify.fmt:fmt-maven-plugin:check \ From a9757813c77fcc121a70443077998ea209fc278b Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 10:49:58 -0400 Subject: [PATCH 06/13] change option --- .kokoro/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 19fcafadfb3b..50910ca200dc 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -100,7 +100,7 @@ case ${JOB_TYPE} in mvn -B -ntp \ com.spotify.fmt:fmt-maven-plugin:check \ -T 1.5C \ - -Dfmt.filesNamePattern="${changed_file_list}" + -DfilesNamePattern="${changed_file_list}" mvn -B -ntp checkstyle:check@checkstyle ;; *) ;; From 0bab73a6842952a21422992af34a38f2569dd862 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 11:27:25 -0400 Subject: [PATCH 07/13] find changed module --- .kokoro/build.sh | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 50910ca200dc..7f3e625246ad 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -96,11 +96,34 @@ case ${JOB_TYPE} in git checkout "${BASE_BRANCH}" git checkout "${HEAD_BRANCH}" changed_file_list="$(git diff --name-only "${BASE_BRANCH}" HEAD)" - printf "Running linter checks against \n%s\n" "${changed_file_list}" + declare -A java_modules_map + java_modules="" + while IFS= read -r changed_file; do + if [ -n "${changed_file}" ] && [[ "${changed_file}" == *.java ]]; then + echo "Processing file: ${changed_file}" + first_dir=$(echo "${changed_file}" | cut -d '/' -f1) + if [[ "${first_dir}" == java-* ]]; then + if [ -z "${java_modules_map[${first_dir}]}" ]; then + java_modules_map["${first_dir}"]=1 + echo "Found new Java module: ${first_dir}" + java_modules="${java_modules}${first_dir}|" + fi + fi + fi + done <<< "${changed_file_list}" + if [ "${java_modules}" == "" ]; then + printf "No java modules affected." + exit 0 + elif [[ "${java_modules}" == .*\|$ ]]; then + # Remove the tailing "|" + java_modules="${java_modules%?}" + java_modules="(${java_modules})" + fi + printf "Running linter checks against \n%s\n" "${java_modules}" mvn -B -ntp \ com.spotify.fmt:fmt-maven-plugin:check \ -T 1.5C \ - -DfilesNamePattern="${changed_file_list}" + -DfilesNamePattern="${java_modules}" mvn -B -ntp checkstyle:check@checkstyle ;; *) ;; From 4a0d901e057afca40c0d8fbcb3747ba84974ed40 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 11:35:40 -0400 Subject: [PATCH 08/13] test --- .../com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java | 4 +++- .../clouderrorreporting/v1beta1/MockErrorGroupService.java | 1 + .../devtools/clouderrorreporting/v1beta1/ErrorContext.java | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java b/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java index 35b22454e5cc..b980bdbeeefb 100644 --- a/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java +++ b/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java @@ -30,7 +30,9 @@ @io.grpc.stub.annotations.GrpcGenerated public final class DatastreamGrpc { - private DatastreamGrpc() {} + private DatastreamGrpc() { + + } public static final java.lang.String SERVICE_NAME = "google.cloud.datastream.v1alpha1.Datastream"; diff --git a/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java b/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java index 84969dec668e..1f51f9b03906 100644 --- a/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java +++ b/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java @@ -55,5 +55,6 @@ public ServerServiceDefinition getServiceDefinition() { @Override public void reset() { serviceImpl.reset(); + } } diff --git a/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java b/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java index ef8dbe9dc4ee..464d14876422 100644 --- a/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java +++ b/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java @@ -40,6 +40,7 @@ public final class ErrorContext extends com.google.protobuf.GeneratedMessageV3 // Use ErrorContext.newBuilder() to construct. private ErrorContext(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); + } private ErrorContext() { From 0d205b84032b5bfc3c08bb3b10373f4ac2348692 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 11:48:13 -0400 Subject: [PATCH 09/13] test --- .kokoro/build.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 7f3e625246ad..d405f09e8288 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -106,7 +106,7 @@ case ${JOB_TYPE} in if [ -z "${java_modules_map[${first_dir}]}" ]; then java_modules_map["${first_dir}"]=1 echo "Found new Java module: ${first_dir}" - java_modules="${java_modules}${first_dir}|" + java_modules="${java_modules}.*${first_dir}/.*|" fi fi fi @@ -114,11 +114,10 @@ case ${JOB_TYPE} in if [ "${java_modules}" == "" ]; then printf "No java modules affected." exit 0 - elif [[ "${java_modules}" == .*\|$ ]]; then - # Remove the tailing "|" - java_modules="${java_modules%?}" - java_modules="(${java_modules})" fi + # Remove the tailing "|" + java_modules="${java_modules%|}" + java_modules="(${java_modules})" printf "Running linter checks against \n%s\n" "${java_modules}" mvn -B -ntp \ com.spotify.fmt:fmt-maven-plugin:check \ From b05d49471ad8026e58d1f88bb97204879a117cdd Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 11:56:40 -0400 Subject: [PATCH 10/13] debug --- .kokoro/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index d405f09e8288..dbc7168a6870 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -119,7 +119,7 @@ case ${JOB_TYPE} in java_modules="${java_modules%|}" java_modules="(${java_modules})" printf "Running linter checks against \n%s\n" "${java_modules}" - mvn -B -ntp \ + mvn -B -ntp -X\ com.spotify.fmt:fmt-maven-plugin:check \ -T 1.5C \ -DfilesNamePattern="${java_modules}" From ccb261ce5299c9ea89ec07c6b25fc9d924e54394 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 12:19:21 -0400 Subject: [PATCH 11/13] remove debug --- .kokoro/build.sh | 2 +- .../com/google/cloud/channel/v1/CloudChannelServiceClient.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index dbc7168a6870..d405f09e8288 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -119,7 +119,7 @@ case ${JOB_TYPE} in java_modules="${java_modules%|}" java_modules="(${java_modules})" printf "Running linter checks against \n%s\n" "${java_modules}" - mvn -B -ntp -X\ + mvn -B -ntp \ com.spotify.fmt:fmt-maven-plugin:check \ -T 1.5C \ -DfilesNamePattern="${java_modules}" diff --git a/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java b/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java index c905b1b1bb11..438ee0a2531c 100644 --- a/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java +++ b/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java @@ -1393,6 +1393,9 @@ public static final CloudChannelServiceClient create(CloudChannelServiceSettings return new CloudChannelServiceClient(settings); } + + + /** * Constructs an instance of CloudChannelServiceClient, using the given stub for making calls. * This is for advanced usage - prefer using create(CloudChannelServiceSettings). From fc16279118c9fff1fd4d6d894571575f2ceba865 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 13:49:27 -0400 Subject: [PATCH 12/13] only run linter if code changes --- .kokoro/build.sh | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index d405f09e8288..360ea5c3a7ff 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -96,33 +96,21 @@ case ${JOB_TYPE} in git checkout "${BASE_BRANCH}" git checkout "${HEAD_BRANCH}" changed_file_list="$(git diff --name-only "${BASE_BRANCH}" HEAD)" - declare -A java_modules_map - java_modules="" + has_code_change="false" while IFS= read -r changed_file; do if [ -n "${changed_file}" ] && [[ "${changed_file}" == *.java ]]; then - echo "Processing file: ${changed_file}" - first_dir=$(echo "${changed_file}" | cut -d '/' -f1) - if [[ "${first_dir}" == java-* ]]; then - if [ -z "${java_modules_map[${first_dir}]}" ]; then - java_modules_map["${first_dir}"]=1 - echo "Found new Java module: ${first_dir}" - java_modules="${java_modules}.*${first_dir}/.*|" - fi - fi + has_code_change="true" + break fi done <<< "${changed_file_list}" - if [ "${java_modules}" == "" ]; then - printf "No java modules affected." + if [ "${has_code_change}" == "false" ]; then + echo "No java modules affected. Skipping linter check." exit 0 fi - # Remove the tailing "|" - java_modules="${java_modules%|}" - java_modules="(${java_modules})" - printf "Running linter checks against \n%s\n" "${java_modules}" + mvn -B -ntp \ - com.spotify.fmt:fmt-maven-plugin:check \ -T 1.5C \ - -DfilesNamePattern="${java_modules}" + com.spotify.fmt:fmt-maven-plugin:check mvn -B -ntp checkstyle:check@checkstyle ;; *) ;; From 0652f2ece69d0296e3cdd9cfb001ea29033d8e9e Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Mon, 16 Jun 2025 14:24:31 -0400 Subject: [PATCH 13/13] restore files --- .../google/cloud/channel/v1/CloudChannelServiceClient.java | 3 --- .../com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java | 4 +--- .../clouderrorreporting/v1beta1/MockErrorGroupService.java | 1 - .../devtools/clouderrorreporting/v1beta1/ErrorContext.java | 1 - 4 files changed, 1 insertion(+), 8 deletions(-) diff --git a/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java b/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java index 438ee0a2531c..c905b1b1bb11 100644 --- a/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java +++ b/java-channel/google-cloud-channel/src/main/java/com/google/cloud/channel/v1/CloudChannelServiceClient.java @@ -1393,9 +1393,6 @@ public static final CloudChannelServiceClient create(CloudChannelServiceSettings return new CloudChannelServiceClient(settings); } - - - /** * Constructs an instance of CloudChannelServiceClient, using the given stub for making calls. * This is for advanced usage - prefer using create(CloudChannelServiceSettings). diff --git a/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java b/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java index b980bdbeeefb..35b22454e5cc 100644 --- a/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java +++ b/java-datastream/grpc-google-cloud-datastream-v1alpha1/src/main/java/com/google/cloud/datastream/v1alpha1/DatastreamGrpc.java @@ -30,9 +30,7 @@ @io.grpc.stub.annotations.GrpcGenerated public final class DatastreamGrpc { - private DatastreamGrpc() { - - } + private DatastreamGrpc() {} public static final java.lang.String SERVICE_NAME = "google.cloud.datastream.v1alpha1.Datastream"; diff --git a/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java b/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java index 1f51f9b03906..84969dec668e 100644 --- a/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java +++ b/java-errorreporting/google-cloud-errorreporting/src/test/java/com/google/devtools/clouderrorreporting/v1beta1/MockErrorGroupService.java @@ -55,6 +55,5 @@ public ServerServiceDefinition getServiceDefinition() { @Override public void reset() { serviceImpl.reset(); - } } diff --git a/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java b/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java index 464d14876422..ef8dbe9dc4ee 100644 --- a/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java +++ b/java-errorreporting/proto-google-cloud-error-reporting-v1beta1/src/main/java/com/google/devtools/clouderrorreporting/v1beta1/ErrorContext.java @@ -40,7 +40,6 @@ public final class ErrorContext extends com.google.protobuf.GeneratedMessageV3 // Use ErrorContext.newBuilder() to construct. private ErrorContext(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); - } private ErrorContext() {