Review Board 1.7.22


Adding a tool to JDiff the Public API of Two HBase Versions in 0.94

Review Request #10361 - Created April 9, 2013 and updated

Aleksandr Shulman
0.94
HBASE-8277
Reviewers
hbase
jmhsieh, stack
hbase-git
To see what public APIs changed between two arbitrary versions of HBase (versions 0.92 and 0.94 only), a developer can specify two git branches and run this script. It will output a report in .html that the developer can analyze for incompatibilities. I see this being used as part of Jenkins job, the results of which anyone can examine.

The next step is to make this work for HBase 0.95 and above. The reason it does not work for it now is because the directory structures are different between 0.94 and earlier and 0.95 and later.

Directories created:
A working directory called ./jdiff is created. The report is placed into ./jdiff/hbase_jdiff_report/changes.html. changes.html is pictured in the screenshot.
It also pulls down a template file, called hbase_template.xml from my personal git repo. It should probably reside elsewhere and I'm open to suggestions.
https://github.com/AleksandrShulman/hbase_jdiff/blob/master/hbase_template.xml
I ran this script in-house as part of a Jenkins job. I also ran it from the command-line between HBase Version 0.92 and Version 0.94. 
I've attached a screenshot of the output.
Review request changed
Updated (April 11, 2013, 6:48 p.m.)
Modified based on Stack and Jon's comments.
Some changes:
-Default directory is now /tmp/jdiff
-It is now configurable with the $JDIFF_WORKING_DIRECTORY environmental variable
-Namespaced branches so that you can compare the same branch name from different repos
-Misc changes
Ship it!
Posted (April 12, 2013, 5:53 p.m.)
lgtm.  I'll commit it.
dev-support/jdiffHBaseFromGitRepos.sh (Diff revision 4)
 
 
thanks, this makes me feel better.