incubator-bigtop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bruno Mahé <>
Subject Re: Optional dependencies
Date Fri, 29 Jun 2012 05:01:52 GMT
On 06/28/2012 09:51 PM, Roman Shaposhnik wrote:
> Hi!
> On Wed, Jun 27, 2012 at 9:12 PM, Bruno Mahé <> wrote:
>> Hi,
>> Through Roman came up
>> with a question and wants to discuss about it.
> Since I was the one who suggested bringing this to the list
> let me explain some of the concerns as I remember them
> (I can swear having a discussion on this at some point ;-)).
>> How do you people feel about optional dependencies?
>> Most distributions put them in subpackages since:
>> * It is optional and therefore not everyone wants to pull all the
>> optional dependencies
>> * It is easy to find out
>> * It is easy to install
>> * Optional dependencies know what to install. Without it, users would be
>> left alone and would have to figure out by themselves and then do all
>> the work by themselves to download all the additional dependencies
> To make the conversation a bit more practical let me give others
> an example with Hive. Hive currently has support for HBase,
> but strictly speaking it is an "optional" feature. IOW, hive can
> function ok without HBase jars on the system (but of course
> you can't access HBase data).
> The choices we've got in packaging Hive are:
>    #1 hive package does NOT t have a dependency on hbase package
>    #2 hive package DOES have a dependency on HBase package
>         (and all the other optional features to go with it, which is
> kind of nuts)
>    #3 hive package doesn't have a dependency on HBase  but we
>         have an extra package called hive-hbase that does.
> Personally, I think I'm reasonably fine with #3 (after all it kind of combines
> #1 with an extra package) with the only concern that I remember
> being potential combinatoric explosion of  these helper packages
> (e.g. hive-hbase, hive-cassandra, hive-hbase-cassandra, etc).
> Thanks,
> Roman.

I am not sure to follow why you would have a combinatorial explosion?
Following your example you would have the following packages:
* hive which provides the main non-optional features
* hive-hbase which provides and pulls everything necessary for an
integration with hbase. hive-hbase depending on hive
* hive-cassandra which provides and pulls everything necessary for an
integration with cassandra. hive-cassandra depending on hive

So then depending on your needs you could install (hive), (hive and
hive-hbase), (hive and hive-cassandra) or (hive and hive-hbase and
hive-cassandra) if you need both.
You want subpackages as orthogonal as possible rather than per use cases.


View raw message