[Rubygems-developers] HEADSUP RubyGems 1.2 Real Soon Now
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.
Phusion | The Computer Science Company
E-mail: info at phusion.nl
Chamber of commerce no: 08173483 (The Netherlands)
More information about the Rubygems-developers