Conversation
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. |
📝 PRs merging into main branchOur main branch should always be in a releasable state. If you are working on a larger change, or if you don't want this change to see the light of the day just yet, consider using a feature branch first, and only merge into the main branch when the code complete and ready to be released. |
17326cf to
93b9681
Compare
… to work around resulting build errors "FirestoreGrpc.java:762: error: package io.grpc.stub does not exist" caused by upstream bug google/protobuf-gradle-plugin#812
…lite-well-known-types")`
…, since it is now included in the upgraded `protobuf-javalite:4.36.1` dependency
236ff68 to
8928d0f
Compare
…to-extension` to 1.4.5 (was 1.0) This fixes the following error: ``` java.lang.NoSuchMethodError: 'com.google.protobuf.Descriptors$FileDescriptor$Syntax ``` This build error is caused by Protocol Buffers Java 4.x (4.36.1) which introduced the Editions feature and eliminated the legacy method `Descriptors.FileDescriptor.getSyntax()` along with the inner enum `Descriptors.FileDescriptor.Syntax`. `truth-proto-extension:1.0` (compiled in 2019 against Protobuf 3.6.1) invokes `FileDescriptor.getSyntax() == Syntax.PROTO3` Because `protobuf-java:4.36.1` is on the test runtime classpath, the JVM cannot find `getSyntax()`, throwing `NoSuchMethodError`.
… `parse()` helper This fixes the following error: ``` Argument type mismatch: actual type is 'List<SimpleProto!>', but 'List<GeneratedMessageV3>' was expected. ``` This build error is caused by Protocol Buffers Java 4.x (4.36.1) where generated Java message classes now extend `com.google.protobuf.GeneratedMessage` instead of the legacy `com.google.protobuf.GeneratedMessageV3`. Because generated message classes like `SimpleProto` no longer extend `GeneratedMessageV3`, Kotlin rejects passing `List<SimpleProto>` to a parameter typed as `List<GeneratedMessageV3>`. Changing the parameter type to `MessageOrBuilder` allows any Protobuf message or builder to be passed while providing access to `descriptorForType.fullName`.
…instead of hardcoded 1.0 This fixes the following error: ``` java.lang.NoSuchMethodError: 'com.google.protobuf.Descriptors$FileDescriptor$Syntax com.google.protobuf.Descriptors$FileDescriptor.getSyntax()' ``` This build error is caused by Protocol Buffers Java 4.x (4.36.1) which introduced the Editions feature and eliminated the legacy method `Descriptors.FileDescriptor.getSyntax()` along with the inner enum `Descriptors.FileDescriptor.Syntax`. `truth-proto-extension:1.0` (compiled in 2019 against Protobuf 3.6.1) invokes `FileDescriptor.getSyntax() == Syntax.PROTO3`. Because `protobuf-java:4.36.1` is on the test runtime classpath, the JVM cannot find `getSyntax()`, throwing `NoSuchMethodError`. Using `libs.truth.proto.extension` resolves to version 1.4.5, which is compatible with Protobuf 4.x and checks presence via `FieldDescriptor.hasPresence()`.
This PR upgrades gRPC and related libraries to their latest versions, including gRPC Kotlin, Protocol Buffers, and Google common protos. It also addresses Protobuf 4.x compatibility requirements across test suites and removes obsolete vendored files and unused dependencies.
Highlights
javalite,protobufjavautil, andprotoc) from 3.25.5 to 4.36.1, andprotoGoogleCommonProtosfrom 1.18.0 to 2.75.0.truth-proto-extensionto 1.4.5 (was 1.0) and adopted it infirebase-encoders-protoandtransport-backend-ccttest dependencies to fix runtimeNoSuchMethodErrorexceptions resulting from the removal ofFileDescriptor.getSyntax()in Protobuf 4.x.parse()helper inParsingTests.ktto acceptList<MessageOrBuilder>instead ofList<GeneratedMessageV3>, accommodating Protobuf 4.x where generated classes extendGeneratedMessagerather thanGeneratedMessageV3.descriptor.protofromprotolite-well-known-typesbecause it is now included directly upstream inprotobuf-javalite:4.36.1.api project(":protolite-well-known-types")dependency fromfirebase-perf.Changelog
grpcto 1.84.0 (was 1.62.2) andgrpcKotlinto 1.5.0 (was 1.4.1).javalite,protobufjavautil, andprotocto 4.36.1 (was 3.25.5).protoGoogleCommonProtosto 2.75.0 (was 1.18.0).truthProtoExtensionto 1.4.5 (was 1.0).descriptor.protofile fromprotolite-well-known-types, as it is now provided upstream byprotobuf-javalite:4.36.1.parse()helper parameter type fromList<GeneratedMessageV3>toList<MessageOrBuilder>to support Protobuf 4.x, where generated message classes now extendGeneratedMessageinstead ofGeneratedMessageV3.com.google.truth.extensions:truth-proto-extension:1.0test dependency withlibs.truth.proto.extension(1.4.5) to fixNoSuchMethodErrorcaused by Protobuf 4.x removingFileDescriptor.getSyntax().com.google.truth.extensions:truth-proto-extension:1.0test dependency withlibs.truth.proto.extension(1.4.5) to resolve Protobuf 4.x runtime test failures.api project(":protolite-well-known-types")dependency.