We just switched to the new Proto library build rules in the [instrumentation-proto](https://github.com/google/instrumentation-proto) repository, by following the instructions at https://bazel.build/blog/index.html#protocol-buffers-in-bazel. Here is the pull request: https://github.com/google/instrumentation-proto/pull/26 #918
We were building instrumentation-java with --javacopt=-Werror --javacopt=-Xlint:all in CI. After the change, we started getting many errors that seemed to come from the com_google_protobuf_javahttp_archive target in our WORKSPACE file. Here is part of the list of errors from the failed Travis build:
ERROR: /home/travis/.cache/bazel/_bazel_travis/43f33de0ac8ec257b07378061caba359/external/com_google_protobuf_java/BUILD:553:1: Java compilation in rule '@com_google_protobuf_java//:protobuf_java' failed: Worker process sent response with exit code: 1.
external/com_google_protobuf_java/java/core/src/main/java/com/google/protobuf/AbstractMessage.java:55: warning: [rawtypes] found raw type: AbstractMessageLite
extends AbstractMessageLite
^
missing type arguments for generic class AbstractMessageLite<MessageType,BuilderType>
where MessageType,BuilderType are type-variables:
MessageType extends AbstractMessageLite<MessageType,BuilderType> declared in class AbstractMessageLite
BuilderType extends Builder<MessageType,BuilderType> declared in class AbstractMessageLite
external/com_google_protobuf_java/java/core/src/main/java/com/google/protobuf/AbstractMessage.java:250: warning: [rawtypes] found raw type: List
List list1 = (List) value1;
^
missing type arguments for generic class List<E>
where E is a type-variable:
E extends Object declared in interface List
I expected bazel to not fail the build in this case, for two reasons:
com_google_protobuf_java is only a dependency of the project. I think there should be a way to only fail if warnings come from the targets in the BUILD file. (Is there already an option that does that?)
java_proto_library shouldn't cause errors, because it is a built-in build rule.
We just switched to the new Proto library build rules in the instrumentation-proto repository, by following the instructions at https://bazel.build/blog/index.html#protocol-buffers-in-bazel. Here is the pull request: https://github.com/google/instrumentation-proto/pull/26
Then we updated a git submodule to bring the changes into instrumentation-java, as in this commit: https://github.com/sebright/instrumentation-java/commit/95a6691ea8705f28c9b8a7a7f6ce3fa9d6b1c692
We were building
instrumentation-java
with--javacopt=-Werror --javacopt=-Xlint:all
in CI. After the change, we started getting many errors that seemed to come from thecom_google_protobuf_java
http_archive
target in our WORKSPACE file. Here is part of the list of errors from the failed Travis build:The full command was:
(We were already suppressing some other warnings.)
The full log is at https://travis-ci.org/sebright/instrumentation-java/jobs/212241166 .
Bazel version:
I expected bazel to not fail the build in this case, for two reasons:
com_google_protobuf_java
is only a dependency of the project. I think there should be a way to only fail if warnings come from the targets in theBUILD
file. (Is there already an option that does that?)java_proto_library
shouldn't cause errors, because it is a built-in build rule./cc @bogdandrutu
Originally posted by @sebright in https://github.com/bazelbuild/bazel/issues/2699 s-out/ antlr3/ contrib/ Documentation/ e2e-tests/ java/ javatests/ lib/ modules/ plugins/ polygerrit-ui/ prolog/ prologtests/ proto/ resources/ tools/ webapp/ polymer-bridges .bazelignore .bazelproject .bazelrc .bazelversion .editorconfig .git-blame-ignore-revs .gitignore .gitmodules .gitreview .mailmap .pydevproject .zuul.yaml BUILD COPYING INSTALL Jenkinsfile package.json README.md SUBMITTING_PATCHES version.bzl web-dev-server.config.mjs WORKSPACE yarn.lock