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

Sean Busbey commented on HBASE-12808:
-------------------------------------

This is a great addition. Personally, I don't think adding ~6 minutes to 
HadoopQA will break us and I'd rather catch compatibility problems early. If we 
really needed to optimize, we could do a follow on to grab already built jars 
from tags that look like release versions (or use the equivalent of git archive 
to avoid a full clone).

A few things I'd like to see addressed before commit.

# I'm on a mac and I rely on homebrew to get real tooling. Homebrew won't put 
gnu getopts on the path because Apple ships BSD getopts and it doesn't want to 
muck with something that might break assumptions in extant parts of OSX. It'd 
be great if the script allowed for an env variable to set the path to getopt, 
so that I can easily specify gnu getopt for just this script.
# attempting to build an RC after running the compat checker will fail RAT 
because of files that are in dev-support/compatibility. 
{code}
  dev-support/compatibility/annotations
  dev-support/compatibility/javaACC/doc/Changes.html
  dev-support/compatibility/javaACC/doc/Descriptor.html
  dev-support/compatibility/javaACC/doc/Options.html
  dev-support/compatibility/javaACC/doc/Readme.html
  dev-support/compatibility/javaACC/japi-compliance-checker.pl
  dev-support/compatibility/javaACC/Makefile.pl
  dev-support/compatibility/report/0.99.2_branch-1.0_compat_report.html
{code}
We can solve this issue either with an exclusion in the rat plugin config, or 
moving these things into a target/ subdirectory. I like the latter approach 
because it matches expectations for things that will be ignored by both git and 
rat.
# related to the above, the source tarball built from our RC instructions 
includes everything under dev-support/compatibility, including the two 
checkouts. It will also include the javaACC source if rat excludes the 
compatibility directory. It looks like the assembly blindly includes everything 
under dev-support rather than making use of the exclusion list that covers the 
modules. This is a problem already in the code base, i.e. if you follow the 
instructions under dev-support/jenkins-tools it will include target/ dirs 
provided you've removed the jenkins-client module. So maybe it should be its 
own ticket.


> 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