Bugs item #26740, was opened at 2009-07-24 00:44
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=575&aid=26740&group_id=126
Category: None
Group: None
Status: Open
Resolution: Rejected
Priority: 3
Submitted By: Chad Woolley (thewoolleyman)
Assigned to: Nobody (None)
Summary: outdated rubygems/rubygems_version.rb still exists on Leopard default
ruby install even though it was removed in 1.3.5
Initial Comment:
Does system installer not delete old files? If someone happens to load this
file, they get a warning, then get the wrong version.
Can't we just move the version back into this file and avoid the issue
altogether?
chadmac:1.8 woolley$ pwd
/Library/Ruby/Site/1.8
chadmac:1.8 woolley$ grep RubyGemsVersion rubygems.rb
RubyGemsVersion = VERSION = '1.3.5'
chadmac:1.8 woolley$ ls rubygems/rubygems_version.rb
rubygems/rubygems_version.rb
chadmac:~ woolley$ irb
>> Gem::RubyGemsVersion
=> "1.3.5"
>> require 'rubygems/rubygems_version'
/Library/Ruby/Site/1.8/rubygems/rubygems_version.rb:12: warning: already
initialized constant RubyGemsVersion
/Library/Ruby/Site/1.8/rubygems/rubygems_version.rb:17: warning: already
initialized constant VERSION
=> true
>> Gem::RubyGemsVersion
=> "1.3.4"
chadmac:~ woolley$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
- RUBY EXECUTABLE:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-9
- GEM PATHS:
- /Library/Ruby/Gems/1.8
- /Users/woolley/.gem/ruby/1.8
-
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org", "http://gems.github.com"]
- REMOTE SOURCES:
- http://gems.rubyforge.org
- http://gems.github.com
----------------------------------------------------------------------
>Comment By: Chad Woolley (thewoolleyman)
Date: 2009-09-17 14:08
Message:
"You know what, I just realized that I was loading geminstaller in the
preinitializer, which was in turn loading rubygems_version.rb."
I'm sure I fixed this in the latest geminstaller release. Please open a bug if
I didn't.
----------------------------------------------------------------------
Comment By: John Trupiano (jtrupiano)
Date: 2009-09-17 11:44
Message:
Hey Ryan,
You know what, I just realized that I was loading geminstaller in the
preinitializer, which was in turn loading rubygems_version.rb.
As a result, the "require 'rubygems'" call on line 86 of config/boot.rb was
actually returning false and consequently not setting the RubyGemsVersion to
1.3.5 appropriately.
This explains why I could not reproduce the problem in irb. My apologies for
the noise.
In any case, manually deleting the file did do the trick.
-John
----------------------------------------------------------------------
Comment By: Ryan Davis (zenspider)
Date: 2009-09-17 11:23
Message:
I just looked at rails 2.3.4 and don't see any place that rubygems_version is
being required. The version checking code requires rubygems and then uses
RubyGemsVersion.
How did you get bit by this bug?
----------------------------------------------------------------------
Comment By: John Trupiano (jtrupiano)
Date: 2009-09-17 07:55
Message:
I just want to point out that this exact bug bit us pretty badly again. The
scenario is this (and I'm surprised it hasn't happened more frequently):
We're running a rails 2.3.4 app. The rails 2.3.x branch requires rubygems
1.3.2 or greater.
On this particular OSX machine, we jumped from RubyGems 1.3.1 directly to
1.3.5. As a result, this left the rubygems_version.rb file specifying version
1.3.1. As a result, we could never actually run the rails app because of the
version checking code in config/boot.rb.
It took us quite awhile to track down what the issue really was. Others not so
in tune with RubyGems development are surely to lose a whole lot more time than
we did.
----------------------------------------------------------------------
Comment By: Chad Woolley (thewoolleyman)
Date: 2009-07-24 13:53
Message:
Agreed, a very low priority. I was only requiring explicitly as a side effect
of my regression tests - normally you should rely on rubygems to require what
it needs.
However, this should probably get turned into a bug with the system install
command, because it isn't deleting old files. This could come back to bite us
in a more serious way in the future.
----------------------------------------------------------------------
Comment By: John Trupiano (jtrupiano)
Date: 2009-07-24 13:51
Message:
I can confirm the odd behavior on a default Leopard install:
john-mbp:1.8 john$ irb
irb(main):001:0> Gem::RubyGemsVersion
=> "1.3.5"
irb(main):002:0> require 'rubygems/rubygems_version'
/Library/Ruby/Site/1.8/rubygems/rubygems_version.rb:12: warning: already
initialized constant RubyGemsVersion
/Library/Ruby/Site/1.8/rubygems/rubygems_version.rb:17: warning: already
initialized constant VERSION
=> true
irb(main):003:0> Gem::RubyGemsVersion
=> "1.3.4"
-John
----------------------------------------------------------------------
Comment By: Daniel Berger (djberg96)
Date: 2009-07-24 12:16
Message:
I agree, the rubygems_version.rb file should be deleted on update if possible.
Mind you, I've never heard of anyone explicitly require'ing that file, so it
strikes me as a very low priority item, but it's still something we could fix.
Regards,
Dan
----------------------------------------------------------------------
Comment By: Chad Woolley (thewoolleyman)
Date: 2009-07-24 12:01
Message:
Rejected with no comment, huh? Classy.
You ignore the fact that there are actual bugs:
* RubyGems 1.3.5 introduced an obsolete file on the Leopard distribution
* This file contains an outdated and conflicting RubyGems version number
* If any existing rubygems API clients happen to still load this file, they
will get a warning, and rubygems will subsequently report the incorrect and
outdated version.
* There is a bug with the system update command that does not delete old files,
at least on the default Leopard install.
----------------------------------------------------------------------
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=575&aid=26740&group_id=126
_______________________________________________
Rubygems-developers mailing list
http://rubyforge.org/projects/rubygems
[email protected]
http://rubyforge.org/mailman/listinfo/rubygems-developers