[ 
https://issues.apache.org/jira/browse/HBASE-12808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14274075#comment-14274075
 ] 

Dima Spivak commented on HBASE-12808:
-------------------------------------

[~enis], what if we just had a weekly (or nightly) Jenkins job for each branch 
that ran this script between the first release of that branch and the tip? That 
way, we get away from needing a unit test that needs to be maintained (and 
which would only add to how long the CI tests already go), but still have 
better granularity when something breaks compatibility than just checking at 
release time.

Unfortunately, at the moment, the tool only supports class annotations (if 
InterfaceAudience.Public is in the whitelist of annotations to analyze, it will 
skip any classes that aren't annotated with that); no exclude list to speak of 
yet. As for individual methods, my understanding is that particular methods 
could be more restrictive than their classes, right? In that case, we might get 
false positives (i.e. for methods that are actually InterfaceAudience.Private 
within an InterfaceAudience.Public class), but we could filter those out with 
our own ignore list in automation. Does that address your concern?



> Use Java API Compliance Checker for binary/source compatibility
> ---------------------------------------------------------------
>
>                 Key: HBASE-12808
>                 URL: https://issues.apache.org/jira/browse/HBASE-12808
>             Project: HBase
>          Issue Type: Improvement
>          Components: test
>            Reporter: Dima Spivak
>            Assignee: Dima Spivak
>         Attachments: HBASE-12808_v1.patch, HBASE-12808_v2.patch, 
> HBASE-12808_v3.patch
>
>
> Following [~busbey]'s suggestion in HBASE-12556, I've spent some time playing 
> with the [Java API Compliance 
> Checker|http://ispras.linuxbase.org/index.php/Java_API_Compliance_Checker] 
> and think it would be a great addition to /dev-support. I propose that we use 
> it to replace the JDiff wrappers we currently have there (since it does what 
> JDiff does and more), and look into putting up automation at 
> builds.apache.org to run the tool regularly (e.g. latest release of a 
> particular branch vs. latest commit of that same branch).



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

Reply via email to