From Fedora Project Wiki
 
(15 intermediate revisions by 4 users not shown)
Line 12: Line 12:


* Name: [[User:Phip|John Blitch]]
* Name: [[User:Phip|John Blitch]]
* Name: [[User:mfojtik|Michal Fojtik]]


== Current status ==
== Current status ==


* Targeted release: [[Releases/13|Fedora 13]]
* Targeted release: -
* Last updated: Sat Dec 19 2009
* Last updated: Sat Jan  9 2009
* Percentage of completion: 50%
* Percentage of completion: 60%


=== Latest Status Updates ===
=== Latest Status Updates ===


* 2009-12-22: Packages are available on http://mirror.nl.kanarip.com/custom/ (the -ruby repositories)
* 2009-12-22: Packages are available on http://mirror.nl.ergo-project.org/repositories/ (the feature-ruby repositories)
* 2009-12-27: Some of the packaging problems resolved
* 2010-01-09: Package review submitted: https://bugzilla.redhat.com/show_bug.cgi?id=553917


== Detailed Description ==
== 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.[http://en.wikipedia.org/wiki/YARV]
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. [http://en.wikipedia.org/wiki/YARV]
 
In doing so, upstream has set the anticipations for downstream consumers with faster and more reliable Ruby. Bringing Ruby 1.9.1 to Fedora is essential for Fedora to be at the top of it's game as a Ruby development platform.
 
While ruby-1.9.1 is great (and all that), some programs have problems with the changes and are unable to keep up in a decent fashion. Admittedly, Ruby does not know a stable ABI nor a stable API, and major-minor-teeny versions can have subtle but significant changes in either the ABI or the API.
 
In order for Fedora to be the most excellent development platform for Ruby applications (including Ruby on Rails applications), we should make sure that we run at least the following Ruby stacks, noted that the stacks marked with a "(?)" are not in the scope of the current plan;
 
* ruby-trunk (?)
* ruby-1.9.1
* ruby-1.8.6
* ruby-1.8.5 (?)
 
In order to do so, and comply with progressive Packaging Standards (which have been pretty immature for Ruby packages), huge changes to Ruby are necessary and desirable.


== Benefit to Fedora ==
== 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.
Supporting the growth of a young language with a performance-enhancing milestone release. Add to that the multiplatform targetted development we enable downstream parties to do using our distribution.


== Scope ==
== 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
The following includes a summary of changes included in this feature:
 
* New Packaging Guidelines for Ruby packages (gems and extension libraries)
* Rebuilding of all Ruby packages, and all packages depending on Ruby
* Changes to the search path to comply with the multi-versioning
* Changes to the location of files to comply with FHS, multilib and packaging standards
 
=== New Packaging Guidelines ===
 
Drafts of new packaging guidelines will have to be proposed to FPSCo. No such drafts currently exist.


=== Ruby Search path ===
=== Ruby Search path ===
Line 39: Line 64:
The ruby search path is going to change. Not set in stone yet, but this is what it is right now (on my workstation):
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 $:'
  [jmeeuwen@ghandalf ruby.git]$ ruby-1.9.1 -e 'puts $:'
  /usr/lib64/ruby/site_ruby/1.9.1
  /usr/local/lib64/ruby/1.9.1
  /usr/lib64/ruby/site_ruby/1.9.1/x86_64-linux
  /usr/local/lib64/ruby/1.9
  /usr/lib64/ruby/site_ruby
  /usr/local/lib64/ruby/
  /usr/lib64/ruby/vendor_ruby/1.9.1
  /usr/local/share/ruby/1.9.1
  /usr/lib64/ruby/vendor_ruby/1.9.1/x86_64-linux
  /usr/local/share/ruby/1.9
  /usr/lib64/ruby/vendor_ruby
  /usr/local/share/ruby/
  /usr/lib64/ruby/1.9.1
  /usr/lib64/ruby/1.9.1
  /usr/lib64/ruby/1.9.1/x86_64-linux
  /usr/lib64/ruby/1.9
/usr/lib64/ruby/
/usr/share/ruby/1.9.1
/usr/share/ruby/1.9
/usr/share/ruby/
.
[jmeeuwen@ghandalf ruby.git]$ ruby-1.8.6 -e 'puts $:'
/usr/local/lib64/ruby/1.8.6
/usr/local/lib64/ruby/1.8
/usr/local/lib64/ruby/
/usr/local/share/ruby/1.8.6
/usr/local/share/ruby/1.8
/usr/local/share/ruby/
/usr/lib64/ruby/1.8.6
/usr/lib64/ruby/1.8
/usr/lib64/ruby/
/usr/share/ruby/1.8.6
/usr/share/ruby/1.8
/usr/share/ruby/
.


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


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


* 80 in total
* 80 in total
Line 74: Line 120:


* Puppet had better work, no matter what --[[User:ynemoy | Yaakov M. Nemoy]] 16:49, 6 December 2009 (UTC)
* Puppet had better work, no matter what --[[User:ynemoy | Yaakov M. Nemoy]] 16:49, 6 December 2009 (UTC)
* Ruby 1.9.1 fixes [https://bugzilla.redhat.com/show_bug.cgi?id=555899 this bug], so yes please! --[[User:nathant | Nathan Thomas]] 21:27, 15 January 2009 (UTC)


== Dependencies ==
== Dependencies ==
Line 87: Line 134:
== Documentation ==
== Documentation ==


* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_1_0/NEWS
* http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_374/NEWS
* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_1_431/NEWS
* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_2_320/NEWS
* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_448/NEWS
* http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_247/NEWS
 
== Upstream EOL ==
 
* 1.8.6 : [http://www.engineyard.com/blog/2011/engine-yards-plans-for-ruby-1-8-6/ Engine Yard’s Plans for Ruby 1.8.6]
 
* 1.8.7 : [http://redmine.ruby-lang.org/issues/4996 About 1.8.7 EOL] and [http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/ Plans for 1.8.7]


== Release Notes ==
== Release Notes ==

Latest revision as of 04:12, 9 November 2013

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: -
  • Last updated: Sat Jan 9 2009
  • Percentage of completion: 60%

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]

In doing so, upstream has set the anticipations for downstream consumers with faster and more reliable Ruby. Bringing Ruby 1.9.1 to Fedora is essential for Fedora to be at the top of it's game as a Ruby development platform.

While ruby-1.9.1 is great (and all that), some programs have problems with the changes and are unable to keep up in a decent fashion. Admittedly, Ruby does not know a stable ABI nor a stable API, and major-minor-teeny versions can have subtle but significant changes in either the ABI or the API.

In order for Fedora to be the most excellent development platform for Ruby applications (including Ruby on Rails applications), we should make sure that we run at least the following Ruby stacks, noted that the stacks marked with a "(?)" are not in the scope of the current plan;

  • ruby-trunk (?)
  • ruby-1.9.1
  • ruby-1.8.6
  • ruby-1.8.5 (?)

In order to do so, and comply with progressive Packaging Standards (which have been pretty immature for Ruby packages), huge changes to Ruby are necessary and desirable.

Benefit to Fedora

Supporting the growth of a young language with a performance-enhancing milestone release. Add to that the multiplatform targetted development we enable downstream parties to do using our distribution.

Scope

The following includes a summary of changes included in this feature:

  • New Packaging Guidelines for Ruby packages (gems and extension libraries)
  • Rebuilding of all Ruby packages, and all packages depending on Ruby
  • Changes to the search path to comply with the multi-versioning
  • Changes to the location of files to comply with FHS, multilib and packaging standards

New Packaging Guidelines

Drafts of new packaging guidelines will have to be proposed to FPSCo. No such drafts currently exist.

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 ruby.git]$ ruby-1.9.1 -e 'puts $:'
/usr/local/lib64/ruby/1.9.1
/usr/local/lib64/ruby/1.9
/usr/local/lib64/ruby/
/usr/local/share/ruby/1.9.1
/usr/local/share/ruby/1.9
/usr/local/share/ruby/
/usr/lib64/ruby/1.9.1
/usr/lib64/ruby/1.9
/usr/lib64/ruby/
/usr/share/ruby/1.9.1
/usr/share/ruby/1.9
/usr/share/ruby/
.
[jmeeuwen@ghandalf ruby.git]$ ruby-1.8.6 -e 'puts $:'
/usr/local/lib64/ruby/1.8.6
/usr/local/lib64/ruby/1.8
/usr/local/lib64/ruby/
/usr/local/share/ruby/1.8.6
/usr/local/share/ruby/1.8
/usr/local/share/ruby/
/usr/lib64/ruby/1.8.6
/usr/lib64/ruby/1.8
/usr/lib64/ruby/
/usr/share/ruby/1.8.6
/usr/share/ruby/1.8
/usr/share/ruby/
.

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

Packages that require "ruby(abi) = 1.8"

Requires rebuilding numerous packages that depend on ruby(abi) = 1.8, or have Requires or BuildRequires for package dependent on 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

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

Upstream EOL

Release Notes

...