From 37fd0e7fe4990c4e5db10813bae3bba10c8be479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Mon, 13 May 2024 16:44:50 +0000 Subject: [PATCH] Development of Rails 8.0 starts now :tada: --- .github/stale.yml | 2 +- Gemfile.lock | 106 +++--- RAILS_VERSION | 2 +- actioncable/CHANGELOG.md | 2 +- actioncable/lib/action_cable/gem_version.rb | 4 +- actioncable/package.json | 2 +- actionmailbox/CHANGELOG.md | 2 +- .../lib/action_mailbox/gem_version.rb | 4 +- actionmailbox/test/dummy/db/schema.rb | 2 +- actionmailer/CHANGELOG.md | 2 +- actionmailer/lib/action_mailer/gem_version.rb | 4 +- actionpack/CHANGELOG.md | 2 +- actionpack/lib/action_pack/gem_version.rb | 4 +- actiontext/CHANGELOG.md | 2 +- actiontext/lib/action_text/gem_version.rb | 4 +- actiontext/package.json | 2 +- actiontext/test/dummy/db/schema.rb | 2 +- actionview/CHANGELOG.md | 2 +- actionview/lib/action_view/gem_version.rb | 4 +- activejob/CHANGELOG.md | 2 +- activejob/lib/active_job/gem_version.rb | 4 +- activemodel/CHANGELOG.md | 2 +- activemodel/lib/active_model/gem_version.rb | 4 +- activerecord/CHANGELOG.md | 2 +- activerecord/README.rdoc | 2 +- .../lib/active_record/associations.rb | 2 +- .../abstract/schema_definitions.rb | 2 +- activerecord/lib/active_record/gem_version.rb | 4 +- activerecord/lib/active_record/migration.rb | 32 +- .../active_record/migration/compatibility.rb | 7 +- .../lib/active_record/model_schema.rb | 2 +- activestorage/CHANGELOG.md | 2 +- .../lib/active_storage/gem_version.rb | 4 +- activestorage/package.json | 2 +- activesupport/CHANGELOG.md | 2 +- .../lib/active_support/deprecation.rb | 2 +- .../lib/active_support/gem_version.rb | 4 +- guides/CHANGELOG.md | 2 +- guides/source/8_0_release_notes.md | 331 ++++++++++++++++++ guides/source/_welcome.html.erb | 2 +- guides/source/active_record_basics.md | 2 +- .../active_record_composite_primary_keys.md | 2 +- guides/source/active_record_migrations.md | 42 +-- guides/source/command_line.md | 6 +- .../source/contributing_to_ruby_on_rails.md | 2 +- guides/source/debugging_rails_applications.md | 16 +- guides/source/documents.yaml | 5 + guides/source/getting_started.md | 6 +- .../getting_started_with_devcontainer.md | 2 +- guides/source/maintenance_policy.md | 6 +- guides/source/upgrading_ruby_on_rails.md | 7 +- railties/CHANGELOG.md | 2 +- .../lib/rails/application/configuration.rb | 2 + railties/lib/rails/gem_version.rb | 4 +- .../new_framework_defaults_7_2.rb.tt | 68 ---- .../new_framework_defaults_8_0.rb.tt | 10 + tools/preview_docs.rb | 2 - version.rb | 4 +- 58 files changed, 522 insertions(+), 236 deletions(-) create mode 100644 guides/source/8_0_release_notes.md delete mode 100644 railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt create mode 100644 railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt diff --git a/.github/stale.yml b/.github/stale.yml index 5d3f6f2450..afd070dc84 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -20,7 +20,7 @@ markComment: > The resources of the Rails team are limited, and so we are asking for your help. - If you can still reproduce this error on the `7-1-stable` branch or on `main`, + If you can still reproduce this error on the `7-2-stable` branch or on `main`, please reply with all of the information you have about it in order to keep the issue open. Thank you for all your contributions. diff --git a/Gemfile.lock b/Gemfile.lock index dc3e85540f..f293a00c4f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,29 +27,29 @@ GIT PATH remote: . specs: - actioncable (7.2.0.alpha) - actionpack (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + actioncable (8.0.0.alpha) + actionpack (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.0.alpha) - actionpack (= 7.2.0.alpha) - activejob (= 7.2.0.alpha) - activerecord (= 7.2.0.alpha) - activestorage (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + actionmailbox (8.0.0.alpha) + actionpack (= 8.0.0.alpha) + activejob (= 8.0.0.alpha) + activerecord (= 8.0.0.alpha) + activestorage (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) mail (>= 2.8.0) - actionmailer (7.2.0.alpha) - actionpack (= 7.2.0.alpha) - actionview (= 7.2.0.alpha) - activejob (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + actionmailer (8.0.0.alpha) + actionpack (= 8.0.0.alpha) + actionview (= 8.0.0.alpha) + activejob (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.0.alpha) - actionview (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + actionpack (8.0.0.alpha) + actionview (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) nokogiri (>= 1.8.5) racc rack (>= 2.2.4) @@ -58,35 +58,35 @@ PATH rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.0.alpha) - actionpack (= 7.2.0.alpha) - activerecord (= 7.2.0.alpha) - activestorage (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + actiontext (8.0.0.alpha) + actionpack (= 8.0.0.alpha) + activerecord (= 8.0.0.alpha) + activestorage (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.0.alpha) - activesupport (= 7.2.0.alpha) + actionview (8.0.0.alpha) + activesupport (= 8.0.0.alpha) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.0.alpha) - activesupport (= 7.2.0.alpha) + activejob (8.0.0.alpha) + activesupport (= 8.0.0.alpha) globalid (>= 0.3.6) - activemodel (7.2.0.alpha) - activesupport (= 7.2.0.alpha) - activerecord (7.2.0.alpha) - activemodel (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + activemodel (8.0.0.alpha) + activesupport (= 8.0.0.alpha) + activerecord (8.0.0.alpha) + activemodel (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) timeout (>= 0.4.0) - activestorage (7.2.0.alpha) - actionpack (= 7.2.0.alpha) - activejob (= 7.2.0.alpha) - activerecord (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + activestorage (8.0.0.alpha) + actionpack (= 8.0.0.alpha) + activejob (= 8.0.0.alpha) + activerecord (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) marcel (~> 1.0) - activesupport (7.2.0.alpha) + activesupport (8.0.0.alpha) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -95,23 +95,23 @@ PATH i18n (>= 1.6, < 2) minitest (>= 5.1, < 5.22.0) tzinfo (~> 2.0, >= 2.0.5) - rails (7.2.0.alpha) - actioncable (= 7.2.0.alpha) - actionmailbox (= 7.2.0.alpha) - actionmailer (= 7.2.0.alpha) - actionpack (= 7.2.0.alpha) - actiontext (= 7.2.0.alpha) - actionview (= 7.2.0.alpha) - activejob (= 7.2.0.alpha) - activemodel (= 7.2.0.alpha) - activerecord (= 7.2.0.alpha) - activestorage (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + rails (8.0.0.alpha) + actioncable (= 8.0.0.alpha) + actionmailbox (= 8.0.0.alpha) + actionmailer (= 8.0.0.alpha) + actionpack (= 8.0.0.alpha) + actiontext (= 8.0.0.alpha) + actionview (= 8.0.0.alpha) + activejob (= 8.0.0.alpha) + activemodel (= 8.0.0.alpha) + activerecord (= 8.0.0.alpha) + activestorage (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) bundler (>= 1.15.0) - railties (= 7.2.0.alpha) - railties (7.2.0.alpha) - actionpack (= 7.2.0.alpha) - activesupport (= 7.2.0.alpha) + railties (= 8.0.0.alpha) + railties (8.0.0.alpha) + actionpack (= 8.0.0.alpha) + activesupport (= 8.0.0.alpha) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) diff --git a/RAILS_VERSION b/RAILS_VERSION index 2031da2af5..66cac3478e 100644 --- a/RAILS_VERSION +++ b/RAILS_VERSION @@ -1 +1 @@ -7.2.0.alpha +8.0.0.alpha diff --git a/actioncable/CHANGELOG.md b/actioncable/CHANGELOG.md index d3b900ecaa..b300c38897 100644 --- a/actioncable/CHANGELOG.md +++ b/actioncable/CHANGELOG.md @@ -18,4 +18,4 @@ *Sebastian Pöll*, *Junichi Sato* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actioncable/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actioncable/CHANGELOG.md) for previous changes. diff --git a/actioncable/lib/action_cable/gem_version.rb b/actioncable/lib/action_cable/gem_version.rb index 81936ff7db..5fd66142c6 100644 --- a/actioncable/lib/action_cable/gem_version.rb +++ b/actioncable/lib/action_cable/gem_version.rb @@ -9,8 +9,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/actioncable/package.json b/actioncable/package.json index 6354cd5431..d70ddb64b4 100644 --- a/actioncable/package.json +++ b/actioncable/package.json @@ -1,6 +1,6 @@ { "name": "@rails/actioncable", - "version": "7.2.0-alpha", + "version": "8.0.0-alpha", "description": "WebSocket framework for Ruby on Rails.", "module": "app/assets/javascripts/actioncable.esm.js", "main": "app/assets/javascripts/actioncable.js", diff --git a/actionmailbox/CHANGELOG.md b/actionmailbox/CHANGELOG.md index 7dd8c87b17..ce7c62aa93 100644 --- a/actionmailbox/CHANGELOG.md +++ b/actionmailbox/CHANGELOG.md @@ -3,4 +3,4 @@ *Chedli Bourguiba* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actionmailbox/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actionmailbox/CHANGELOG.md) for previous changes. diff --git a/actionmailbox/lib/action_mailbox/gem_version.rb b/actionmailbox/lib/action_mailbox/gem_version.rb index c3151ec7f4..5fd40aa515 100644 --- a/actionmailbox/lib/action_mailbox/gem_version.rb +++ b/actionmailbox/lib/action_mailbox/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/actionmailbox/test/dummy/db/schema.rb b/actionmailbox/test/dummy/db/schema.rb index 34b275b341..b9c8869d90 100644 --- a/actionmailbox/test/dummy/db/schema.rb +++ b/actionmailbox/test/dummy/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2018_02_12_164506) do +ActiveRecord::Schema[8.0].define(version: 2018_02_12_164506) do create_table "action_mailbox_inbound_emails", force: :cascade do |t| t.integer "status", default: 0, null: false t.string "message_id", null: false diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md index a8133845c5..44c7434cad 100644 --- a/actionmailer/CHANGELOG.md +++ b/actionmailer/CHANGELOG.md @@ -6,4 +6,4 @@ *Rafael Mendonça França* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actionmailer/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md) for previous changes. diff --git a/actionmailer/lib/action_mailer/gem_version.rb b/actionmailer/lib/action_mailer/gem_version.rb index a891c030b8..7174a45c33 100644 --- a/actionmailer/lib/action_mailer/gem_version.rb +++ b/actionmailer/lib/action_mailer/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index c1e437a880..a07f6025e9 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -132,4 +132,4 @@ *Roque Pinel*, *Trevor Turk*, *tonytonyjan* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actionpack/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actionpack/CHANGELOG.md) for previous changes. diff --git a/actionpack/lib/action_pack/gem_version.rb b/actionpack/lib/action_pack/gem_version.rb index 7d5795dc78..c38ae89b54 100644 --- a/actionpack/lib/action_pack/gem_version.rb +++ b/actionpack/lib/action_pack/gem_version.rb @@ -9,8 +9,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/actiontext/CHANGELOG.md b/actiontext/CHANGELOG.md index ec450cbbae..f4e3c5e204 100644 --- a/actiontext/CHANGELOG.md +++ b/actiontext/CHANGELOG.md @@ -40,4 +40,4 @@ *Hartley McGuire* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actiontext/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actiontext/CHANGELOG.md) for previous changes. diff --git a/actiontext/lib/action_text/gem_version.rb b/actiontext/lib/action_text/gem_version.rb index a8abda723e..cc76a9f414 100644 --- a/actiontext/lib/action_text/gem_version.rb +++ b/actiontext/lib/action_text/gem_version.rb @@ -9,8 +9,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/actiontext/package.json b/actiontext/package.json index 49752ab02c..eb6af4e5a9 100644 --- a/actiontext/package.json +++ b/actiontext/package.json @@ -1,6 +1,6 @@ { "name": "@rails/actiontext", - "version": "7.2.0-alpha", + "version": "8.0.0-alpha", "description": "Edit and display rich text in Rails applications", "module": "app/assets/javascripts/actiontext.esm.js", "main": "app/assets/javascripts/actiontext.js", diff --git a/actiontext/test/dummy/db/schema.rb b/actiontext/test/dummy/db/schema.rb index 00cdb967b0..d1646dbe27 100644 --- a/actiontext/test/dummy/db/schema.rb +++ b/actiontext/test/dummy/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2019_03_17_200724) do +ActiveRecord::Schema[8.0].define(version: 2019_03_17_200724) do create_table "action_text_rich_texts", force: :cascade do |t| t.string "name", null: false t.text "body" diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md index 6ea40856e0..84659d5596 100644 --- a/actionview/CHANGELOG.md +++ b/actionview/CHANGELOG.md @@ -94,4 +94,4 @@ *Akhil G Krishnan* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actionview/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actionview/CHANGELOG.md) for previous changes. diff --git a/actionview/lib/action_view/gem_version.rb b/actionview/lib/action_view/gem_version.rb index d7b711cf74..b084d0f0d5 100644 --- a/actionview/lib/action_view/gem_version.rb +++ b/actionview/lib/action_view/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/activejob/CHANGELOG.md b/activejob/CHANGELOG.md index b83ecfecb2..0600f443ac 100644 --- a/activejob/CHANGELOG.md +++ b/activejob/CHANGELOG.md @@ -62,4 +62,4 @@ *Rafael Mendonça França* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/activejob/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/activejob/CHANGELOG.md) for previous changes. diff --git a/activejob/lib/active_job/gem_version.rb b/activejob/lib/active_job/gem_version.rb index ef81c3ee0b..ac5bbf3306 100644 --- a/activejob/lib/active_job/gem_version.rb +++ b/activejob/lib/active_job/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md index 458f4045e4..a98f072fde 100644 --- a/activemodel/CHANGELOG.md +++ b/activemodel/CHANGELOG.md @@ -19,4 +19,4 @@ *Jonathan Hefner* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/activemodel/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/activemodel/CHANGELOG.md) for previous changes. diff --git a/activemodel/lib/active_model/gem_version.rb b/activemodel/lib/active_model/gem_version.rb index d1d8f256d1..4d6ea2d3a8 100644 --- a/activemodel/lib/active_model/gem_version.rb +++ b/activemodel/lib/active_model/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 8fe4f0d86a..8e393d8c7d 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -815,4 +815,4 @@ *Myles Boone* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/activerecord/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/activerecord/CHANGELOG.md) for previous changes. diff --git a/activerecord/README.rdoc b/activerecord/README.rdoc index 4fe0b029e3..712f9edac0 100644 --- a/activerecord/README.rdoc +++ b/activerecord/README.rdoc @@ -139,7 +139,7 @@ A short rundown of some of the major features: * Database agnostic schema management with Migrations. - class AddSystemSettings < ActiveRecord::Migration[7.2] + class AddSystemSettings < ActiveRecord::Migration[8.0] def up create_table :system_settings do |t| t.string :name diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 169a0e8a46..1a353e2c8c 100644 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -1928,7 +1928,7 @@ def belongs_to(name, scope = nil, **options) # The join table should not have a primary key or a model associated with it. You must manually generate the # join table with a migration such as this: # - # class CreateDevelopersProjectsJoinTable < ActiveRecord::Migration[7.2] + # class CreateDevelopersProjectsJoinTable < ActiveRecord::Migration[8.0] # def change # create_join_table :developers, :projects # end diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb index 15f06d2419..6bfabaaa09 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb @@ -348,7 +348,7 @@ def #{column_type}(*names, **options) # Inside migration files, the +t+ object in {create_table}[rdoc-ref:SchemaStatements#create_table] # is actually of this type: # - # class SomeMigration < ActiveRecord::Migration[7.2] + # class SomeMigration < ActiveRecord::Migration[8.0] # def up # create_table :foo do |t| # puts t.class # => "ActiveRecord::ConnectionAdapters::TableDefinition" diff --git a/activerecord/lib/active_record/gem_version.rb b/activerecord/lib/active_record/gem_version.rb index 669a6d2b28..8916a75b3e 100644 --- a/activerecord/lib/active_record/gem_version.rb +++ b/activerecord/lib/active_record/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb index 4387fb9489..5f0fb5943e 100644 --- a/activerecord/lib/active_record/migration.rb +++ b/activerecord/lib/active_record/migration.rb @@ -21,7 +21,7 @@ def initialize(message = nil) # For example the following migration is not reversible. # Rolling back this migration will raise an ActiveRecord::IrreversibleMigration error. # - # class IrreversibleMigrationExample < ActiveRecord::Migration[7.2] + # class IrreversibleMigrationExample < ActiveRecord::Migration[8.0] # def change # create_table :distributors do |t| # t.string :zipcode @@ -39,7 +39,7 @@ def initialize(message = nil) # # 1. Define #up and #down methods instead of #change: # - # class ReversibleMigrationExample < ActiveRecord::Migration[7.2] + # class ReversibleMigrationExample < ActiveRecord::Migration[8.0] # def up # create_table :distributors do |t| # t.string :zipcode @@ -64,7 +64,7 @@ def initialize(message = nil) # # 2. Use the #reversible method in #change method: # - # class ReversibleMigrationExample < ActiveRecord::Migration[7.2] + # class ReversibleMigrationExample < ActiveRecord::Migration[8.0] # def change # create_table :distributors do |t| # t.string :zipcode @@ -250,7 +250,7 @@ def initialize # # Example of a simple migration: # - # class AddSsl < ActiveRecord::Migration[7.2] + # class AddSsl < ActiveRecord::Migration[8.0] # def up # add_column :accounts, :ssl_enabled, :boolean, default: true # end @@ -270,7 +270,7 @@ def initialize # # Example of a more complex migration that also needs to initialize data: # - # class AddSystemSettings < ActiveRecord::Migration[7.2] + # class AddSystemSettings < ActiveRecord::Migration[8.0] # def up # create_table :system_settings do |t| # t.string :name @@ -399,7 +399,7 @@ def initialize # $ bin/rails generate migration add_fieldname_to_tablename fieldname:string # # This will generate the file timestamp_add_fieldname_to_tablename.rb, which will look like this: - # class AddFieldnameToTablename < ActiveRecord::Migration[7.2] + # class AddFieldnameToTablename < ActiveRecord::Migration[8.0] # def change # add_column :tablenames, :fieldname, :string # end @@ -425,7 +425,7 @@ def initialize # # Not all migrations change the schema. Some just fix the data: # - # class RemoveEmptyTags < ActiveRecord::Migration[7.2] + # class RemoveEmptyTags < ActiveRecord::Migration[8.0] # def up # Tag.all.each { |tag| tag.destroy if tag.pages.empty? } # end @@ -438,7 +438,7 @@ def initialize # # Others remove columns when they migrate up instead of down: # - # class RemoveUnnecessaryItemAttributes < ActiveRecord::Migration[7.2] + # class RemoveUnnecessaryItemAttributes < ActiveRecord::Migration[8.0] # def up # remove_column :items, :incomplete_items_count # remove_column :items, :completed_items_count @@ -452,7 +452,7 @@ def initialize # # And sometimes you need to do something in SQL not abstracted directly by migrations: # - # class MakeJoinUnique < ActiveRecord::Migration[7.2] + # class MakeJoinUnique < ActiveRecord::Migration[8.0] # def up # execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`)" # end @@ -469,7 +469,7 @@ def initialize # Base#reset_column_information in order to ensure that the model has the # latest column data from after the new column was added. Example: # - # class AddPeopleSalary < ActiveRecord::Migration[7.2] + # class AddPeopleSalary < ActiveRecord::Migration[8.0] # def up # add_column :people, :salary, :integer # Person.reset_column_information @@ -531,7 +531,7 @@ def initialize # To define a reversible migration, define the +change+ method in your # migration like this: # - # class TenderloveMigration < ActiveRecord::Migration[7.2] + # class TenderloveMigration < ActiveRecord::Migration[8.0] # def change # create_table(:horses) do |t| # t.column :content, :text @@ -561,7 +561,7 @@ def initialize # can't execute inside a transaction though, and for these situations # you can turn the automatic transactions off. # - # class ChangeEnum < ActiveRecord::Migration[7.2] + # class ChangeEnum < ActiveRecord::Migration[8.0] # disable_ddl_transaction! # # def up @@ -822,7 +822,7 @@ def execution_strategy # and create the table 'apples' on the way up, and the reverse # on the way down. # - # class FixTLMigration < ActiveRecord::Migration[7.2] + # class FixTLMigration < ActiveRecord::Migration[8.0] # def change # revert do # create_table(:horses) do |t| @@ -841,7 +841,7 @@ def execution_strategy # # require_relative "20121212123456_tenderlove_migration" # - # class FixupTLMigration < ActiveRecord::Migration[7.2] + # class FixupTLMigration < ActiveRecord::Migration[8.0] # def change # revert TenderloveMigration # @@ -892,7 +892,7 @@ def down # when the three columns 'first_name', 'last_name' and 'full_name' exist, # even when migrating down: # - # class SplitNameMigration < ActiveRecord::Migration[7.2] + # class SplitNameMigration < ActiveRecord::Migration[8.0] # def change # add_column :users, :first_name, :string # add_column :users, :last_name, :string @@ -920,7 +920,7 @@ def reversible # In the following example, the new column +published+ will be given # the value +true+ for all existing records. # - # class AddPublishedToPosts < ActiveRecord::Migration[7.2] + # class AddPublishedToPosts < ActiveRecord::Migration[8.0] # def change # add_column :posts, :published, :boolean, default: false # up_only do diff --git a/activerecord/lib/active_record/migration/compatibility.rb b/activerecord/lib/active_record/migration/compatibility.rb index e82062cb3c..994aeb81b7 100644 --- a/activerecord/lib/active_record/migration/compatibility.rb +++ b/activerecord/lib/active_record/migration/compatibility.rb @@ -21,7 +21,7 @@ def self.find(version) # New migration functionality that will never be backward compatible should be added directly to `ActiveRecord::Migration`. # # There are classes for each prior Rails version. Each class descends from the *next* Rails version, so: - # 5.2 < 6.0 < 6.1 < 7.0 < 7.1 < 7.2 + # 5.2 < 6.0 < 6.1 < 7.0 < 7.1 < 7.2 < 8.0 # # If you are introducing new migration functionality that should only apply from Rails 7 onward, then you should # find the class that immediately precedes it (6.1), and override the relevant migration methods to undo your changes. @@ -29,7 +29,10 @@ def self.find(version) # For example, Rails 6 added a default value for the `precision` option on datetime columns. So in this file, the `V5_2` # class sets the value of `precision` to `nil` if it's not explicitly provided. This way, the default value will not apply # for migrations written for 5.2, but will for migrations written for 6.0. - V7_2 = Current + V8_0 = Current + + class V7_2 < V8_0 + end class V7_1 < V7_2 end diff --git a/activerecord/lib/active_record/model_schema.rb b/activerecord/lib/active_record/model_schema.rb index 782290d51d..8a42bdaf2f 100644 --- a/activerecord/lib/active_record/model_schema.rb +++ b/activerecord/lib/active_record/model_schema.rb @@ -503,7 +503,7 @@ def content_columns # when just after creating a table you want to populate it with some default # values, e.g.: # - # class CreateJobLevels < ActiveRecord::Migration[7.2] + # class CreateJobLevels < ActiveRecord::Migration[8.0] # def up # create_table :job_levels do |t| # t.integer :id diff --git a/activestorage/CHANGELOG.md b/activestorage/CHANGELOG.md index bef99ace6c..1b1af4be2c 100644 --- a/activestorage/CHANGELOG.md +++ b/activestorage/CHANGELOG.md @@ -71,4 +71,4 @@ *Yogesh Khater* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/activestorage/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/activestorage/CHANGELOG.md) for previous changes. diff --git a/activestorage/lib/active_storage/gem_version.rb b/activestorage/lib/active_storage/gem_version.rb index 1728ca1086..01b7ef084a 100644 --- a/activestorage/lib/active_storage/gem_version.rb +++ b/activestorage/lib/active_storage/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/activestorage/package.json b/activestorage/package.json index f29b199ec3..6a856f7234 100644 --- a/activestorage/package.json +++ b/activestorage/package.json @@ -1,6 +1,6 @@ { "name": "@rails/activestorage", - "version": "7.2.0-alpha", + "version": "8.0.0-alpha", "description": "Attach cloud and local files in Rails applications", "module": "app/assets/javascripts/activestorage.esm.js", "main": "app/assets/javascripts/activestorage.js", diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index bca8184f63..ce46e13b23 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -230,4 +230,4 @@ *fatkodima* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/activesupport/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/activesupport/CHANGELOG.md) for previous changes. diff --git a/activesupport/lib/active_support/deprecation.rb b/activesupport/lib/active_support/deprecation.rb index 351621af61..1358d915ec 100644 --- a/activesupport/lib/active_support/deprecation.rb +++ b/activesupport/lib/active_support/deprecation.rb @@ -68,7 +68,7 @@ def self._instance # :nodoc: # and the second is a library name. # # ActiveSupport::Deprecation.new('2.0', 'MyLibrary') - def initialize(deprecation_horizon = "7.3", gem_name = "Rails") + def initialize(deprecation_horizon = "8.1", gem_name = "Rails") self.gem_name = gem_name self.deprecation_horizon = deprecation_horizon # By default, warnings are not silenced and debugging is off. diff --git a/activesupport/lib/active_support/gem_version.rb b/activesupport/lib/active_support/gem_version.rb index eada318028..a15a8fded8 100644 --- a/activesupport/lib/active_support/gem_version.rb +++ b/activesupport/lib/active_support/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/guides/CHANGELOG.md b/guides/CHANGELOG.md index f85e179b8b..e6cf4fb312 100644 --- a/guides/CHANGELOG.md +++ b/guides/CHANGELOG.md @@ -1,2 +1,2 @@ -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/guides/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/guides/CHANGELOG.md) for previous changes. diff --git a/guides/source/8_0_release_notes.md b/guides/source/8_0_release_notes.md new file mode 100644 index 0000000000..53cbdab131 --- /dev/null +++ b/guides/source/8_0_release_notes.md @@ -0,0 +1,331 @@ +**DO NOT READ THIS FILE ON GITHUB, GUIDES ARE PUBLISHED ON https://guides.rubyonrails.org.** + +Ruby on Rails 8.0 Release Notes +=============================== + +Highlights in Rails 8.0: + +-------------------------------------------------------------------------------- + +Upgrading to Rails 8.0 +---------------------- + +If you're upgrading an existing application, it's a great idea to have good test +coverage before going in. You should also first upgrade to Rails 7.1 in case you +haven't and make sure your application still runs as expected before attempting +an update to Rails 8.0. A list of things to watch out for when upgrading is +available in the +[Upgrading Ruby on Rails](upgrading_ruby_on_rails.html#upgrading-from-rails-7-2-to-rails-8-0) +guide. + +Major Features +-------------- + +Railties +-------- + +Please refer to the [Changelog][railties] for detailed changes. + +### Removals + +* Remove deprecated `Rails::Generators::Testing::Behaviour`. + +* Remove deprecated `Rails.application.secrets`. + +* Remove deprecated `Rails.config.enable_dependency_loading`. + +* Remove deprecated `find_cmd_and_exec` console helper. + +### Deprecations + +### Notable changes + +Action Cable +------------ + +Please refer to the [Changelog][action-cable] for detailed changes. + +### Removals + +### Deprecations + +### Notable changes + +Action Pack +----------- + +Please refer to the [Changelog][action-pack] for detailed changes. + +### Removals + +* Remove deprecated constant `ActionDispatch::IllegalStateError`. + +* Remove deprecated constant `AbstractController::Helpers::MissingHelperError`. + +* Remove deprecated comparison between `ActionController::Parameters` and `Hash`. + +* Remove deprecated `Rails.application.config.action_dispatch.return_only_request_media_type_on_content_type`. + +* Remove deprecated `speaker`, `vibrate`, and `vr` permissions policy directives. + +* Remove deprecated support to set `Rails.application.config.action_dispatch.show_exceptions` to `true` and `false`. + +### Deprecations + +* Deprecate `Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality`. + +### Notable changes + +Action View +----------- + +Please refer to the [Changelog][action-view] for detailed changes. + +### Removals + +* Remove deprecated `@rails/ujs` in favor of `Turbo`. + +### Deprecations + +* Deprecate passing content to void elements when using `tag.br` type tag builders. + +### Notable changes + +Action Mailer +------------- + +Please refer to the [Changelog][action-mailer] for detailed changes. + +### Removals + +* Remove deprecated `config.action_mailer.preview_path`. + +* Remove deprecated params via `:args` for `assert_enqueued_email_with`. + +### Deprecations + +### Notable changes + +Active Record +------------- + +Please refer to the [Changelog][active-record] for detailed changes. + +### Removals + +* Remove deprecated `Rails.application.config.active_record.suppress_multiple_database_warning`. + +* Remove deprecated support to call `alias_attribute` with non-existent attribute names. + +* Remove deprecated `name` argument from `ActiveRecord::Base.remove_connection`. + +* Remove deprecated `ActiveRecord::Base.clear_active_connections!`. + +* Remove deprecated `ActiveRecord::Base.clear_reloadable_connections!`. + +* Remove deprecated `ActiveRecord::Base.clear_all_connections!`. + +* Remove deprecated `ActiveRecord::Base.flush_idle_connections!`. + +* Remove deprecated `ActiveRecord::ActiveJobRequiredError`. + +* Remove deprecated support to define `explain` in the connection adapter with 2 arguments. + +* Remove deprecated `ActiveRecord::LogSubscriber.runtime` method. + +* Remove deprecated `ActiveRecord::LogSubscriber.runtime=` method. + +* Remove deprecated `ActiveRecord::LogSubscriber.reset_runtime` method. + +* Remove deprecated `ActiveRecord::Migration.check_pending` method. + +* Remove deprecated support to passing `SchemaMigration` and `InternalMetadata` classes as arguments to + `ActiveRecord::MigrationContext`. + +* Remove deprecated behavior to support referring to a singular association by its plural name. + +* Remove deprecated `TestFixtures.fixture_path`. + +* Remove deprecated support to `ActiveRecord::Base#read_attribute(:id)` to return the custom primary key value. + +* Remove deprecated support to passing coder and class as second argument to `serialize`. + +* Remove deprecated `#all_foreign_keys_valid?` from database adapters. + +* Remove deprecated `ActiveRecord::ConnectionAdapters::SchemaCache.load_from`. + +* Remove deprecated `ActiveRecord::ConnectionAdapters::SchemaCache#data_sources`. + +* Remove deprecated `#all_connection_pools`. + +* Remove deprecated support to apply `#connection_pool_list`, `#active_connections?`, `#clear_active_connections!`, + `#clear_reloadable_connections!`, `#clear_all_connections!` and `#flush_idle_connections!` to the connections pools + for the current role when the `role` argument isn't provided. + +* Remove deprecated `ActiveRecord::ConnectionAdapters::ConnectionPool#connection_klass`. + +* Remove deprecated `#quote_bound_value`. + +* Remove deprecated support to quote `ActiveSupport::Duration`. + +* Remove deprecated support to pass `deferrable: true` to `add_foreign_key`. + +* Remove deprecated support to pass `rewhere` to `ActiveRecord::Relation#merge`. + +* Remove deprecated behavior that would rollback a transaction block when exited using `return`, `break` or `throw`. + +### Deprecations + +* Deprecate `Rails.application.config.active_record.allow_deprecated_singular_associations_name` + +* Deprecate `Rails.application.config.active_record.commit_transaction_on_non_local_return` + +### Notable changes + +Active Storage +-------------- + +Please refer to the [Changelog][active-storage] for detailed changes. + +### Removals + +* Remove deprecated `config.active_storage.replace_on_assign_to_many`. + +* Remove deprecated `config.active_storage.silence_invalid_content_types_warning`. + +### Deprecations + +### Notable changes + +Active Model +------------ + +Please refer to the [Changelog][active-model] for detailed changes. + +### Removals + +### Deprecations + +### Notable changes + +Active Support +-------------- + +Please refer to the [Changelog][active-support] for detailed changes. + +### Removals + +* Remove deprecated `ActiveSupport::Notifications::Event#children` and `ActiveSupport::Notifications::Event#parent_of?`. + +* Remove deprecated support to call the following methods without passing a deprecator: + + - `deprecate` + - `deprecate_constant` + - `ActiveSupport::Deprecation::DeprecatedObjectProxy.new` + - `ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new` + - `ActiveSupport::Deprecation::DeprecatedConstantProxy.new` + - `assert_deprecated` + - `assert_not_deprecated` + - `collect_deprecations` + +* Remove deprecated `ActiveSupport::Deprecation` delegation to instance. + +* Remove deprecated `SafeBuffer#clone_empty`. + +* Remove deprecated `#to_default_s` from `Array`, `Date`, `DateTime` and `Time`. + +* Remove deprecated `:pool_size` and `:pool_timeout` options for the cache storage. + +* Remove deprecated support for `config.active_support.cache_format_version = 6.1`. + +* Remove deprecated constants `ActiveSupport::LogSubscriber::CLEAR` and `ActiveSupport::LogSubscriber::BOLD`. + +* Remove deprecated support to bolding log text with positional boolean in `ActiveSupport::LogSubscriber#color`. + +* Remove deprecated `config.active_support.disable_to_s_conversion`. + +* Remove deprecated `config.active_support.remove_deprecated_time_with_zone_name`. + +* Remove deprecated `config.active_support.use_rfc4122_namespaced_uuids`. + +* Remove deprecated support to passing `Dalli::Client` instances to `MemCacheStore`. + +* Remove deprecated support for the pre-Ruby 2.4 behavior of `to_time` returning a `Time` object with local timezone. + +### Deprecations + +* Deprecate `config.active_support.to_time_preserves_timezone`. + +* Deprecate `DateAndTime::Compatibility.preserve_timezone`. + +### Notable changes + +Active Job +---------- + +Please refer to the [Changelog][active-job] for detailed changes. + +### Removals + +* Remove deprecated primitive serializer for `BigDecimal` arguments. + +* Remove deprecated support to set numeric values to `scheduled_at` attribute. + +* Remove deprecated `:exponentially_longer` value for the `:wait` in `retry_on`. + +### Deprecations + +* Deprecate `Rails.application.config.active_job.use_big_decimal_serialize`. + +### Notable changes + +Action Text +---------- + +Please refer to the [Changelog][action-text] for detailed changes. + +### Removals + +### Deprecations + +### Notable changes + +Action Mailbox +---------- + +Please refer to the [Changelog][action-mailbox] for detailed changes. + +### Removals + +### Deprecations + +### Notable changes + +Ruby on Rails Guides +-------------------- + +Please refer to the [Changelog][guides] for detailed changes. + +### Notable changes + +Credits +------- + +See the +[full list of contributors to Rails](https://contributors.rubyonrails.org/) +for the many people who spent many hours making Rails, the stable and robust +framework it is. Kudos to all of them. + +[railties]: https://github.com/rails/rails/blob/main/railties/CHANGELOG.md +[action-pack]: https://github.com/rails/rails/blob/main/actionpack/CHANGELOG.md +[action-view]: https://github.com/rails/rails/blob/main/actionview/CHANGELOG.md +[action-mailer]: https://github.com/rails/rails/blob/main/actionmailer/CHANGELOG.md +[action-cable]: https://github.com/rails/rails/blob/main/actioncable/CHANGELOG.md +[active-record]: https://github.com/rails/rails/blob/main/activerecord/CHANGELOG.md +[active-storage]: https://github.com/rails/rails/blob/main/activestorage/CHANGELOG.md +[active-model]: https://github.com/rails/rails/blob/main/activemodel/CHANGELOG.md +[active-support]: https://github.com/rails/rails/blob/main/activesupport/CHANGELOG.md +[active-job]: https://github.com/rails/rails/blob/main/activejob/CHANGELOG.md +[action-text]: https://github.com/rails/rails/blob/main/actiontext/CHANGELOG.md +[action-mailbox]: https://github.com/rails/rails/blob/main/actionmailbox/CHANGELOG.md +[guides]: https://github.com/rails/rails/blob/main/guides/CHANGELOG.md diff --git a/guides/source/_welcome.html.erb b/guides/source/_welcome.html.erb index 2a9d5490e7..91934c062c 100644 --- a/guides/source/_welcome.html.erb +++ b/guides/source/_welcome.html.erb @@ -10,7 +10,7 @@

<% else %>

- These are the new guides for Rails 7.2 based on <%= @version %>. + These are the new guides for Rails 8.0 based on <%= @version %>. These guides are designed to make you immediately productive with Rails, and to help you understand how all of the pieces fit together.

<% end %> diff --git a/guides/source/active_record_basics.md b/guides/source/active_record_basics.md index ef805ee45b..eaff985e21 100644 --- a/guides/source/active_record_basics.md +++ b/guides/source/active_record_basics.md @@ -645,7 +645,7 @@ files which are executed against any database that Active Record supports. Here's a migration that creates a new table called `publications`: ```ruby -class CreatePublications < ActiveRecord::Migration[7.2] +class CreatePublications < ActiveRecord::Migration[8.0] def change create_table :publications do |t| t.string :title diff --git a/guides/source/active_record_composite_primary_keys.md b/guides/source/active_record_composite_primary_keys.md index 1e09092c02..59b5453c2f 100644 --- a/guides/source/active_record_composite_primary_keys.md +++ b/guides/source/active_record_composite_primary_keys.md @@ -36,7 +36,7 @@ You can create a table with a composite primary key by passing the `:primary_key` option to `create_table` with an array value: ```ruby -class CreateProducts < ActiveRecord::Migration[7.2] +class CreateProducts < ActiveRecord::Migration[8.0] def change create_table :products, primary_key: [:store_id, :sku] do |t| t.integer :store_id diff --git a/guides/source/active_record_migrations.md b/guides/source/active_record_migrations.md index d01a8e2da2..36470cadcf 100644 --- a/guides/source/active_record_migrations.md +++ b/guides/source/active_record_migrations.md @@ -34,7 +34,7 @@ history to the latest version. Active Record will also update your Here's an example of a migration: ```ruby -class CreateProducts < ActiveRecord::Migration[7.2] +class CreateProducts < ActiveRecord::Migration[8.0] def change create_table :products do |t| t.string :name @@ -73,7 +73,7 @@ If you wish for a migration to do something that Active Record doesn't know how to reverse, you can use `reversible`: ```ruby -class ChangeProductsPrice < ActiveRecord::Migration[7.2] +class ChangeProductsPrice < ActiveRecord::Migration[8.0] def change reversible do |direction| change_table :products do |t| @@ -92,7 +92,7 @@ passed to `direction.up` and `direction.down` respectively. Alternatively, you can use `up` and `down` instead of `change`: ```ruby -class ChangeProductsPrice < ActiveRecord::Migration[7.2] +class ChangeProductsPrice < ActiveRecord::Migration[8.0] def up change_table :products do |t| t.change :price, :string @@ -136,7 +136,7 @@ $ bin/rails generate migration AddPartNumberToProducts This will create an appropriately named empty migration: ```ruby -class AddPartNumberToProducts < ActiveRecord::Migration[7.2] +class AddPartNumberToProducts < ActiveRecord::Migration[8.0] def change end end @@ -160,7 +160,7 @@ $ bin/rails generate migration AddPartNumberToProducts part_number:string This will generate the following migration: ```ruby -class AddPartNumberToProducts < ActiveRecord::Migration[7.2] +class AddPartNumberToProducts < ActiveRecord::Migration[8.0] def change add_column :products, :part_number, :string end @@ -176,7 +176,7 @@ $ bin/rails generate migration AddPartNumberToProducts part_number:string:index This will generate the appropriate [`add_column`][] and [`add_index`][] statements: ```ruby -class AddPartNumberToProducts < ActiveRecord::Migration[7.2] +class AddPartNumberToProducts < ActiveRecord::Migration[8.0] def change add_column :products, :part_number, :string add_index :products, :part_number @@ -194,7 +194,7 @@ Will generate a schema migration which adds two additional columns to the `products` table. ```ruby -class AddDetailsToProducts < ActiveRecord::Migration[7.2] +class AddDetailsToProducts < ActiveRecord::Migration[8.0] def change add_column :products, :part_number, :string add_column :products, :price, :decimal @@ -213,7 +213,7 @@ $ bin/rails generate migration RemovePartNumberFromProducts part_number:string This generates the appropriate [`remove_column`][] statements: ```ruby -class RemovePartNumberFromProducts < ActiveRecord::Migration[7.2] +class RemovePartNumberFromProducts < ActiveRecord::Migration[8.0] def change remove_column :products, :part_number, :string end @@ -233,7 +233,7 @@ $ bin/rails generate migration CreateProducts name:string part_number:string generates ```ruby -class CreateProducts < ActiveRecord::Migration[7.2] +class CreateProducts < ActiveRecord::Migration[8.0] def change create_table :products do |t| t.string :name @@ -261,7 +261,7 @@ $ bin/rails generate migration AddUserRefToProducts user:references generates the following [`add_reference`][] call: ```ruby -class AddUserRefToProducts < ActiveRecord::Migration[7.2] +class AddUserRefToProducts < ActiveRecord::Migration[8.0] def change add_reference :products, :user, foreign_key: true end @@ -281,7 +281,7 @@ $ bin/rails generate migration CreateJoinTableCustomerProduct customer product will produce the following migration: ```ruby -class CreateJoinTableCustomerProduct < ActiveRecord::Migration[7.2] +class CreateJoinTableCustomerProduct < ActiveRecord::Migration[8.0] def change create_join_table :customers, :products do |t| # t.index [:customer_id, :product_id] @@ -310,7 +310,7 @@ $ bin/rails generate model Product name:string description:text This will create a migration that looks like this: ```ruby -class CreateProducts < ActiveRecord::Migration[7.2] +class CreateProducts < ActiveRecord::Migration[8.0] def change create_table :products do |t| t.string :name @@ -338,7 +338,7 @@ $ bin/rails generate migration AddDetailsToProducts 'price:decimal{5,2}' supplie will produce a migration that looks like this ```ruby -class AddDetailsToProducts < ActiveRecord::Migration[7.2] +class AddDetailsToProducts < ActiveRecord::Migration[8.0] def change add_column :products, :price, :decimal, precision: 5, scale: 2 add_reference :products, :supplier, polymorphic: true @@ -635,7 +635,7 @@ You can create a table with a composite primary key by passing the `:primary_key` option to `create_table` with an array value: ```ruby -class CreateProducts < ActiveRecord::Migration[7.2] +class CreateProducts < ActiveRecord::Migration[8.0] def change create_table :products, primary_key: [:customer_id, :product_sku] do |t| t.integer :customer_id @@ -736,7 +736,7 @@ reverse. You can use [`reversible`][] to specify what to do when running a migration and what else to do when reverting it. For example: ```ruby -class ExampleMigration < ActiveRecord::Migration[7.2] +class ExampleMigration < ActiveRecord::Migration[8.0] def change create_table :distributors do |t| t.string :zipcode @@ -786,7 +786,7 @@ reverse order they were made in the `up` method. The example in the `reversible` section is equivalent to: ```ruby -class ExampleMigration < ActiveRecord::Migration[7.2] +class ExampleMigration < ActiveRecord::Migration[8.0] def up create_table :distributors do |t| t.string :zipcode @@ -832,7 +832,7 @@ You can use Active Record's ability to rollback migrations using the [`revert`][ ```ruby require_relative "20121212123456_example_migration" -class FixupExampleMigration < ActiveRecord::Migration[7.2] +class FixupExampleMigration < ActiveRecord::Migration[8.0] def change revert ExampleMigration @@ -850,7 +850,7 @@ For example, let's imagine that `ExampleMigration` is committed and it is later decided that a Distributors view is no longer needed. ```ruby -class DontUseDistributorsViewMigration < ActiveRecord::Migration[7.2] +class DontUseDistributorsViewMigration < ActiveRecord::Migration[8.0] def change revert do # copy-pasted code from ExampleMigration @@ -1048,7 +1048,7 @@ Several methods are provided in migrations that allow you to control all this: For example, take the following migration: ```ruby -class CreateProducts < ActiveRecord::Migration[7.2] +class CreateProducts < ActiveRecord::Migration[8.0] def change suppress_messages do create_table :products do |t| @@ -1153,7 +1153,7 @@ When `:ruby` is selected, then the schema is stored in `db/schema.rb`. If you lo at this file you'll find that it looks an awful lot like one very big migration: ```ruby -ActiveRecord::Schema[7.2].define(version: 2008_09_06_171750) do +ActiveRecord::Schema[8.0].define(version: 2008_09_06_171750) do create_table "authors", force: true do |t| t.string "name" t.datetime "created_at" @@ -1238,7 +1238,7 @@ modify data. This is useful in an existing database that can't be destroyed and recreated, such as a production database. ```ruby -class AddInitialProducts < ActiveRecord::Migration[7.2] +class AddInitialProducts < ActiveRecord::Migration[8.0] def up 5.times do |i| Product.create(name: "Product ##{i}", description: "A product.") diff --git a/guides/source/command_line.md b/guides/source/command_line.md index 59cc209c56..66cf7a1d0b 100644 --- a/guides/source/command_line.md +++ b/guides/source/command_line.md @@ -183,7 +183,7 @@ With no further work, `bin/rails server` will run our new shiny Rails app: $ cd my_app $ bin/rails server => Booting Puma -=> Rails 7.2.0 application starting in development +=> Rails 8.0.0 application starting in development => Run `bin/rails server --help` for more startup options Puma starting in single mode... * Puma version: 6.4.0 (ruby 3.1.3-p185) ("The Eagle of Durango") @@ -415,7 +415,7 @@ If you wish to test out some code without changing any data, you can do that by ```bash $ bin/rails console --sandbox -Loading development environment in sandbox (Rails 7.2.0) +Loading development environment in sandbox (Rails 8.0.0) Any modifications you make will be rolled back on exit irb(main):001:0> ``` @@ -512,7 +512,7 @@ $ bin/rails destroy model Oops ```bash $ bin/rails about About your application's environment -Rails version 7.2.0 +Rails version 8.0.0 Ruby version 3.1.0 (x86_64-linux) RubyGems version 3.3.7 Rack version 3.0.8 diff --git a/guides/source/contributing_to_ruby_on_rails.md b/guides/source/contributing_to_ruby_on_rails.md index 0aecac02b5..6f5ad4059b 100644 --- a/guides/source/contributing_to_ruby_on_rails.md +++ b/guides/source/contributing_to_ruby_on_rails.md @@ -599,7 +599,7 @@ To ease the upgrade it's required to add the new default to the value: ```ruby -# new_framework_defaults_7_2.rb.tt +# new_framework_defaults_8_0.rb.tt # Rails.application.config.active_job.existing_behavior = false ``` diff --git a/guides/source/debugging_rails_applications.md b/guides/source/debugging_rails_applications.md index eddbdf9bbf..bce675c83f 100644 --- a/guides/source/debugging_rails_applications.md +++ b/guides/source/debugging_rails_applications.md @@ -378,7 +378,7 @@ Processing by PostsController#index as HTML 10| # GET /posts/1 or /posts/1.json 11| def show =>#0 PostsController#index at ~/projects/rails-guide-example/app/controllers/posts_controller.rb:7 - #1 ActionController::BasicImplicitRender#send_action(method="index", args=[]) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-7.2.0.alpha/lib/action_controller/metal/basic_implicit_render.rb:6 + #1 ActionController::BasicImplicitRender#send_action(method="index", args=[]) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-8.0.0.alpha/lib/action_controller/metal/basic_implicit_render.rb:6 # and 72 frames (use `bt' command for all frames) (rdbg) ``` @@ -445,13 +445,13 @@ When used without any options, `backtrace` lists all the frames on the stack: ```rb =>#0 PostsController#index at ~/projects/rails-guide-example/app/controllers/posts_controller.rb:7 #1 ActionController::BasicImplicitRender#send_action(method="index", args=[]) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-2.0.alpha/lib/action_controller/metal/basic_implicit_render.rb:6 - #2 AbstractController::Base#process_action(method_name="index", args=[]) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-7.2.0.alpha/lib/abstract_controller/base.rb:214 - #3 ActionController::Rendering#process_action(#arg_rest=nil) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-7.2.0.alpha/lib/action_controller/metal/rendering.rb:53 - #4 block in process_action at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-7.2.0.alpha/lib/abstract_controller/callbacks.rb:221 - #5 block in run_callbacks at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/activesupport-7.2.0.alpha/lib/active_support/callbacks.rb:118 - #6 ActionText::Rendering::ClassMethods#with_renderer(renderer=#) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actiontext-7.2.0.alpha/lib/action_text/rendering.rb:20 - #7 block {|controller=#, action=# (4 levels) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actiontext-7.2.0.alpha/lib/action_text/engine.rb:69 - #8 [C] BasicObject#instance_exec at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/activesupport-7.2.0.alpha/lib/active_support/callbacks.rb:127 + #2 AbstractController::Base#process_action(method_name="index", args=[]) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-8.0.0.alpha/lib/abstract_controller/base.rb:214 + #3 ActionController::Rendering#process_action(#arg_rest=nil) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-8.0.0.alpha/lib/action_controller/metal/rendering.rb:53 + #4 block in process_action at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actionpack-8.0.0.alpha/lib/abstract_controller/callbacks.rb:221 + #5 block in run_callbacks at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/activesupport-8.0.0.alpha/lib/active_support/callbacks.rb:118 + #6 ActionText::Rendering::ClassMethods#with_renderer(renderer=#) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actiontext-8.0.0.alpha/lib/action_text/rendering.rb:20 + #7 block {|controller=#, action=# (4 levels) at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/actiontext-8.0.0.alpha/lib/action_text/engine.rb:69 + #8 [C] BasicObject#instance_exec at ~/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/activesupport-8.0.0.alpha/lib/active_support/callbacks.rb:127 ..... and more ``` diff --git a/guides/source/documents.yaml b/guides/source/documents.yaml index 3e29862b16..290cd636c3 100644 --- a/guides/source/documents.yaml +++ b/guides/source/documents.yaml @@ -326,6 +326,11 @@ description: > This guide provides steps to be followed when you upgrade your applications to a newer version of Ruby on Rails. + - + name: Version 8.0 - ? + url: 8_0_release_notes.html + description: Release notes for Rails 8.0. + work_in_progress: true - name: Version 7.2 - ? url: 7_2_release_notes.html diff --git a/guides/source/getting_started.md b/guides/source/getting_started.md index 7ad2cf6898..d197773f89 100644 --- a/guides/source/getting_started.md +++ b/guides/source/getting_started.md @@ -135,10 +135,10 @@ run the following in a new terminal: ```bash $ rails --version -Rails 7.2.0 +Rails 8.0.0 ``` -If it says something like "Rails 7.2.0", you are ready to continue. +If it says something like "Rails 8.0.0", you are ready to continue. ### Creating the Blog Application @@ -474,7 +474,7 @@ $ bin/rails console You should see an `irb` prompt like: ```irb -Loading development environment (Rails 7.2.0) +Loading development environment (Rails 8.0.0) irb(main):001:0> ``` diff --git a/guides/source/getting_started_with_devcontainer.md b/guides/source/getting_started_with_devcontainer.md index 137d678898..756d64f6b2 100644 --- a/guides/source/getting_started_with_devcontainer.md +++ b/guides/source/getting_started_with_devcontainer.md @@ -114,7 +114,7 @@ You can open the terminal within VScode to verify that Rails is installed: ```bash $ rails --version -Rails 7.2.0 +Rails 8.0.0 ``` You can now continue with the [Getting Started guide](getting_started.md#hello-rails) and diff --git a/guides/source/maintenance_policy.md b/guides/source/maintenance_policy.md index eada3b16c6..a4a831fb11 100644 --- a/guides/source/maintenance_policy.md +++ b/guides/source/maintenance_policy.md @@ -53,7 +53,7 @@ For unsupported series, bug fixes may coincidentally land in a stable branch, but won't be released in an official version. It is recommended to point your application at the stable branch using Git for unsupported versions. -**Currently included series:** `7.2.Z`. +**Currently included series:** `8.0.Z`. Security Issues --------------- @@ -78,7 +78,7 @@ there could be breaking changes in the security release. A security release should only contain the changes needed to ensure the app is secure so that it's easier for applications to remain upgraded. -**Currently included series:** `7.2.Z`, `7.1.Z`. +**Currently included series:** `8.0.Z`, `7.2.Z`. Severe Security Issues ---------------------- @@ -87,7 +87,7 @@ For severe security issues all releases in the current major series, and also th last release in the previous major series will receive patches and new versions. The classification of the security issue is judged by the core team. -**Currently included series:** `7.2.Z`, `7.1.Z`, `7.0.Z`, `6.1.Z`. +**Currently included series:** `8.0.Z`, `7.2.Z`. Unsupported Release Series -------------------------- diff --git a/guides/source/upgrading_ruby_on_rails.md b/guides/source/upgrading_ruby_on_rails.md index 95ca6d96ff..786bb74cf5 100644 --- a/guides/source/upgrading_ruby_on_rails.md +++ b/guides/source/upgrading_ruby_on_rails.md @@ -64,7 +64,7 @@ $ bin/rails app:update conflict config/application.rb Overwrite /myapp/config/application.rb? (enter "h" for help) [Ynaqdh] force config/application.rb - create config/initializers/new_framework_defaults_7_2.rb + create config/initializers/new_framework_defaults_8_0.rb ... ``` @@ -76,6 +76,11 @@ The new Rails version might have different configuration defaults than the previ To allow you to upgrade to new defaults one by one, the update task has created a file `config/initializers/new_framework_defaults_X.Y.rb` (with the desired Rails version in the filename). You should enable the new configuration defaults by uncommenting them in the file; this can be done gradually over several deployments. Once your application is ready to run with new defaults, you can remove this file and flip the `config.load_defaults` value. +Upgrading from Rails 7.2 to Rails 8.0 +------------------------------------- + +For more information on changes made to Rails 8.0 please see the [release notes](8_0_release_notes.html). + Upgrading from Rails 7.1 to Rails 7.2 ------------------------------------- diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 3fe505ca8d..1022772dcf 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -334,4 +334,4 @@ *Adrian Hirt* -Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/railties/CHANGELOG.md) for previous changes. +Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/railties/CHANGELOG.md) for previous changes. diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 8d87931b00..f97a267f07 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -330,6 +330,8 @@ def load_defaults(target_version) active_record.validate_migration_timestamps = true active_record.automatically_invert_plural_associations = true end + when "8.0" + load_defaults "7.2" else raise "Unknown version #{target_version.to_s.inspect}" end diff --git a/railties/lib/rails/gem_version.rb b/railties/lib/rails/gem_version.rb index 61a891d6b9..ebd7ee94d5 100644 --- a/railties/lib/rails/gem_version.rb +++ b/railties/lib/rails/gem_version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha" diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt deleted file mode 100644 index 48552491e9..0000000000 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt +++ /dev/null @@ -1,68 +0,0 @@ -# Be sure to restart your server when you modify this file. -# -# This file eases your Rails 7.2 framework defaults upgrade. -# -# Uncomment each configuration one by one to switch to the new default. -# Once your application is ready to run with all new defaults, you can remove -# this file and set the `config.load_defaults` to `7.2`. -# -# Read the Guide for Upgrading Ruby on Rails for more info on each option. -# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html - -### -# Controls whether Active Job's `#perform_later` and similar methods automatically defer -# the job queuing to after the current Active Record transaction is committed. -# -# Example: -# Topic.transaction do -# topic = Topic.create(...) -# NewTopicNotificationJob.perform_later(topic) -# end -# -# In this example, if the configuration is set to `:never`, the job will -# be enqueued immediately, even though the `Topic` hasn't been committed yet. -# Because of this, if the job is picked up almost immediately, or if the -# transaction doesn't succeed for some reason, the job will fail to find this -# topic in the database. -# -# If `enqueue_after_transaction_commit` is set to `:default`, the queue adapter -# will define the behaviour. -# -# Note: Active Job backends can disable this feature. This is generally done by -# backends that use the same database as Active Record as a queue, hence they -# don't need this feature. -#++ -# Rails.application.config.active_job.enqueue_after_transaction_commit = :default - -### -# Adds image/webp to the list of content types Active Storage considers as an image -# Prevents automatic conversion to a fallback PNG, and assumes clients support WebP, as they support gif, jpeg, and png. -# This is possible due to broad browser support for WebP, but older browsers and email clients may still not support -# WebP. Requires imagemagick/libvips built with WebP support. -#++ -# Rails.application.config.active_storage.web_image_content_types = %w[image/png image/jpeg image/gif image/webp] - -### -# Enable validation of migration timestamps. When set, an ActiveRecord::InvalidMigrationTimestampError -# will be raised if the timestamp prefix for a migration is more than a day ahead of the timestamp -# associated with the current time. This is done to prevent forward-dating of migration files, which can -# impact migration generation and other migration commands. -# -# Applications with existing timestamped migrations that do not adhere to the -# expected format can disable validation by setting this config to `false`. -#++ -# Rails.application.config.active_record.validate_migration_timestamps = true - -### -# Controls whether Active Record will automatically look for inverse relations -# with a pluralized name. -# -# Example: -# class Comment < ActiveRecord::Base -# belongs_to :post -# end -# -# In this example, Active Record will try to infer a `:comment` (singular) association -# on `Post`. With this option enabled, it will also look for a `:comments` association. -#++ -# Rails.application.config.active_record.automatically_invert_plural_associations = true diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt new file mode 100644 index 0000000000..d8e7757a25 --- /dev/null +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt @@ -0,0 +1,10 @@ +# Be sure to restart your server when you modify this file. +# +# This file eases your Rails 8.0 framework defaults upgrade. +# +# Uncomment each configuration one by one to switch to the new default. +# Once your application is ready to run with all new defaults, you can remove +# this file and set the `config.load_defaults` to `8.0`. +# +# Read the Guide for Upgrading Ruby on Rails for more info on each option. +# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html diff --git a/tools/preview_docs.rb b/tools/preview_docs.rb index ed7940277d..5eda30531b 100644 --- a/tools/preview_docs.rb +++ b/tools/preview_docs.rb @@ -3,8 +3,6 @@ require "erb" require "cgi" -puts "required tools/preview_docs" - # How to test: # # export BUILDKITE_COMMIT="c8b601a225" diff --git a/version.rb b/version.rb index 61a891d6b9..ebd7ee94d5 100644 --- a/version.rb +++ b/version.rb @@ -7,8 +7,8 @@ def self.gem_version end module VERSION - MAJOR = 7 - MINOR = 2 + MAJOR = 8 + MINOR = 0 TINY = 0 PRE = "alpha"