You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Kenneth Knowles (JIRA)" <ji...@apache.org> on 2016/11/02 16:04:58 UTC

[jira] [Updated] (BEAM-878) Allow usage of ApiSurfaceTest providing nothing but a whitelist

     [ https://issues.apache.org/jira/browse/BEAM-878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kenneth Knowles updated BEAM-878:
---------------------------------
    Summary: Allow usage of ApiSurfaceTest providing nothing but a whitelist  (was: ApiSurfaceTest improvements and reusability)

> 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
>             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)