Kenneth Knowles created BEAM-883:
------------------------------------

             Summary: Make ApiSurfaceTest fail if something whitelisted is 
_not_ exposed
                 Key: BEAM-883
                 URL: https://issues.apache.org/jira/browse/BEAM-883
             Project: Beam
          Issue Type: Improvement
          Components: testing
    Affects Versions: Not applicable
            Reporter: Kenneth Knowles
             Fix For: Not applicable


{{ApiSurfaceTest}} in the {{sdks/java/core}} is the class responsible for 
protecting our public API surface.

This test walks the public signatures of all modules and explicitly verifies 
that everything is on a whitelist. This is how we control what dependencies we 
expose to our users, so that Beam can keep a tight, stable API surface.

We should improve this functionality to be reusable across modules.

Some desiderata for reuse:

* test automatically infers the module on which it should seed the API search.
* only 2 things in the file -- a whitelist and a ~1-line test that passes the 
whitelist as a parameter to some helper.
* test fails if there are things in the whitelist that are not exposed.

Any other cool things that are similar to what Maven enforcer does?

As an example of what you have to do without this functionality, see 
https://github.com/apache/incubator-beam/pull/1183



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to