-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7572/
-----------------------------------------------------------

Review request for hcatalog.


Description
-------

Updates to simplify HCatalog dependencies and improve the build system.

The main feature of this patch is being more specific with dependencies for our 
different artifacts. For example, hcatalog-core currently pulls in HBase, which 
pulls in a LOT of stuff like jersey, avro, etc. This means everyone who depends 
on hcatalog-core is going to pull these transitive dependencies in, and they're 
far more likely to have jar conflict issues when really these libraries are not 
even necessary for hcatalog-core. They are necessary for the hbase storage 
handler, so that's where we now depend on them. Similar with jersey -- webhcat 
needs that, so we include it there instead of at the hcatalog-core level.

A secondary feature of this patch is the actual/expected libs check. This makes 
it really easy to see exactly what jars we transitively depend on for all of 
our subprojects. If they change the build will fail, and there's a great error 
message (showing the diff) along with a copy/pasteable command to update the 
expected libs. What this means is we know exactly what our current dependencies 
are, and also know exactly when they change. When they change, the jars that 
have changed are included with the diff posted for review. No more surprises. 
This also means that stuff we still pull in but don't really need (kfs for 
example) we can systematically manage that down.

Lastly, this change continues to simplify the build by using more of the common 
targets in areas that have not yet fully switched to the build-common.xml 
stuff. We still have some work to do here, but that would really expand the 
scope of this change (which is focused on reducing dependencies) so I'd like to 
do that as a separate patch.


This addresses bug HCATALOG-520.
    https://issues.apache.org/jira/browse/HCATALOG-520


Diffs
-----

  .gitignore e421e48 
  build-support/expected-libs.txt PRE-CREATION 
  build-support/failwhale.txt PRE-CREATION 
  build-support/scripts/list-libs.py PRE-CREATION 
  build.xml 0d8918d 
  ivy.xml c19972d 
  ivy/libraries.properties 4c9c3b1 
  storage-handlers/hbase/build.xml 63824e8 
  storage-handlers/hbase/pom.xml 73d97c9 
  webhcat/svr/pom.xml 1bf6ef2 

Diff: https://reviews.apache.org/r/7572/diff/


Testing
-------

Lots of local builds & running the tests. I've run queries with the pig 
adapter. To see the logs for a full build, see 
https://travis.ci.cloudbees.com/job/HCATALOG-520_simfy_deps/7/


Thanks,

Travis Crawford

Reply via email to