This project is archived and is in readonly mode.
gems:unpack:dependencies attempting to unpack Rails gems
Reported by Matt Jones | September 27th, 2008 @ 08:53 AM | in 2.x
Running rake gems:unpack:dependencies in an application that sets RAILS_GEM_VERSION to a less-recent version than installed (eg 2.1.0 when 2.1.1 is installed) gives an error when a gem with a dependency on rails is present.
Longer example:
Hobo 0.8.2 gem depends on Rails, >=2.1
Add config.gem 'hobo' to environment.rb
Run rake gems:unpack:dependencies --trace, and get this:
** Invoke gems:unpack:dependencies (first_time)
** Invoke gems:unpack (first_time)
** Invoke gems:base (first_time)
** Execute gems:base
** Invoke environment (first_time)
** Execute environment
** Execute gems:unpack
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/hobo-0.8.2'
** Execute gems:unpack:dependencies
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/hobosupport-0.8.2'
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/hobofields-0.8.2'
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/rails-2.1.1'
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/mislav-will_paginate-2.3.2'
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/rails-2.1.1'
Unpacked gem: '/Users/mattjones/hobo/apps/agility0.8/vendor/gems/rake-0.8.1'
rake aborted!
can't activate activesupport (= 2.1.1, runtime), already activated activesupport-2.1.0
/usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:142:in `activate'
/usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:49:in `gem'
/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/rails/gem_dependency.rb:32:in `add_load_paths'
/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/gems.rake:57
/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/gems.rake:56:in `each'
/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/gems.rake:56
/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/gems.rake:54:in `each'
/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/gems.rake:54
...
Several issues:
-
some gems are getting unpacked more than once. This is a tricky bit involving Array, eql? and friends. I have a patch, will post shortly.
-
unpacking rake will not work (at least not without major environment tweaking). Should this be a special case?
-
and last but not least, the command grabs rails-2.1.1 from the gems, not the currently active version. Line 106 of gem_dependency.rb (2-1-stable) appears to be the culprit; it assumes that the most recent gem matching the spec is intended, ignoring versions that may already be loaded.
Finally, should gem:unpack ever be unpacking Rails? That would seem to be a duplication of the freezing functionality.
Comments and changes to this ticket
-
Matt Jones November 15th, 2008 @ 07:07 AM
This is completely fixed by the changes in #1128 - this ticket can be closed.
-
DHH November 15th, 2008 @ 03:34 PM
- State changed from new to resolved
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>
People watching this ticket
Tags
Referenced by
- 1128 Fix config.gem bugs and add more tests Rails::GemDependency#specification would return a spec fo...
- 1128 Fix config.gem bugs and add more tests This patch does not address #1107 (gems depending on vend...
- 1128 Fix config.gem bugs and add more tests Rails::GemDependency#specification would return a spec fo...
- 1128 Fix config.gem bugs and add more tests defers to freeze:gems for handling the Rails framework. g...