On Tue, Mar 25, 2014 at 5:35 PM, Andrew Purtell <apurt...@apache.org> wrote:
> On Tue, Mar 25, 2014 at 4:25 PM, sebb <seb...@gmail.com> wrote: > > > > Yes, we bundle ANTLR in our binary distribution. Most of the other > items > > > are pulled in based on the transitive dependencies of other jars we've > > > bundled in our binary distribution. > > > > I see now why I did not notice the 3rd party binaries. > > They seem to have been merged into jars which look like phoenix code - > > and indeed also contain phoenix code. > > > > That is a very non-standard way to do things, and I think could > > mislead end-users as to the provenance of the code. > > > > It's OK to bundle separate jars in a binary release (assuming > > licensing etc is OK), but I don't think it's OK to merge 3rd party > > code with ASF code in a single jar. > > Apart from anything, that will play havoc with Maven and possibly > > other dependency management systems. > > > I believe this is done because Phoenix is a JDBC client, and JDBC drivers > are usually packaged as single JARs for convenience. James could confirm or > refute. I concluded this is acceptable practice having seen it elsewhere at > Apache, for example in Apache Pig, their convenience fatjar artifact. > > Yes, that's correct. It's because then a third-party tool (such as a SQL client GUI) then only need to pull in a single jar to be able to connect through the Phoenix JDBC driver to HBase. Our initial (pre-Apache) releases didn't do this and it was almost impossible to get the classpath correct for the "minimal" client-side dependencies. So the remaining question: should we spin up a new RC for these changes and if so, should we go through a vote again on our dev list as well? Thanks again for all the help. James