calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Julian Hyde <julianh...@gmail.com>
Subject Re: Upgrade Guava
Date Tue, 10 Feb 2015 19:06:18 GMT
My vote is to move gradually, i.e. to Guava 14.0.1 at this point.

Just because maven makes it easy to shade doesn't mean you should. There are hidden issues,
not to mention bloat.

For commonly-used dependencies, I would rather try to stay approximately current with everyone
else (and thankfully Hive is no longer lagging too much). Those dependencies are built by
good software engineers and they rarely remove a feature without a couple of years notice
-- so if everyone is on approximately the same version it all works out.

I confess that I HAVE been introducing Guava into APIs, viz ImmutableList. It's simply so
useful to be able to say that this method returns, or accepts as a parameter, a collection
that the caller will not modify, the callee will not modify, and that won't change because
quite simply it can't. Immutable collections should have been in the JDK (they are in Scala's
built-in library) and I use them in Guava as if they are.

As in the JDK, I don't mind introducing shims into Calcite if we need something from a newer
version of Guava. See interface Compatible and class CompatibleGuava11. 

Julian


> On Feb 10, 2015, at 9:04 AM, Jacques Nadeau <jacques@apache.org> wrote:
> 
> My recommendation is that the Calcite community doesn't shade.  If someone
> (such as Hive) wants to use a conflicting dependency, they can choose to
> shade Calcite (and just the portions that conflict for them).   If you want
> to see how we do this in Drill with Hive, you can look here [1]
> 
> I know there was a forwards incompatibility between certain Guava versions
> (11 and 14 maybe?).  If we can pick one that is forward compatible.  (E.g.
> Calcite supports 14 - 18), that would be ideal.  However, I'm not sure
> Guava publishes anything like this.  As such, I suggest we just pick what
> makes sense and people can shade if they need to.
> 
> [1]
> https://github.com/apache/drill/blob/master/contrib/storage-hive/hive-exec-shade/pom.xml
> 
> 
> On Tue, Feb 10, 2015 at 8:12 AM, Vladimir Sitnikov <
> sitnikov.vladimir@gmail.com> wrote:
> 
>> Am I right you suggest to shade just Guava?
>> maven-shade-plugin has a nasty side-effect of "rewriting destination
>> jar", thus it disturbs incremental build/compilation
>> 
>> Vladimir
>> 


Mime
View raw message