[
https://issues.apache.org/jira/browse/BEAM-878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kenneth Knowles updated BEAM-878:
---------------------------------
Description:
{{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. Ideally,
there would be only 2 things in the file: a whitelist and a ~1-line test that
passes the whitelist as a parameter to {{ApiSurfaceTest}}.
As an example of what you have to do without this functionality, see
https://github.com/apache/incubator-beam/pull/1183
was:
{{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
> Allow usage of ApiSurfaceTest providing nothing but a whitelist
> ---------------------------------------------------------------
>
> Key: BEAM-878
> URL: https://issues.apache.org/jira/browse/BEAM-878
> Project: Beam
> Issue Type: Improvement
> Components: testing
> Affects Versions: Not applicable
> Reporter: Daniel Halperin
> Priority: Minor
> Labels: easy, easyfix, newbie, starter
> 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. Ideally,
> there would be only 2 things in the file: a whitelist and a ~1-line test that
> passes the whitelist as a parameter to {{ApiSurfaceTest}}.
> 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)