Skip to content

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

Open
@albert849

Description

@albert849

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: census-instrumentation/opencensus-proto#26

Then we updated a git submodule to bring the changes into instrumentation-java, as in this commit: sebright/opencensus-java@95a6691

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_java http_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

The full command was:

bazel build :stats-core_impl --javacopt=-Werror --javacopt=-Xlint:all --javacopt=-Xlint:-cast --javacopt=-Xlint:-deprecation --javacopt=-Xlint:-try --verbose_failures

(We were already suppressing some other warnings.)

The full log is at https://travis-ci.org/sebright/instrumentation-java/jobs/212241166 .

Bazel version:

Build label: 0.4.5
Build target: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Mar 16 12:19:38 2017 (1489666778)
Build timestamp: 1489666778
Build timestamp as int: 1489666778

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.

/cc @bogdandrutu

Originally posted by @sebright in bazelbuild/bazel#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

Metadata

Metadata

Assignees

No one assigned

    Labels

    info-neededIssue requires more information from poster

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions