Bugs item #27867, was opened at 2010-02-22 12:54 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=575&aid=27867&group_id=126
Category: None Group: None Status: Open Resolution: None Priority: 3 Submitted By: Hongli Lai (hongli) Assigned to: Nobody (None) Summary: RubyGems should not pre-activate dependencies that have no version requirement Initial Comment: Suppose that we have an app Foo that depends on Bar, no specific version. At this time, running 'gem "foo"' will automatically activate the latest version of "bar". This behavior causes various problems. A concrete example: - Rails 3.0pre depends on Rack 1.1. - Rails 2.3 depends on Rack 1.0. - Thin depends on Rack, no specific version. If all of the above are installed, and one tries to use Thin to start a Rails 2.3 app, then it will fail. Thin's wrapper binary runs 'gem "thin"', which in turn activates Rack 1.1 immediately. When Thin starts Rails 2.3, Rails tries to activate Rack 1.0. As you can see, Thin + Rails 2.3 is completely broken just by having Rack 1.1 installed. This can be solved adding an hypothetical --rack-version=xxx command line option to Thin, which would instruct Thin to activate a specific Rack version during startup so that one can start Rails 2.3 apps with: thin start --rack-version=1.0.0 However this is currently unimplementable because the RubyGems wrapper binary activates Rack during startup. I think it should only check whether Rack is installed, but not actually activate it until it's actually require'ed. See also https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4031-having-rails-23pre-or-rack-11-installed-breaks-rails-2x ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=575&aid=27867&group_id=126 _______________________________________________ Rubygems-developers mailing list http://rubyforge.org/projects/rubygems Rubygems-developers@rubyforge.org http://rubyforge.org/mailman/listinfo/rubygems-developers