On Mar 31, 2010, at 21:57 , Richard Conroy wrote:

> On Thu, Apr 1, 2010 at 4:44 AM, Ryan Davis <ryand-ruby / zenspider.com> wrote:
>> 
>> YOU don't know what gems YOUR code is using? Why not?
>> 
> 
> Is this meant to be easy to know? Sure I know when I explicitly use dust, or
> sinatra or
> Haml or whatever, but I can never be certain of the network of dependencies
> that those other
> gems use.

Ah. well... rubygems handles the transitive closure of the dependencies. You should only specify the top level (real) dependencies for your project.

>> One thing that might help is to try out the isolate gem. You specify what
>> gems your project needs and they're privately installed and only those
>> private gems get used. I use it on all my rails projects (and gem projects)
>> at work.

> To be clear, I see this issue when checking out code across multiple systems
> which have
> different gems and gem versions installed. More specifically this is a
> thorny problem with
> non-explicit gem use, like when I choose to use a gem which in turn has
> other dependencies
> and incompatibility between different versions of the gems.

This is exactly the type of thing that isolate solves. It is perfectly reasonable to have isolate installed as the only global gem and each project uses isolate to declare their gem dependencies and they're all installed private to each project.