From Fedora Project Wiki

Ruby 1.9.1

Summary

Release ruby-1.9.1 alongside the current stack of ruby-1.8.6, which then moves to compat-ruby-1.8.6. The 1.9.1 version of Ruby is supposed to become the default version of Ruby on a Fedora system

Owner

Interested People

Current status

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

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

...