Skip to content

exported_plugins doesn't do quite what we want for beta-checker in guava #200

@cpovirk

Description

@cpovirk

exported_plugins is "The list of java_plugins (e.g. annotation processors) to export to libraries that directly depend on this library." That makes it suitable for plain old annotation processors (since you can't write an annotation in your code without depending directly upon it) and for static analysis that applies to such annotation usages, but it does not make it suitable for cases like ours, "No one calls a @Beta method from Guava," since it's possible to call a @Beta method on Guava without declaring a direct dependency on Guava itself.

The practical danger here is slim, since Guava has few @Beta APIs nowadays. But it might be more honest to remove exported_plugins or to find another way of fully enabling the checking that we want. Really, though, I'm filing this bug because TIL from a question on YAQS :) See also some Google-internal documentation added in CL 149351089 (though the Bazel docs are crystal-clear on the behavior, even if they don't go into the implications in detail).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P4bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions