From Fedora Project Wiki

< Changes

Revision as of 12:40, 6 November 2017 by Vondruch (talk | contribs) (Scope)


Ruby 2.5

Summary

Ruby 2.5 is the latest stable version of Ruby. Many new features and improvements are included for the increasingly diverse and expanding demands for Ruby. With this major update from Ruby 2.4 in Fedora 26 to Ruby 2.5 in Fedora 28, Fedora becomes the superior Ruby development platform.

Owner

  • Name: Vít Ondruch
  • Email: vondruch@redhat.com
  • Release notes owner:

Current status

  • Targeted release: Fedora 28
  • Last updated: 2017-11-06
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Ruby 2.5 is upstream's new major release of Ruby. Many new features and improvements are included.

New Features

  • Top-level constant look-up is removed.
  • rescue/else/ensure are allowed inside do/end blocks.
  • refinements take place in string interpolations.
  • yield_self

Other notable changes since 2.4

  • Merge Onigmo to 6.1.1. It adds absent operator Note that Ruby 2.4.1 also includes this change.
  • Merge bundler to standard libraries.
  • Merge rubygems-2.6.13.
  • Merge rdoc-6.0.0.beta2. Change lexer IRB based one to Ripper. It much improves the speed of generating document.
  • Update supported Unicode version to 10.0.0.


Benefit to Fedora

With a latest release, Ruby language is supporting the newest language features, which enables even faster and easier development of Ruby applications.

Scope

  • Proposal owners:
    • Finish packaging of Ruby 2.5. Current changes available in private-ruby-2.5 branch of ruby package in dist-git.
    • Rebuilding of Ruby packages providing native extensions (i.e. packages which depends on libruby).


  • Other developers: N/A (not a System Wide Change)
    • Rebuild of packages with binary extensions (i.e. packages which depends on libruby) will be handled automatically, but some packages might need fixes/updates to support Ruby 2.5 properly.
  • Release engineering: #7142
    • Separate Koji tag for package rebuild will be needed.
    • List of deliverables: N/A (not needed for this Change)
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

  • User specific Ruby binary extensions need to be rebuild.

How To Test

  • No special hardware is needed.
  • To test, install Ruby 2.5. The test builds are pusblished on Ruby-SIG ML
  • Try to locally rebuild your packages using Ruby 2.5.
  • Use the packages with your applications previously written in Ruby.
  • If something doesn't work as it should, let us know.

User Experience

The Ruby programs/scripts should behave as they were used to.

Dependencies

$ dnf repoquery --disablerepo=* --enablerepo=rawhide --enablerepo=rawhide-source --arch=src --whatrequires 'ruby-devel' | sort | uniq | wc -l
159


Contingency Plan

  • Contingency mechanism: We would like to get a special buildroot tag to be able to rebuild necessary the packages with Ruby 2.5. If anything goes wrong, the tag could be easily dropped and previous version of Ruby 2.4 and its dependencies stays intact. The tag would be merged into F28 after everything is rebuild.
  • Contingency deadline: Mass Rebuild
  • Blocks release? No
  • Blocks product? No

Documentation

Release Notes

  • The Ruby 2.5 bumps soname, therefore Ruby packages, which use binary extensions, should be rebuilt. Nevertheless, since upstream paid great attention to source compatibility, no changes to your code are needed.

https://github.com/ruby/ruby/blob/trunk/NEWS