Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump com.google.protobuf:protobuf-bom from 3.21.12 to 3.22.0 #5237

Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 17, 2023

Bumps com.google.protobuf:protobuf-bom from 3.21.12 to 3.22.0.

Commits
  • a847a8d Updating version.json and repo version numbers to: 22.0
  • 52e435d Merge pull request #11970 from deannagarcia/updateDeps
  • d327259 Update UPB dep
  • 8d7b4e6 Merge pull request #11946 from protocolbuffers/cp-enum-closed-comment
  • a594141 Document known quirks of EnumDescriptor::is_closed() when importing across fi...
  • b7f7171 Merge pull request #11944 from protocolbuffers/gha-port-22.x
  • d39aeac Fixing broken rust package
  • 9a5e86d Run continuous tests hourly to boost statistics for analysis
  • de8bb71 [ObjC] CI dbg & opt macOS bazel builds.
  • a3970ef Stop using 'push' event to determine privileged post-submit runs.
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [com.google.protobuf:protobuf-bom](https://github.com/protocolbuffers/protobuf) from 3.21.12 to 3.22.0.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py)
- [Commits](protocolbuffers/protobuf@v3.21.12...v3.22.0)

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot requested a review from a team February 17, 2023 04:02
@dependabot dependabot bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Feb 17, 2023
@jkwatson
Copy link
Contributor

looks like this might not be a simple upgrade....

@jack-berg
Copy link
Member

Ugh.. spent some time trying to resolve this and have some frustrating updates:

  • One of the issues is that the transitive dependencies of com.google.protobuf:protobuf-java-util changed to not include com.google.protobuf:protobuf-java. Fixed where applicable.
  • The build still fails because this change triggers a breaking API change in generated classes for opentelemetry-sdk-extension-jaeger-remote-sampler. I wasn't actually aware that we publish generated classes for that artifact, given that the classes are used only in tests, but apparently we do. Its not clear to me how this BOM interacts with the com.google.protobuf plugin to change the generated classes, but here's the japicmp output:
Comparing source compatibility of  against 
***  MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy  (compatible)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---  REMOVED METHOD: PUBLIC(-) FINAL(-) com.google.protobuf.UnknownFieldSet getUnknownFields()
***! MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder  (not serializable)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder addRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder clearField(com.google.protobuf.Descriptors$FieldDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder clearOneof(com.google.protobuf.Descriptors$OneofDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder clone()
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder setField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$OperationSamplingStrategy$Builder setRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, int, java.lang.Object)
***  MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies  (compatible)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---  REMOVED METHOD: PUBLIC(-) FINAL(-) com.google.protobuf.UnknownFieldSet getUnknownFields()
***! MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder  (not serializable)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder addRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder clearField(com.google.protobuf.Descriptors$FieldDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder clearOneof(com.google.protobuf.Descriptors$OneofDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder clone()
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder setField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$PerOperationSamplingStrategies$Builder setRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, int, java.lang.Object)
***  MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy  (compatible)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---  REMOVED METHOD: PUBLIC(-) FINAL(-) com.google.protobuf.UnknownFieldSet getUnknownFields()
***! MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder  (not serializable)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder addRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder clearField(com.google.protobuf.Descriptors$FieldDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder clearOneof(com.google.protobuf.Descriptors$OneofDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder clone()
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder setField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$ProbabilisticSamplingStrategy$Builder setRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, int, java.lang.Object)
***  MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy  (compatible)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---  REMOVED METHOD: PUBLIC(-) FINAL(-) com.google.protobuf.UnknownFieldSet getUnknownFields()
***! MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder  (not serializable)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder addRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder clearField(com.google.protobuf.Descriptors$FieldDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder clearOneof(com.google.protobuf.Descriptors$OneofDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder clone()
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder setField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$RateLimitingSamplingStrategy$Builder setRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, int, java.lang.Object)
***  MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters  (compatible)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---  REMOVED METHOD: PUBLIC(-) FINAL(-) com.google.protobuf.UnknownFieldSet getUnknownFields()
***! MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder  (not serializable)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder addRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder clearField(com.google.protobuf.Descriptors$FieldDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder clearOneof(com.google.protobuf.Descriptors$OneofDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder clone()
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder setField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyParameters$Builder setRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, int, java.lang.Object)
***  MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse  (compatible)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---  REMOVED METHOD: PUBLIC(-) FINAL(-) com.google.protobuf.UnknownFieldSet getUnknownFields()
***! MODIFIED CLASS: PUBLIC STATIC FINAL io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder  (not serializable)
	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder addRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder clearField(com.google.protobuf.Descriptors$FieldDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder clearOneof(com.google.protobuf.Descriptors$OneofDescriptor)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder clone()
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder setField(com.google.protobuf.Descriptors$FieldDescriptor, java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2.Sampling$SamplingStrategyResponse$Builder setRepeatedField(com.google.protobuf.Descriptors$FieldDescriptor, int, java.lang.Object)

@anuraaga
Copy link
Contributor

anuraaga commented Mar 6, 2023

Happened to find this and take a look since it's about proto.

For history, when migrating jaeger-remote-sampler to "grpc lite", we could have taken the same strategy as the jaeger exporter and created a separate proto artifact for the now unused code. Probably just completely forgot to think about that.

For the code diffs, from what I can tell is that overrides within the generated subclasses were removed in favor of only using parent class implementations. I believe @jkwatson taught us once that this is actually a compatible change, code linked with the subclass method will actually call the parent one if removed - japicmp sometimes has had false positives and looks like this may be one of them.

@jack-berg
Copy link
Member

Thanks for taking a look @anuraaga. Will double check that the implementation is still on the parent, and if so, find a way to suppress japicmp from failing on this specific case.

@Test
@SuppressWarnings({"ModifiedButNotUsed", "ReturnValueIgnored"})
@Disabled
void compatibility() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test confirms what @anuraaga asserts, which is that the methods have been moved to the parent class.

I've added an exception for this condition to japicmp. If folks agree, I'll delete this test before merging, and remove the japicmp exception after the next release.

@codecov
Copy link

codecov bot commented Mar 7, 2023

Codecov Report

Patch coverage has no change and project coverage change: -0.17 ⚠️

Comparison is base (d7327ab) 91.08% compared to head (b9168f6) 90.92%.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #5237      +/-   ##
============================================
- Coverage     91.08%   90.92%   -0.17%     
- Complexity     4876     4884       +8     
============================================
  Files           549      550       +1     
  Lines         14421    14476      +55     
  Branches       1372     1370       -2     
============================================
+ Hits          13136    13162      +26     
- Misses          891      917      +26     
- Partials        394      397       +3     
Impacted Files Coverage Δ
...telemetry/opentracingshim/NoopSpanBuilderShim.java 33.33% <0.00%> (-66.67%) ⬇️
...xporter/internal/okhttp/OkHttpExporterBuilder.java 83.63% <0.00%> (-9.47%) ⬇️
...a/io/opentelemetry/opentracingshim/TracerShim.java 69.23% <0.00%> (-8.90%) ⬇️
...tor/DoubleBase2ExponentialHistogramAggregator.java 94.52% <0.00%> (-4.11%) ⬇️
...lemetry/sdk/metrics/InstrumentSelectorBuilder.java 100.00% <0.00%> (ø)
...entelemetry/exporter/internal/TlsConfigHelper.java 81.13% <0.00%> (ø)
...emetry/sdk/metrics/internal/view/ViewRegistry.java 97.67% <0.00%> (+0.08%) ⬆️
...metry/sdk/logs/export/BatchLogRecordProcessor.java 91.48% <0.00%> (+0.70%) ⬆️
.../opentelemetry/sdk/metrics/InstrumentSelector.java 94.11% <0.00%> (+0.78%) ⬆️
...ry/exporter/internal/grpc/GrpcExporterBuilder.java 100.00% <0.00%> (+1.21%) ⬆️
... and 3 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Mar 8, 2023

A newer version of com.google.protobuf:protobuf-bom exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged.

@jack-berg jack-berg merged commit 018a766 into main Mar 8, 2023
@jack-berg jack-berg deleted the dependabot/gradle/com.google.protobuf-protobuf-bom-3.22.0 branch March 8, 2023 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file java Pull requests that update Java code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants