[Rubygems-developers] HEADSUP RubyGems 1.2 Real Soon Now

Stephen Bannasch stephen.bannasch at deanbrook.org
Wed Jun 4 03:33:21 EDT 2008


At 6:22 PM -0700 6/3/08, Jeremy Kemper wrote:
>On Tue, Jun 3, 2008 at 4:36 PM, Eric Hodel <drbrain at segment7.net> wrote:
>> I believe RubyGems is currently feature-complete for the next release.  For
>> the next while I'll be focusing on bugfixes and patches from the tracker.  I
>> expect to release a new version in two weeks at minimum, possibly longer.
>
>I'd love to see little-known --format-executable enabled by default
>for gem installs.
>
>This gives you bin stubs that match your ruby name, e.g. rake-1.9 for
>ruby-1.9 and rake for ruby. Currently, both are installed as rake so
>the latest install clobbers the previous one. This is confusing and
>aggravating but few are aware that --format-executable solves it.
>
>Changing the default would be a welcome improvement in gem install
>experience for those working with multiple rubies and doesn't change
>behavior for the 95% who aren't. Plus, the 1.2 release is an
>auspicious opportunity to flip the switch just as 1.8.7 is out and
>1.9.1 nears release.

I would like the opposite to be the default. 

I keep all my different ruby installations separate -- I have different lib, bin, and gem repo paths for 1.8.6, 1.9. rbx, and jruby. I don't see how a single gem repository can work when gems that require native code and connections to ruby VM libraries are combined.

-- background on my setup --

I don't want different names for the same command -- but I do want an simple way to run a bin/ command from any of the installed ruby vms. Using the -S parameter works for MRI 1.8.6 and jruby,  partially in ruby 1.9 (works for gem and not for rake) but not for rubinius:

This is my default Ruby install. It's the MRI 1.8.6 that comes with MacOS 10.5.2. This is the only Ruby VM that uses ruby scripts stored in a standard system bin/ dir.

[~/dev/rails/test]$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.1.1
  - RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-9
  - GEM PATHS:
     - /Library/Ruby/Gems/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"]
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

Paths to jruby and ruby 1.9 bin/ directories are added to the end of PATH and I renamed the ruby shell script in ruby 1.9's bin/ dir to ruby19.

[~/dev/rails/test]$ jruby -S gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.1.1
  - RUBY VERSION: 1.8.6 (2008-06-01 patchlevel 6586) [java]
  - INSTALLATION DIRECTORY: /Users/stephen/dev/jruby_trunk/jruby/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /Users/stephen/dev/jruby_trunk/jruby/bin/jruby
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-java-1.5
  - GEM PATHS:
     - /Users/stephen/dev/jruby_trunk/jruby/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://gems.rubyforge.org"]
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

[~/dev/rails/test]$ ruby19 -S gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.1.1
  - RUBY VERSION: 1.9.0 (2008-05-19 patchlevel 0) [i686-darwin9.2.2]
  - INSTALLATION DIRECTORY: /Users/stephen/dev/ruby1.9/lib/ruby/gems/1.9.0
  - RUBY EXECUTABLE: /Users/stephen/dev/ruby1.9/bin/ruby
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-9
  - GEM PATHS:
     - /Users/stephen/dev/ruby1.9/lib/ruby/gems/1.9.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://gems.rubyforge.org"]
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

I installed rubinius source into rubinius/code and installed it into rubinius/install.

  cd ~/dev/rubinius
  git clone git://github.com/evanphx/rubinius.git code
  cd ~/dev/rubinius/code
  rake clean:all
  PREFIX=/Users/stephen/dev/rubinius/install rake build
  PREFIX=/Users/stephen/dev/rubinius/install rake install

But since Rubinius doesn't have the equivalent of '-S' I need to supply the full path to the gem.rb command.

[~/dev/rubinius/install]$ rbx lib/rubinius/0.8/bin/gem.rb env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.1.1
  - RUBY VERSION: 1.8.6 (06/04/2008 patchlevel 111) [i686-apple-darwin9.2.2]
  - INSTALLATION DIRECTORY: /Users/stephen/dev/rubinius/install/lib/rubinius/lib/rbx/gems/1.8.6
  - RUBY EXECUTABLE: /Users/stephen/dev/rubinius/install/lib/rubinius/bin/rbx
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-9
  - GEM PATHS:
     - /Users/stephen/dev/rubinius/install/lib/rubinius/lib/rbx/gems/1.8.6
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://gems.rubyforge.org"]
  - REMOTE SOURCES:
     - http://gems.rubyforge.org



More information about the Rubygems-developers mailing list