From Fedora Project Wiki

Ruby 1.9.1

Summary

Ruby 1.9.1 is a long awaited, much anticipated version of Ruby, with major increases in speed and reliability. With Ruby 1.9.1 alongside Ruby 1.8.6 in Fedora 13, possibly including Ruby 1.8.5 as well, Fedora becomes the superior Ruby development platform.

Owner

Interested People

Current status

  • Targeted release: Fedora 13
  • Last updated: Sat Dec 19 2009
  • Percentage of completion: 50%

Latest Status Updates

Detailed Description

Ruby-1.9.1 is upstream's new major release of Ruby. The MRI reference interpreter is replaced by the YARV bytecode interpreter, designed to greatly improve the execution time of ruby programs.[1]

Benefit to Fedora

Supporting the growth of a young language with a performance-enhancing milestone release. Ubuntu already includes Ruby-1.9.1 in their 9.10 release.

Scope

Requires rebuilding numerous packages that depend on ruby(abi) = 1.8, or have Requires or BuildRequires for package dependent on ruby(abi) = 1.8

Ruby Search path

The ruby search path is going to change. Not set in stone yet, but this is what it is right now (on my workstation):

[jmeeuwen@ghandalf master]$ ruby -e 'puts $:'
/usr/lib64/ruby/site_ruby/1.9.1
/usr/lib64/ruby/site_ruby/1.9.1/x86_64-linux
/usr/lib64/ruby/site_ruby
/usr/lib64/ruby/vendor_ruby/1.9.1
/usr/lib64/ruby/vendor_ruby/1.9.1/x86_64-linux
/usr/lib64/ruby/vendor_ruby
/usr/lib64/ruby/1.9.1
/usr/lib64/ruby/1.9.1/x86_64-linux 

Changes like these mean that the Packaging Guidelines for Ruby will also need to be updated.

Packages that require "ruby(abi) = 1.8"

  • 80 in total
repoquery -c rawhide-i386.conf --qf="%{SOURCERPM}" --whatrequires "ruby(abi) = 1.8" | sort | uniq

Packages that require "*ruby*"

  • 119 in total (80 matches from previous query, of course)
repoquery -c rawhide-i386.conf --qf="%{SOURCERPM}" --whatrequires "*ruby*" | sort | uniq

Test Plan

  1. Make a compatibility package available: compat-ruby1.8-1.8.6.287
    1. Rebuild packages requiring ruby(abi) = 1.8 against the compat- package
  2. Release ruby-1.9.1
    1. Start moving packages to requiring ruby(abi) = 1.9 and test functionality
    2. Fix upstream whereever possible

User Experience

  • Puppet had better work, no matter what -- Yaakov M. Nemoy 16:49, 6 December 2009 (UTC)

Dependencies

  • Maintainers of packages dependent on ruby need to be in the loop
  • provenpackager membership for /me (done)
  • Package Guidelines change

Contingency Plan

  • Revert compat-ruby1.8-1.8.6.287 to just ruby-1.8.6.287

Documentation

Release Notes

...