Line 58: | Line 58: | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
<!-- What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?--> | <!-- What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?--> | ||
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. Apart from that, update to Rails 5.0 will bring ActionCable (A new framework that seamlessly integrates WebSockets with the rest of your Rails application), API mode (You can create a new Rails application using rails new backend --api), ActionRecord attributes | 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. Apart from that, update to Rails 5.0 will bring ActionCable (A new framework that seamlessly integrates WebSockets with the rest of your Rails application), API mode (You can create a new Rails application using rails new backend --api), ActionRecord attributes with a type on a model, and exclusive use of rails CLI over Rake. | ||
== Scope == | == Scope == |
Revision as of 08:00, 26 September 2016
Ruby on Rails 5.0
Summary
Ruby on Rails 5.0 is the latest version of well known web framework written in Ruby.
Owner
- Name: Jun Aruga, Pavel Valena, Vít Ondruch
- Email: jaruga@redhat.com, pvalena@redhat.com, vondruch@redhat.com, ruby-sig@lists.fedoraproject.org
- Release notes owner:
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 4.2 in Fedora 24 to 5.0 (latest version) in Fedora 25. This will ensure that all the Ruby developers using Fedora have the latest and greatest RPM-packaged Ruby on Rails.
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. Apart from that, update to Rails 5.0 will bring ActionCable (A new framework that seamlessly integrates WebSockets with the rest of your Rails application), API mode (You can create a new Rails application using rails new backend --api), ActionRecord attributes with a type on a model, and exclusive use of rails CLI over Rake.
Scope
- Proposal owners:
- The whole Rails stack has to be updated
- Some dependencies of the Rails stack will need update
List of packages needed by Rails 5.0 to generate basic application
Package name | Task | Status |
---|---|---|
rubygem-actioncable | Create (5.0.x) | #1354545 |
rubygem-actionmailer | Update to 5.0.x | #1351811 |
rubygem-actionpack | Update to 5.0.x | #1351812 |
rubygem-actionview | Update to 5.0.x | #1351813 |
rubygem-activejob | Update to 5.0.x | #1351814 |
rubygem-activemodel | Update to 5.0.x | #1351815 |
rubygem-activerecord | Update to 5.0.x | #1351816 |
rubygem-activesupport | Update to 5.0.x | #1351817 |
rubygem-arel | Update to 7.x | #1292628 |
rubygem-builder | No need to update | |
rubygem-bundler | No need to update | |
rubygem-concurrent-ruby | No need to update | |
rubygem-erubis | No need to update | |
rubygem-globalid | Update to >= 0.3.6 | #1296970 |
rubygem-i18n | No need to update | |
rubygem-loofah | No need to update | |
rubygem-mail | Latest version | #1320765 |
rubygem-method_source | No need to update | |
rubygem-mime-types | Update to 3.1 (latest version) because of rubygem-mime-types-data | #907393 |
rubygem-mime-types-data | #1351575 | |
rubygem-minitest | No need to update | |
rubygem-nio4r | Create (~> 1.2) | #1315801 |
rubygem-nokogiri | No need to update | |
rubygem-pkg-config | No need to update | |
rubygem-rack | Update to 2.x | #1352603 |
rubygem-rack-test | No need to update | |
rubygem-rails | Update to 5.0.x | #1352604 |
rubygem-rails-dom-testing | Update to ~> 2.0 (It does not need to update at 5.0.0.rc2, but it needs to update at 5.0.0) | #1297006 |
rubygem-rails-html-sanitizer | No need to update | |
rubygem-railties | Update to 5.0.x | #1352605 |
rubygem-rake | No need to update | |
rubygem-sprockets | No need to update. Fix the build failure. | #1352650 |
rubygem-sprockets-rails | No need to update | |
rubygem-thor | No need to update | |
rubygem-thread_safe | No need to update | |
rubygem-tzinfo | No need to update | |
rubygem-websocket-driver | Update to ~> 0.6.1 | #1171085 |
rubygem-websocket-extensions | No need to update |
List of optional packages, required by the basic Ruby on Rails application
Package name | Task | Status |
---|---|---|
rubygem-byebug | No need to update | |
rubygem-coffee-rails | No need to update. Fix the build failure. | #1357056 |
rubygem-coffee-script | No need to update. Fix the build failure. | #1357047 |
rubygem-coffee-script-source | No need to update | |
rubygem-debug_inspector | No need to update | |
rubygem-execjs | No need to update. Fix the build failure. | #1357592 |
rubygem-ffi | No need to update | |
rubygem-jbuilder | Update to ~> 2.5 | #1294347 |
rubygem-jquery-rails | Relax rails-dom-testing dependency. Update is blocked by jQuery. | |
rubygem-listen | No need to update | |
rubygem-multi_json | No need to update | |
rubygem-puma | Create? (~> 3.0) TODO | #1372718 |
rubygem-rails-deprecated_sanitizer | No need to update | |
rubygem-rb-fsevent | No use | |
rubygem-rb-inotify | Latest version | #1305192 |
rubygem-sass | No need to update. | |
rubygem-sass-rails | ~> 5.0.5 | #1352576 |
rubygem-spring | No need to update | #1279891 |
rubygem-spring-watcher-listen | Create? (~> 2.0.0) TODO | #1361584 |
rubygem-sqlite3 | No need to update | |
rubygem-tilt | No need to update | |
rubygem-turbolinks | Update to 5.x | #1352597 |
rubygem-turbolinks-source | Create? TODO | #1359224 |
rubygem-uglifier | No need to update. Fix the build failure. | #1357879 |
rubygem-web-console | Update to >= 3.1 | #1291685 |
The lists are compiled from the result of "bundle list" and "Gemfile.lock" after both installing rails, and creating new Rails app.
- Other developers: Update Rails dependent packages to be working with Ruby on Rails 5.0
- Release engineering: Not needed.
- Policies and guidelines: Not needed
- Trademark approval: N/A (not needed for this Change)
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
The test packages are available in Copr (WIP):
https://copr.fedorainfracloud.org/coprs/vondruch/ror5/
- No special hardware is needed.
- To test Rails 5.0 from upstream:
gem install rails -v 5.0.x rails new app cd app && rails s
- Go to http://127.0.0.1:3000/ and make sure you are running Rails 5.0.x
- To test only Rails itself
dnf install rubygem-{rails,sqlite3} rails new app cd app && rails s
- To test the complete feature including generating a new Rails app using RPM
su -c "dnf install rubygem-{rails,sqlite3,coffee-rails,sass-rails,uglifier,jquery-rails,turbolinks,jbuilder,sdoc,spring,byebug,web-console} nodejs" rails new app --skip-bundle && cd app rails s
- Go to http://127.0.0.1:3000/ and make sure you are running Rails 5.0.x
User Experience
- New version of Ruby on Rails (5.0) available
- The most significant Rails 5.0 features:
- ActionCable: user can use WebSockets with the rest of your Rails application.
- API mode: uesr can create a Rails application for API server easily with API mode.
- Exclusive use of rails CLI over Rake. Add bin/rails test, bin/rails db:migrate. Now bin/rails is the one master command to rule them all.
- ActionRecord attributes: user can override ActiveRecord attributes if needed.
Dependencies
- There are several packages, which depends on Ruby on Rails framework. All need to be tested an updated:
- These needs to be surely updated:
- none now
- Following gems don't support Rails 5.0 right now and would be broken by the update:
- none now
- As Rails requires Ruby >= 2.2.2, the platform less than the version can not use Rails 5.0.
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).
- Contingency deadline: N/A
- Blocks release? No