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

+

Drafts of new packaging guidelines will have to be proposed to FPC. You can see the [[PackagingDrafts/Ruby|current draft]].

=== Ruby Search path ===

=== Ruby Search path ===

Line 60:

Line 60:

=== 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. All these packages has to be updated to support ruby(abi) = 1.9

+

Requires rebuilding numerous packages that depend on ruby(abi) = 1.8, or have Requires or BuildRequires for package dependent on ruby(abi) = 1.8. All these packages have to be updated to support ruby(abi) = 1.9

* 115 in total

* 115 in total

Line 86:

Line 86:

3. What are the expected results of those actions?

3. What are the expected results of those actions?

-->

-->

+

* No special hardware is needed.

+

* To test, install Ruby 1.9.3 and the rebuilt packages from the testing repository http://vondruch.fedorapeople.org/ruby_1.9.3.repo . Or better, ẗhere is already available f17-ruby tag in Koji, so you can use Koji repository http://kojipkgs.fedoraproject.org/repos/f17-ruby/latest/$basearch for testing. For more updates, please follow the Ruby-SIG mailing list thread http://lists.fedoraproject.org/pipermail/ruby-sig/2011-December/000705.html .

+

* Use the packages, ideally with your applications previously written in Ruby (be sure to upgrade your applications to Ruby 1.9.3 first).

+

* If something doesn't work as it should, let us know (specifically, concentrate on correct load paths, encodings, changes in binary extensions and also other new features added between 1.8.7 and 1.9.3).

+

+

+

Please note that we already tested all packages available in Fedora for compatibility with Ruby 1.9.3. You can go through the findings in following mailing list threads:

<!-- If this feature is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice. -->

<!-- If this feature is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice. -->

+

The Ruby programmes/scripts will get significantly faster compared to the current state.

== Dependencies ==

== Dependencies ==

<!-- What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like the kernel (if this is not a kernel feature)? -->

<!-- What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like the kernel (if this is not a kernel feature)? -->

+

Ruby has more than three hundred dependencies in Fedora, most of them are Rubygems. All of these 300 will have to be rebuilt and tested.

== Contingency Plan ==

== Contingency Plan ==

<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "None necessary, revert to previous release behaviour." Or it might not. If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->

<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "None necessary, revert to previous release behaviour." Or it might not. If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->

+

We would like to get a special buildroot tag to be able to rebuild all the packages with Ruby 1.9.3. If anything goes wrong, the tag could be easily dropped and previous version of Ruby 1.8.7 and its dependencies stays intact.

<!-- The Fedora Release Notes inform end-users about what is new in the release. Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->

<!-- The Fedora Release Notes inform end-users about what is new in the release. Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->

<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->

<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->

−

*

+

+

* The Ruby 1.9.3 breaks ABI/API compatibility with previous version of Ruby, therefore soname was bumped. All RubyGems which use binary extensions should be rebuilt. All applications which use Ruby binding should be rebuilt.

+

* Ruby 1.9.3 as well as integrated version of RubyGems now use different directory structure, compatible with FHS. All libraries need to be adjusted to this change. This change is reflected in new [[PackagingDrafts/Ruby| packaging guidelines draft]].

+

** Unprivileged user now installs gems automatically into her/his home directory, root installs gems into /usr/local directory structure and system gems, managed by RPM, are installed into /usr.

+

** Ruby libraries managed by RPM are now installed into vendor directories while other libraries managed by system administrator should go into site directories.

+

+

* 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

== Comments and Discussion ==

== Comments and Discussion ==

Line 112:

Line 139:

−

[[Category:FeaturePageIncomplete]]

+

[[Category:FeatureAcceptedF17]]

<!-- When your feature page is completed and ready for review -->

<!-- When your feature page is completed and ready for review -->

<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->

<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->

<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->

<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->

<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Ruby 1.9.3 is the latest stable version of Ruby, with major increases in speed and reliability. With this major update from Ruby 1.8.7 in Fedora 16 to Ruby 1.9.3 in Fedora 17, alongside JRuby, Fedora becomes the superior Ruby development platform.

Ruby 1.9.3 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.3 to Fedora is essential for Fedora to be at the top of it's game as a Ruby development platform.

Requires rebuilding numerous packages that depend on ruby(abi) = 1.8, or have Requires or BuildRequires for package dependent on ruby(abi) = 1.8. All these packages have to be updated to support ruby(abi) = 1.9

Use the packages, ideally with your applications previously written in Ruby (be sure to upgrade your applications to Ruby 1.9.3 first).

If something doesn't work as it should, let us know (specifically, concentrate on correct load paths, encodings, changes in binary extensions and also other new features added between 1.8.7 and 1.9.3).

Please note that we already tested all packages available in Fedora for compatibility with Ruby 1.9.3. You can go through the findings in following mailing list threads:

We would like to get a special buildroot tag to be able to rebuild all the packages with Ruby 1.9.3. If anything goes wrong, the tag could be easily dropped and previous version of Ruby 1.8.7 and its dependencies stays intact.

The Ruby 1.9.3 breaks ABI/API compatibility with previous version of Ruby, therefore soname was bumped. All RubyGems which use binary extensions should be rebuilt. All applications which use Ruby binding should be rebuilt.

Ruby 1.9.3 as well as integrated version of RubyGems now use different directory structure, compatible with FHS. All libraries need to be adjusted to this change. This change is reflected in new packaging guidelines draft.

Unprivileged user now installs gems automatically into her/his home directory, root installs gems into /usr/local directory structure and system gems, managed by RPM, are installed into /usr.

Ruby libraries managed by RPM are now installed into vendor directories while other libraries managed by system administrator should go into site directories.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, and JBoss are trademarks or registered trademarks of
Red Hat, Inc. or its subsidiaries in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community
maintained site. Red Hat is not responsible for content.