[Rubygems-developers] HEADSUP RubyGems 1.2 Real Soon Now

Hongli Lai hongli at phusion.nl
Mon Jun 16 05:07:48 EDT 2008

Ryan Davis wrote:
 > Donavan Pantke wrote:
 > > The :install flag is required for gems that have specific loading
 > > requirements, and so cannot have dependencies automatically
 > > activated. The
 > > biggest use case is Passenger, which can activate multiple versions
 > > of Rails.
 > > It originally required rails in the gemspec (as it needs some
 > > version of
 > > Rails), but that meant that when the passenger gem activated, rails
 > > automatically activated as well. That caused passenger to blow up
 > > when trying
 > > to activate a different version of Rails. Having the :install flag
 > > will allow
 > > Passenger to be loaded but let Passenger worry about Rails.
 > Biggest use-case, or only use-case? I suspect it is the latter and as
 > such think that adding it is more confusing than leaving it out. It is
 > incredibly hard to explain (this thread is evidence) and I can easily
 > imagine it being misused more than it helps.

I have to agree. I too believe that Phusion Passenger is the only use 
case, although Mongrel *could* be a use case because they too have to 
support multiple Rails version.

The reason why Rails was originally included in the gem spec as a 
dependency, is to save the user some typing. But in retrospect, it 
probably was unnecessary, because:
1. Everybody's running different apps, so everybody will need different 
versions of Rails. Installing 2.0 for them automatically will probably 
only benefit a small part of the user base. And the only benefit is not 
having to type in an extra 'gem install' command.
2. If a required Rails version is not installed, then Phusion Passenger 
will display a nicely formatted error page, which includes the exact gem 
command to run for installing that version of Rails.

I think the costs of implementing :install outweight the (tiny) benefits.

Hongli Lai
Phusion | The Computer Science Company

Web: http://www.phusion.nl/
E-mail: info at phusion.nl
Chamber of commerce no: 08173483 (The Netherlands)

More information about the Rubygems-developers mailing list