From b47d84b71431c85c953d9708fb57e8f8929a4d69 Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 15 Jul 2025 08:51:19 +0800 Subject: [PATCH 1/7] Upgrade guava version to 33.4.8-jre --- MODULE.bazel | 2 +- core/build.gradle | 2 +- gradle/libs.versions.toml | 6 +++--- repositories.bzl | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index ed027757e86..83f04503af4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -17,7 +17,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.code.gson:gson:2.11.0", "com.google.errorprone:error_prone_annotations:2.30.0", "com.google.guava:failureaccess:1.0.1", - "com.google.guava:guava:33.3.1-android", + "com.google.guava:guava:33.4.8-jre", "com.google.re2j:re2j:1.8", "com.google.s2a.proto.v2:s2a-proto:0.1.1", "com.google.truth:truth:1.4.2", diff --git a/core/build.gradle b/core/build.gradle index 2fac9ddba04..fa6e08b972d 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,6 +1,6 @@ buildscript { dependencies { - classpath 'com.google.guava:guava:30.0-android' + classpath 'com.google.guava:guava:33.4.8-jre' } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2ea4c8b5fa1..fbb9b137ae7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -46,12 +46,12 @@ google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.2" # 2.12.1 requires error_prone_annotations:2.36.0 but we are stuck with 2.30.0 gson = "com.google.code.gson:gson:2.11.0" # 33.4.0 requires com.google.errorprone:error_prone_annotations:2.36.0 but we are stuck with 2.30.0 (see above) -guava = "com.google.guava:guava:33.3.1-android" +guava = "com.google.guava:guava:33.4.8-jre" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" -guava-testlib = "com.google.guava:guava-testlib:33.3.1-android" +guava-testlib = "com.google.guava:guava-testlib:33.4.8-jre" # JRE version is needed for projects where its a transitive dependency, f.e. gcp-observability. # May be different from the -android version. -guava-jre = "com.google.guava:guava:33.3.1-jre" +guava-jre = "com.google.guava:guava:33.4.8-jre" hdrhistogram = "org.hdrhistogram:HdrHistogram:2.2.2" # 6.0.0+ use java.lang.Deprecated forRemoval and since from Java 9 jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:5.0.0" diff --git a/repositories.bzl b/repositories.bzl index 12a8ec7a6f1..e5754f28d61 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -21,7 +21,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.code.gson:gson:2.11.0", "com.google.errorprone:error_prone_annotations:2.30.0", "com.google.guava:failureaccess:1.0.1", - "com.google.guava:guava:33.3.1-android", + "com.google.guava:guava:33.4.8-jre", "com.google.re2j:re2j:1.8", "com.google.s2a.proto.v2:s2a-proto:0.1.1", "com.google.truth:truth:1.4.2", From b2924d738b3d0fd656fa8eead4f4542c59dd3c67 Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 15 Jul 2025 09:10:01 +0800 Subject: [PATCH 2/7] Upgrade error_prone_annotations version to 2.36.0 --- MODULE.bazel | 2 +- gradle/libs.versions.toml | 8 ++------ repositories.bzl | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 83f04503af4..a5000d324f5 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -15,7 +15,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.auto.value:auto-value:1.11.0", "com.google.code.findbugs:jsr305:3.0.2", "com.google.code.gson:gson:2.11.0", - "com.google.errorprone:error_prone_annotations:2.30.0", + "com.google.errorprone:error_prone_annotations:2.36.0", "com.google.guava:failureaccess:1.0.1", "com.google.guava:guava:33.4.8-jre", "com.google.re2j:re2j:1.8", diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fbb9b137ae7..1939592f2cb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,11 +29,7 @@ commons-math3 = "org.apache.commons:commons-math3:3.6.1" conscrypt = "org.conscrypt:conscrypt-openjdk-uber:2.5.2" cronet-api = "org.chromium.net:cronet-api:119.6045.31" cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31" -# error-prone 2.31.0+ blocked on https://github.com/grpc/grpc-java/issues/10152 -# It breaks Bazel (ArrayIndexOutOfBoundsException in turbine) and Dexing ("D8: -# java.lang.NullPointerException"). We can trivially upgrade the Bazel CI to -# 6.3.0+ (https://github.com/bazelbuild/bazel/issues/18743). -errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.30.0" +errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.36.0" # error-prone 2.32.0+ require Java 17+ errorprone-core = "com.google.errorprone:error_prone_core:2.31.0" google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.51.0" @@ -45,7 +41,7 @@ google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.24.1 google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.2" # 2.12.1 requires error_prone_annotations:2.36.0 but we are stuck with 2.30.0 gson = "com.google.code.gson:gson:2.11.0" -# 33.4.0 requires com.google.errorprone:error_prone_annotations:2.36.0 but we are stuck with 2.30.0 (see above) +# 33.4.8-jre requires com.google.errorprone:error_prone_annotations:2.36.0 guava = "com.google.guava:guava:33.4.8-jre" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" guava-testlib = "com.google.guava:guava-testlib:33.4.8-jre" diff --git a/repositories.bzl b/repositories.bzl index e5754f28d61..038c9a5d7c7 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -19,7 +19,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.auto.value:auto-value:1.11.0", "com.google.code.findbugs:jsr305:3.0.2", "com.google.code.gson:gson:2.11.0", - "com.google.errorprone:error_prone_annotations:2.30.0", + "com.google.errorprone:error_prone_annotations:2.36.0", "com.google.guava:failureaccess:1.0.1", "com.google.guava:guava:33.4.8-jre", "com.google.re2j:re2j:1.8", From 99e9bded88d23c9014c39ba27386abef0156184e Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 15 Jul 2025 09:28:26 +0800 Subject: [PATCH 3/7] Upgrade checker-qual version to 3.49.5 --- MODULE.bazel | 2 +- repositories.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index a5000d324f5..d6991dedb94 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -41,7 +41,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "io.opencensus:opencensus-contrib-grpc-metrics:0.31.0", "io.perfmark:perfmark-api:0.27.0", "junit:junit:4.13.2", - "org.checkerframework:checker-qual:3.12.0", + "org.checkerframework:checker-qual:3.49.5", "org.codehaus.mojo:animal-sniffer-annotations:1.24", ] # GRPC_DEPS_END diff --git a/repositories.bzl b/repositories.bzl index 038c9a5d7c7..19ccc6ae1de 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -45,7 +45,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "io.opencensus:opencensus-contrib-grpc-metrics:0.31.0", "io.perfmark:perfmark-api:0.27.0", "junit:junit:4.13.2", - "org.checkerframework:checker-qual:3.12.0", + "org.checkerframework:checker-qual:3.49.5", "org.codehaus.mojo:animal-sniffer-annotations:1.24", ] # GRPC_DEPS_END From 497c16c9eb33f34ab3346c9e564795d9f8e8541a Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 15 Jul 2025 10:40:35 +0800 Subject: [PATCH 4/7] Add checker-qual to s2a gradle build dependencies --- s2a/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/s2a/build.gradle b/s2a/build.gradle index 1e48e2bb297..012411c19ba 100644 --- a/s2a/build.gradle +++ b/s2a/build.gradle @@ -12,6 +12,7 @@ description = "gRPC: S2A" dependencies { implementation libraries.s2a.proto + implementation 'org.checkerframework:checker-qual:3.49.5' api project(':grpc-api') implementation project(':grpc-stub'), From b46bcd5b59889fa3233a045a8137405fbc2d4150 Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 15 Jul 2025 14:22:32 +0800 Subject: [PATCH 5/7] Fix guava android artifact name --- MODULE.bazel | 2 +- core/build.gradle | 2 +- gradle/libs.versions.toml | 6 +++--- repositories.bzl | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index d6991dedb94..4893b653f3b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -17,7 +17,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.code.gson:gson:2.11.0", "com.google.errorprone:error_prone_annotations:2.36.0", "com.google.guava:failureaccess:1.0.1", - "com.google.guava:guava:33.4.8-jre", + "com.google.guava:guava:33.4.8-android", "com.google.re2j:re2j:1.8", "com.google.s2a.proto.v2:s2a-proto:0.1.1", "com.google.truth:truth:1.4.2", diff --git a/core/build.gradle b/core/build.gradle index fa6e08b972d..b320f326b41 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,6 +1,6 @@ buildscript { dependencies { - classpath 'com.google.guava:guava:33.4.8-jre' + classpath 'com.google.guava:guava:33.4.8-android' } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1939592f2cb..f159bec96e2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -41,10 +41,10 @@ google-auth-oauth2Http = "com.google.auth:google-auth-library-oauth2-http:1.24.1 google-cloud-logging = "com.google.cloud:google-cloud-logging:3.21.2" # 2.12.1 requires error_prone_annotations:2.36.0 but we are stuck with 2.30.0 gson = "com.google.code.gson:gson:2.11.0" -# 33.4.8-jre requires com.google.errorprone:error_prone_annotations:2.36.0 -guava = "com.google.guava:guava:33.4.8-jre" +# 33.4.8 requires com.google.errorprone:error_prone_annotations:2.36.0 +guava = "com.google.guava:guava:33.4.8-android" guava-betaChecker = "com.google.guava:guava-beta-checker:1.0" -guava-testlib = "com.google.guava:guava-testlib:33.4.8-jre" +guava-testlib = "com.google.guava:guava-testlib:33.4.8-android" # JRE version is needed for projects where its a transitive dependency, f.e. gcp-observability. # May be different from the -android version. guava-jre = "com.google.guava:guava:33.4.8-jre" diff --git a/repositories.bzl b/repositories.bzl index 19ccc6ae1de..e7a37e0ca4e 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -21,7 +21,7 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [ "com.google.code.gson:gson:2.11.0", "com.google.errorprone:error_prone_annotations:2.36.0", "com.google.guava:failureaccess:1.0.1", - "com.google.guava:guava:33.4.8-jre", + "com.google.guava:guava:33.4.8-android", "com.google.re2j:re2j:1.8", "com.google.s2a.proto.v2:s2a-proto:0.1.1", "com.google.truth:truth:1.4.2", From 8fd6c3ab45582dd40ce8b58a44ec2f59a334fd88 Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 15 Jul 2025 18:57:14 +0800 Subject: [PATCH 6/7] Add checker-qual to cronet gradle build dependencies --- cronet/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/cronet/build.gradle b/cronet/build.gradle index 1a327f9f966..936a2e2a2a7 100644 --- a/cronet/build.gradle +++ b/cronet/build.gradle @@ -46,6 +46,7 @@ dependencies { libraries.cronet.api implementation project(':grpc-core') implementation libraries.guava + implementation 'org.checkerframework:checker-qual:3.49.5' testImplementation project(':grpc-testing') testImplementation libraries.cronet.embedded From 24af5eddce444319df288615ad5b6083b3f31740 Mon Sep 17 00:00:00 2001 From: zrlw Date: Wed, 16 Jul 2025 08:13:25 +0800 Subject: [PATCH 7/7] Add R8 8.1.44 buildscript to settings.gradle for AGP 7.4 --- settings.gradle | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/settings.gradle b/settings.gradle index e30849dbe2b..b8c6825f21e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,17 @@ pluginManagement { + // https://issuetracker.google.com/issues/342522142#comment8 + // use D8/R8 8.0.44 or 8.1.44 with AGP 7.4 if needed. + buildscript { + repositories { + mavenCentral() + maven { + url = uri("https://storage.googleapis.com/r8-releases/raw") + } + } + dependencies { + classpath("com.android.tools:r8:8.1.44") + } + } plugins { // https://developer.android.com/build/releases/gradle-plugin // 8+ has many changes: https://github.com/grpc/grpc-java/issues/10152