xiangfu0 opened a new pull request, #17995:
URL: https://github.com/apache/pinot/pull/17995

   ## Summary
   
   - Upgrade the shared `protobuf.version` to `4.34.0`.
   - Add an explicit `com.google.code.findbugs:jsr305` dependency to 
`pinot-confluent-protobuf` so the module still gets `javax.annotation` types on 
the protobuf 4.x dependency path.
   
   ## Why
   
   Pinot currently compiles against protobuf 3.x. Moving the shared protobuf 
version to 4.x exposed one repo-local breakage in `pinot-confluent-protobuf`: 
the module was relying on transitive JSR-305 annotations that are no longer 
present on the protobuf 4.x classpath.
   
   ## User / Developer Impact
   
   - Unblocks building Pinot against protobuf 4.x.
   - Makes the `pinot-confluent-protobuf` annotation dependency explicit 
instead of relying on transitive resolution.
   
   ## Root Cause
   
   `pinot-confluent-protobuf` referenced `javax.annotation.Nullable` and 
`javax.annotation.ParametersAreNonnullByDefault` without declaring the JSR-305 
artifact directly. That happened to work on the older dependency graph, but it 
breaks once protobuf is upgraded to 4.x.
   
   ## How To Reproduce
   
   1. Start from current `master`.
   2. Change `protobuf.version` in the root `pom.xml` to a protobuf 4.x release.
   3. Run `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf 
-am -DskipITs -Dskip.integration.tests=true -DskipTests compile`.
   4. Observe missing `javax.annotation.Nullable` / 
`javax.annotation.ParametersAreNonnullByDefault` compilation errors.
   
   ## Validation
   
   - `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf 
spotless:apply`
   - `./mvnw -N spotless:apply`
   - `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf 
checkstyle:check`
   - `./mvnw -N checkstyle:check`
   - `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf 
license:format`
   - `./mvnw -N license:format`
   - `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf 
license:check`
   - `./mvnw -N license:check`
   - `./mvnw -pl 
pinot-common,pinot-server,pinot-query-planner,pinot-query-runtime -am -DskipITs 
-Dskip.integration.tests=true -DskipTests compile`
   - `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf -am 
-DskipITs -Dskip.integration.tests=true -DskipTests compile`
   
   ## Known Test Limitation
   
   - `./mvnw -pl pinot-plugins/pinot-input-format/pinot-confluent-protobuf -am 
-DskipITs -Dskip.integration.tests=true test` reaches the Docker-backed 
`ProtoBufConfluentSchemaTest`, but this environment has no Docker socket so 
Testcontainers cannot start the required service.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to