From Fedora Project Wiki


Ruby on Rails 8.1

Summary

Ruby on Rails 8.1 is the latest version of well known web framework written in Ruby.

Owner

  • Name: Vít Ondruch
  • Email: vondruch@redhat.com, ruby-sig@lists.fedoraproject.org


Current status

Detailed Description

The Ruby on Rails stack is evolving quickly and Fedora needs to keep pace with it. Therefore the whole Ruby on Rails stack should be updated from 8.0 in Fedora 44 to 8.1 (latest version) in Fedora 45. This will ensure that all the Ruby developers using Fedora have the latest and greatest RPM-packaged Ruby on Rails.

Feedback

Benefit to Fedora

This update will keep Fedora up-to-date and will ensure that the current Ruby on Rails developers stay with us as they will get support for system-packaged Ruby on Rails of the latest version. Update to Rails 8.1 contains hundreds of fixes and improvements across all the frameworks. For new features, please see User Experience.

Scope

  • Proposal owners:
    • The whole Rails stack has to be updated.
    • Some dependencies of the Rails stack will need update.
    • Current development state can be observed in vondruch/ror81 COPR repository.
  • Other developers: Update Rails dependent packages to be working with Ruby on Rails 8.1
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: ?

Upgrade/compatibility impact

Web applications build above Ruby on Rails framework might need to be updated. Official upstream upgrade guide might come handy: http://guides.rubyonrails.org/upgrading_ruby_on_rails.html

How To Test

  • No special hardware is needed.
  • Not all dependencies for default app are available in Fedora. Drop those dependencies or grab them from RubyGems repo.

To test only Rails itself

dnf install rubygem-rails
rails new app
cd app && rails s

To test the complete feature including generating a new Rails app using RPM

dnf group install 'Ruby on Rails'
rails new app --skip-bundle && cd app
rails s

Rails app with Fedora only dependencies

dnf group install 'Ruby on Rails'
rails new app --skip-bundle --skip-kamal --skip-solid --skip-brakeman --skip-rubocop --skip-thruster --skip-bootsnap --skip-hotwire
cd app
rails s

User Experience

  • New version of Ruby on Rails (8.1) available
  • The most significant Rails 8.1 features:
    • Active Job Continuations — long-running jobs can be broken into discrete steps that resume from the last completed step after a restart, rather than from the beginning.
    • Structured Event Reporting — a new unified Rails.event interface for producing structured, machine-readable events suitable for post-processing and observability tooling.
    • Local CI — a built-in CI declaration DSL defined in config/ci.rb and run via bin/ci, enabling developer machines to serve as local CI runners.
    • Markdown Rendering — first-class support for responding to and rendering Markdown content directly from controllers via format.md { render markdown: @object }.
    • Deprecated Associations — Active Record associations can now be individually marked as deprecated (deprecated: true), causing usage to be reported via warn, raise, or notify modes.

Dependencies

  • Ruby on Rails framework consists of multiple packages, which all needs to be updated at once.

Contingency Plan

  • Contingency mechanism: None needed. Rails stack won't be updated until all its dependencies are in Rawhide. After that, it will be a simple matter of updating the core packages (and their dependencies) via side-tag.
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)

Documentation

Release Notes