railties 7.1.3.2 → 7.2.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +175 -734
  3. data/lib/minitest/rails_plugin.rb +5 -2
  4. data/lib/rails/all.rb +1 -3
  5. data/lib/rails/api/task.rb +3 -2
  6. data/lib/rails/application/bootstrap.rb +5 -6
  7. data/lib/rails/application/configuration.rb +34 -39
  8. data/lib/rails/application/dummy_config.rb +2 -2
  9. data/lib/rails/application/finisher.rb +7 -0
  10. data/lib/rails/application.rb +7 -48
  11. data/lib/rails/backtrace_cleaner.rb +18 -3
  12. data/lib/rails/cli.rb +0 -1
  13. data/lib/rails/command.rb +1 -1
  14. data/lib/rails/commands/app/update_command.rb +86 -0
  15. data/lib/rails/commands/console/console_command.rb +2 -21
  16. data/lib/rails/commands/console/irb_console.rb +137 -0
  17. data/lib/rails/commands/credentials/credentials_command.rb +2 -2
  18. data/lib/rails/commands/dbconsole/dbconsole_command.rb +21 -30
  19. data/lib/rails/commands/devcontainer/devcontainer_command.rb +34 -0
  20. data/lib/rails/commands/rake/rake_command.rb +1 -1
  21. data/lib/rails/commands/runner/runner_command.rb +14 -3
  22. data/lib/rails/commands/server/server_command.rb +5 -3
  23. data/lib/rails/commands/test/test_command.rb +2 -0
  24. data/lib/rails/configuration.rb +10 -1
  25. data/lib/rails/console/app.rb +5 -32
  26. data/lib/rails/console/helpers.rb +5 -16
  27. data/lib/rails/console/methods.rb +23 -0
  28. data/lib/rails/engine.rb +5 -5
  29. data/lib/rails/gem_version.rb +3 -3
  30. data/lib/rails/generators/app_base.rb +70 -49
  31. data/lib/rails/generators/base.rb +5 -1
  32. data/lib/rails/generators/database.rb +227 -69
  33. data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +2 -0
  34. data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +2 -0
  35. data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +2 -0
  36. data/lib/rails/generators/generated_attribute.rb +26 -1
  37. data/lib/rails/generators/migration.rb +3 -3
  38. data/lib/rails/generators/rails/app/app_generator.rb +52 -23
  39. data/lib/rails/generators/rails/app/templates/Dockerfile.tt +23 -14
  40. data/lib/rails/generators/rails/app/templates/Gemfile.tt +16 -16
  41. data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt +4 -0
  42. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +8 -1
  43. data/lib/rails/generators/rails/app/templates/app/views/pwa/manifest.json.erb.tt +22 -0
  44. data/lib/rails/generators/rails/app/templates/app/views/pwa/service-worker.js +26 -0
  45. data/lib/rails/generators/rails/app/templates/bin/brakeman.tt +6 -0
  46. data/lib/rails/generators/rails/app/templates/bin/rubocop.tt +7 -0
  47. data/lib/rails/generators/rails/app/templates/bin/setup.tt +6 -2
  48. data/lib/rails/generators/rails/app/templates/config/application.rb.tt +1 -1
  49. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +3 -3
  50. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +7 -0
  51. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +8 -1
  52. data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +3 -3
  53. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +11 -6
  54. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +2 -0
  55. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +6 -5
  56. data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +1 -1
  57. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt +70 -0
  58. data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +42 -23
  59. data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +4 -0
  60. data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +5 -0
  61. data/lib/rails/generators/rails/app/templates/dockerignore.tt +13 -0
  62. data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +138 -0
  63. data/lib/rails/generators/rails/app/templates/github/dependabot.yml +12 -0
  64. data/lib/rails/generators/rails/app/templates/gitignore.tt +3 -3
  65. data/lib/rails/generators/rails/app/templates/public/406-unsupported-browser.html +66 -0
  66. data/lib/rails/generators/rails/app/templates/public/icon.png +0 -0
  67. data/lib/rails/generators/rails/app/templates/public/icon.svg +3 -0
  68. data/lib/rails/generators/rails/app/templates/rubocop.yml.tt +8 -0
  69. data/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt +1 -1
  70. data/lib/rails/generators/rails/controller/controller_generator.rb +1 -1
  71. data/lib/rails/generators/rails/db/system/change/change_generator.rb +131 -20
  72. data/lib/rails/generators/rails/devcontainer/devcontainer_generator.rb +166 -0
  73. data/lib/rails/generators/rails/migration/migration_generator.rb +4 -0
  74. data/lib/rails/generators/rails/plugin/plugin_generator.rb +38 -7
  75. data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +2 -2
  76. data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +5 -1
  77. data/lib/rails/generators/rails/plugin/templates/bin/rubocop.tt +7 -0
  78. data/lib/rails/generators/rails/plugin/templates/github/ci.yml.tt +103 -0
  79. data/lib/rails/generators/rails/plugin/templates/github/dependabot.yml +12 -0
  80. data/lib/rails/generators/rails/plugin/templates/rubocop.yml.tt +8 -0
  81. data/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb.tt +1 -1
  82. data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +10 -0
  83. data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +2 -0
  84. data/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb.tt +1 -1
  85. data/lib/rails/generators/testing/assertions.rb +20 -0
  86. data/lib/rails/generators/testing/behavior.rb +7 -6
  87. data/lib/rails/generators.rb +1 -1
  88. data/lib/rails/health_controller.rb +1 -1
  89. data/lib/rails/info.rb +2 -2
  90. data/lib/rails/mailers_controller.rb +14 -1
  91. data/lib/rails/paths.rb +2 -2
  92. data/lib/rails/pwa_controller.rb +15 -0
  93. data/lib/rails/rack/logger.rb +15 -7
  94. data/lib/rails/railtie/configurable.rb +2 -2
  95. data/lib/rails/railtie.rb +2 -3
  96. data/lib/rails/tasks/framework.rake +0 -26
  97. data/lib/rails/tasks/tmp.rake +1 -1
  98. data/lib/rails/templates/layouts/application.html.erb +1 -1
  99. data/lib/rails/templates/rails/mailers/email.html.erb +12 -8
  100. data/lib/rails/templates/rails/welcome/index.html.erb +3 -2
  101. data/lib/rails/test_help.rb +2 -4
  102. data/lib/rails/test_unit/reporter.rb +8 -2
  103. data/lib/rails/test_unit/runner.rb +21 -2
  104. data/lib/rails/test_unit/test_parser.rb +45 -0
  105. data/lib/rails.rb +7 -4
  106. metadata +38 -32
  107. data/lib/rails/app_updater.rb +0 -40
  108. data/lib/rails/commands/secrets/USAGE +0 -61
  109. data/lib/rails/commands/secrets/secrets_command.rb +0 -47
  110. data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +0 -68
  111. data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +0 -54
  112. data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +0 -70
  113. data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +0 -24
  114. data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +0 -62
  115. data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +0 -53
  116. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_1.rb.tt +0 -284
  117. data/lib/rails/generators/rails/app/templates/public/apple-touch-icon-precomposed.png +0 -0
  118. data/lib/rails/generators/rails/app/templates/public/apple-touch-icon.png +0 -0
  119. data/lib/rails/generators/rails/app/templates/public/favicon.ico +0 -0
  120. data/lib/rails/ruby_version_check.rb +0 -17
  121. data/lib/rails/secrets.rb +0 -110
data/CHANGELOG.md CHANGED
@@ -1,883 +1,324 @@
1
- ## Rails 7.1.3.2 (February 21, 2024) ##
1
+ ## Rails 7.2.0.beta1 (May 29, 2024) ##
2
2
 
3
- * No changes.
3
+ * Create a Dev Container Generator that generates a Dev Container setup based on the current configuration
4
+ of the application. Usage:
4
5
 
6
+ `bin/rails devcontainer`
5
7
 
6
- ## Rails 7.1.3.1 (February 21, 2024) ##
8
+ *Andrew Novoselac*
7
9
 
8
- * No changes.
10
+ * Add Rubocop and GitHub Actions to plugin generator.
11
+ This can be skipped using --skip-rubocop and --skip-ci.
9
12
 
13
+ *Chris Oliver*
10
14
 
11
- ## Rails 7.1.3 (January 16, 2024) ##
15
+ * Remove support for `oracle`, `sqlserver` and JRuby specific database adapters from the
16
+ `rails new` and `rails db:system:change` commands.
12
17
 
13
- * Make sure `config.after_routes_loaded` hook runs on boot.
14
-
15
- *Rafael Mendonça França*
16
-
17
- * Fix `config.log_level` not being respected when using a `BroadcastLogger`
18
-
19
- *Édouard Chin*
20
-
21
- * Fix isolated engines to take `ActiveRecord::Base.table_name_prefix` into consideration.
22
- This will allow for engine defined models, such as inside Active Storage, to respect
23
- Active Record table name prefix configuration.
24
-
25
- *Chedli Bourguiba*
26
-
27
- * The `bin/rails app:template` command will no longer add potentially unwanted
28
- gem platforms via `bundle lock --add-platform=...` commands.
29
-
30
- *Jonathan Hefner*
31
-
32
-
33
- ## Rails 7.1.2 (November 10, 2023) ##
34
-
35
- * Fix running `db:system:change` when app has no Dockerfile.
36
-
37
- *Hartley McGuire*
38
-
39
- * If you accessed `config.eager_load_paths` and friends, later changes to
40
- `config.paths` were not reflected in the expected auto/eager load paths.
41
- Now, they are.
42
-
43
- This bug has been latent since Rails 3.
44
-
45
- Fixes #49629.
46
-
47
- *Xavier Noria*
48
-
49
- ## Rails 7.1.1 (October 11, 2023) ##
50
-
51
- * Ensures the Rails generated Dockerfile uses correct ruby version and matches Gemfile.
52
-
53
- *Abhay Nikam*
54
-
55
-
56
- ## Rails 7.1.0 (October 05, 2023) ##
57
-
58
- * No changes.
59
-
60
-
61
- ## Rails 7.1.0.rc2 (October 01, 2023) ##
62
-
63
- * Always set the Rails logger to be an instance of `ActiveSupport::BroadcastLogger`.
64
-
65
- *Edouard Chin*
18
+ The supported options are `sqlite3`, `mysql`, `postgresql` and `trilogy`.
66
19
 
20
+ *Andrew Novoselac*
67
21
 
68
- ## Rails 7.1.0.rc1 (September 27, 2023) ##
22
+ * Add options to `bin/rails app:update`.
69
23
 
70
- * Require `concurrent-ruby` in `config/puma.rb` so that Puma can boot in
71
- production when `WEB_CONCURRENCY` is not explicitly specified.
24
+ `bin/rails app:update` now supports the same generic options that generators do:
72
25
 
73
- Fixes #49323.
26
+ * `--force`: Accept all changes to existing files
27
+ * `--skip`: Refuse all changes to existing files
28
+ * `--pretend`: Don't make any changes
29
+ * `--quiet`: Don't output all changes made
74
30
 
75
- *Matt Brictson*
76
-
77
- * Raise error when generating attribute with dangerous name.
78
-
79
- The following will now raise an error as `save` and `hash` are already
80
- defined by Active Record.
81
-
82
- ```bash
83
- $ bin/rails generate model Post save
84
- $ bin/rails generate model Post hash
85
- ```
86
-
87
- *Petrik de Heus*
88
-
89
-
90
- ## Rails 7.1.0.beta1 (September 13, 2023) ##
91
-
92
- * Add ability to show slow tests to the test runner
93
-
94
- ```bash
95
- $ bin/test --profile # additionally prints 10 (default) slowest tests
96
- # or
97
- $ bin/test --profile 20 # prints 20 slowest tests
98
- ```
99
-
100
- *fatkodima*
101
-
102
- * `rails new --javascript` generator now supports Bun
103
-
104
- ```bash
105
- $ rails new my_new_app --javascript=bun
106
- ```
107
-
108
- *Jason Meller*
109
-
110
- * bin/setup uses `bun` instead of `yarn` when generated an app with bun
111
-
112
- Use `bun install` on `bin/setup` when using `bun`.
113
-
114
- *Cadu Ribeiro*
115
-
116
- * `config/application.rb` now includes
117
-
118
- ```ruby
119
- config.autoload_lib(ignore: %w(assets tasks))
120
- ```
121
-
122
- In practice, this means that new 7.1 applications autoload from `lib` out of the box.
123
-
124
- *Xavier Noria*
125
-
126
- * Add an option to start rails console in sandbox mode by default
127
-
128
- `sandbox_by_default` option is added to start rails console in sandbox
129
- mode by default. With this option turned on, `--no-sandbox` must be
130
- specified to start rails in non-sandbox mode.
131
-
132
- Note that this option is ignored when rails environment is development
133
- or test.
31
+ *Étienne Barrié*
134
32
 
135
- *Shouichi Kamiya*
33
+ * Implement Rails console commands and helpers with IRB v1.13's extension APIs.
136
34
 
137
- * Omit `webdrivers` gem dependency from `Gemfile` template
35
+ Rails console users will now see `helper`, `controller`, `new_session`, and `app` under
36
+ IRB help message's `Helper methods` category. And `reload!` command will be displayed under
37
+ the new `Rails console` commands category.
138
38
 
139
- *Sean Doyle*
39
+ Prior to this change, Rails console's commands and helper methods are added through IRB's
40
+ private components and don't show up in its help message, which led to poor discoverability.
140
41
 
141
- * Support filtering tests by line ranges
42
+ *Stan Lo*
142
43
 
143
- The new syntax allows you to filter tests by line ranges. For example, the
144
- following command runs tests from line 10 to 20.
44
+ * Remove deprecated `Rails::Generators::Testing::Behaviour`.
145
45
 
146
- ```bash
147
- $ rails test test/models/user_test.rb:10-20
148
- ```
46
+ *Rafael Mendonça França*
149
47
 
150
- *Shouichi Kamiya*, *Seonggi Yang*, *oljfte*, *Ryohei UEDA*
48
+ * Remove deprecated `find_cmd_and_exec` console helper.
151
49
 
152
- * Update default scaffold templates to set 303 (See Other) as status code
153
- on redirect for the update action for XHR requests other than GET or POST
154
- to avoid issues (e.g browsers trying to follow the redirect using the
155
- original request method resulting in double PATCH/PUT)
50
+ *Rafael Mendonça França*
156
51
 
157
- *Guillermo Iguaran*
52
+ * Remove deprecated `Rails.config.enable_dependency_loading`.
158
53
 
159
- * The new `config.autoload_lib_once` is similar to `config.autoload_lib`,
160
- except that it adds `lib` to `config.autoload_once_paths` instead.
54
+ *Rafael Mendonça França*
161
55
 
162
- By calling `config.autoload_lib_once`, classes and modules in `lib` can be
163
- autoloaded, even from application initializers, but won't be reloaded.
56
+ * Remove deprecated `Rails.application.secrets`.
164
57
 
165
- Please, see further details in the [autoloading
166
- guide](https://guides.rubyonrails.org/v7.1/autoloading_and_reloading_constants.html).
58
+ *Rafael Mendonça França*
167
59
 
168
- *Xavier Noria*
60
+ * Generated Gemfile will include `require: "debug/prelude"` for the `debug` gem.
169
61
 
170
- * Add `config.action_dispatch.debug_exception_log_level` to configure the log
171
- level used by `ActionDispatch::DebugExceptions`.
62
+ Requiring `debug` gem directly automatically activates it, which could introduce
63
+ additional overhead and memory usage even without entering a debugging session.
172
64
 
173
- The default is `:fatal`, but with `load_defaults "7.1"` the default will be
174
- `:error`.
65
+ By making Bundler require `debug/prelude` instead, developers can keep their access
66
+ to breakpoint methods like `debugger` or `binding.break`, but the debugger won't be
67
+ activated until a breakpoint is hit.
175
68
 
176
- *Hartley McGuire*
69
+ *Stan Lo*
177
70
 
178
- * Add `DATABASE` option to `railties:install:migrations`
71
+ * Skip generating a `test` job in ci.yml when a new application is generated with the
72
+ `--skip-test` option.
179
73
 
180
- This allows you to specify which database the migrations should be copied to
181
- when running `rails railties:install:migrations`.
74
+ *Steve Polito*
182
75
 
183
- ```bash
184
- $ rails railties:install:migrations DATABASE=animals
185
- ```
76
+ * Update the `.node-version` file conditionally generated for new applications to 20.11.1
186
77
 
187
- *Matthew Hirst*
78
+ *Steve Polito*
188
79
 
189
- * The new method `config.autoload_lib(ignore:)` provides a simple way to
190
- autoload from `lib`:
80
+ * Fix sanitizer vendor configuration in 7.1 defaults.
191
81
 
192
- ```ruby
193
- # config/application.rb
194
- config.autoload_lib(ignore: %w(assets tasks))
195
- ```
82
+ In apps where rails-html-sanitizer was not eagerly loaded, the sanitizer default could end up
83
+ being Rails::HTML4::Sanitizer when it should be set to Rails::HTML5::Sanitizer.
196
84
 
197
- Please, see further details in the [autoloading
198
- guide](https://guides.rubyonrails.org/v7.1/autoloading_and_reloading_constants.html).
85
+ *Mike Dalessio*, *Rafael Mendonça França*
199
86
 
200
- *Xavier Noria*
87
+ * Set `action_mailer.default_url_options` values in `development` and `test`.
201
88
 
202
- * Don't show secret_key_base for `Rails.application.config#inspect`.
89
+ Prior to this commit, new Rails applications would raise `ActionView::Template::Error`
90
+ if a mailer included a url built with a `*_path` helper.
203
91
 
204
- Before:
92
+ *Steve Polito*
205
93
 
206
- ```ruby
207
- Rails.application.config.inspect
208
- "#<Rails::Application::Configuration:0x00000001132b02a0 @root=... @secret_key_base=\"b3c631c314c0bbca50c1b2843150fe33\" ... >"
209
- ```
94
+ * Introduce `Rails::Generators::Testing::Assertions#assert_initializer`.
210
95
 
211
- After:
96
+ Compliments the existing `initializer` generator action.
212
97
 
213
- ```ruby
214
- Rails.application.config.inspect
215
- "#<Rails::Application::Configuration:0x00000001132b02a0>"
98
+ ```rb
99
+ assert_initializer "mail_interceptors.rb"
216
100
  ```
217
101
 
218
- *Petrik de Heus*
219
-
220
- * Deprecate calling `Rails.application.secrets`.
221
-
222
- Rails `secrets` have been deprecated in favor of `credentials`.
223
- Calling `Rails.application.secrets` should show a deprecation warning.
224
-
225
- *Petrik de Heus*
226
-
227
- * Store `secret_key_base` in `Rails.config` for local environments.
228
-
229
- Rails `secrets` have been deprecated in favor of `credentials`.
230
- For the local environments the `secret_key_base` is now stored in
231
- `Rails.config.secret_key_base` instead of the soft deprecated
232
- `Rails.application.secrets.secret_key_base`.
102
+ *Steve Polito*
233
103
 
234
- *Petrik de Heus*
104
+ * Generate a .devcontainer folder and its contents when creating a new app.
235
105
 
236
- * Enable force_ssl=true in production by default: Force all access to the app over SSL,
237
- use Strict-Transport-Security, and use secure cookies
106
+ The .devcontainer folder includes everything needed to boot the app and do development in a remote container.
238
107
 
239
- *Justin Searls*, *Aaron Patterson*, *Guillermo Iguaran*, *Vinícius Bispo*
108
+ The container setup includes:
109
+ - A redis container for Kredis, ActionCable etc.
110
+ - A database (SQLite, Postgres, MySQL or MariaDB)
111
+ - A Headless chrome container for system tests
112
+ - Active Storage configured to use the local disk and with preview features working
240
113
 
241
- * Add engine's draw paths to application route set, so that the application
242
- can draw route files defined in engine paths.
114
+ If any of these options are skipped in the app setup they will not be included in the container configuration.
243
115
 
244
- *Gannon McGibbon*
116
+ These files can be skipped using the `--skip-devcontainer` option.
245
117
 
246
- * Support `VISUAL` environment variable for commands which open an editor,
247
- and prefer it over `EDITOR`.
118
+ *Andrew Novoselac & Rafael Mendonça França*
248
119
 
249
- *Summer ☀️*
120
+ * Introduce `SystemTestCase#served_by` for configuring the System Test application server.
250
121
 
251
- * Add engine's `test/fixtures` path to `fixture_paths` in `on_load` hook if
252
- path exists and is under the Rails application root.
253
-
254
- *Chris Salzberg*
255
-
256
- * `bin/rails app:template` now runs `bundle install` and any `after_bundle`
257
- blocks after the template is executed.
258
-
259
- *Jonathan Hefner* and *Gerry Caulfield*
260
-
261
- * Enable passing column size to migration generator
262
-
263
- Previously you could pass a limit to the migration generator:
264
-
265
- `rails generate migration CreateAuthor name:text{65535}`
266
-
267
- Now, a size attribute can be passed to the migration generator:
268
-
269
- `rails generate migration CreateAuthor name:text{medium}`
270
-
271
- This generates a migration which includes the size attribute:
122
+ By default this is localhost. This method allows the host and port to be specified manually.
272
123
 
273
124
  ```ruby
274
- class CreateAuthor < ActiveRecord::Migration[7.1]
275
- def change
276
- create_table :authors do |t|
277
- t.text :name, size: :medium
278
- end
279
- end
125
+ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
126
+ served_by host: "testserver", port: 45678
280
127
  end
281
128
  ```
282
129
 
283
- *Josh Broughton*, *Hartley McGuire*
284
-
285
- * Trying to set a config key with the same name of a method now raises:
286
-
287
- ```ruby
288
- config.load_defaults = 7.0
289
- # NoMethodError: Cannot assign to `load_defaults`, it is a configuration method
290
- ```
291
-
292
- *Xavier Noria*
293
-
294
- * Deprecate `secrets:edit/show` and remove `secrets:setup`
295
-
296
- `bin/rails secrets:setup` has been deprecated since Rails 5.2 in favor of
297
- credentials. This command has been removed.
130
+ *Andrew Novoselac & Rafael Mendonça França*
298
131
 
299
- `bin/rails secrets:show` and `bin/rails secrets:edit` have been deprecated
300
- in favor of credentials.
132
+ * `bin/rails test` will no longer load files named `*_test.rb` if they are located in the `fixtures` folder.
301
133
 
302
- Run `bin/rails credentials:help` for more information
303
-
304
- *Petrik de Heus*
305
-
306
- * `bin/rails --help` will now list only framework and plugin commands. Rake
307
- tasks defined in `lib/tasks/*.rake` files will no longer be included. For a
308
- list of those tasks, use `rake -T`.
309
-
310
- *Jonathan Hefner*
311
-
312
- * Allow calling `bin/rails restart` outside of app directory.
134
+ *Edouard Chin*
313
135
 
314
- The following would previously fail with a "No Rakefile found" error.
136
+ * Ensure logger tags configured with `config.log_tags` are still active in `request.action_dispatch` handlers.
315
137
 
316
- ```bash
317
- $ blog/bin/rails restart
318
- ```
138
+ *KJ Tsanaktsidis*
319
139
 
320
- *Petrik de Heus*
140
+ * Setup jemalloc in the default Dockerfile for memory optimization.
321
141
 
322
- * Support prerelease rubies in Gemfile template if RubyGems version is 3.3.13 or higher.
142
+ *Matt Almeida*, *Jean Boussier*
323
143
 
324
- *Yasuo Honda*, *David Rodríguez*
144
+ * Commented out lines in .railsrc file should not be treated as arguments when using
145
+ rails new generator command. Update ARGVScrubber to ignore text after `#` symbols.
325
146
 
326
- * Autoloading setup honors root directories manually set by the user.
147
+ *Willian Tenfen*
327
148
 
328
- This is relevant for custom namespaces. For example, if you'd like classes
329
- and modules under `app/services` to be defined in the `Services` namespace
330
- without an extra `app/services/services` directory, this is now enough:
149
+ * Skip CSS when generating APIs.
331
150
 
332
- ```ruby
333
- # config/initializers/autoloading.rb
151
+ *Ruy Rocha*
334
152
 
335
- # The namespace has to exist.
336
- #
337
- # In this example we define the module on the spot. Could also be created
338
- # elsewhere and its definition loaded here with an ordinary `require`. In
339
- # any case, `push_dir` expects a class or module object.
340
- module Services; end
153
+ * Rails console now indicates application name and the current Rails environment:
341
154
 
342
- Rails.autoloaders.main.push_dir("#{Rails.root}/app/services", namespace: Services)
155
+ ```txt
156
+ my-app(dev)> # for RAILS_ENV=development
157
+ my-app(test)> # for RAILS_ENV=test
158
+ my-app(prod)> # for RAILS_ENV=production
159
+ my-app(my_env)> # for RAILS_ENV=my_env
343
160
  ```
344
161
 
345
- Check the autoloading guide for further details.
346
-
347
- *Xavier Noria*
162
+ The application name is derived from the application's module name from `config/application.rb`.
163
+ For example, `MyApp` will displayed as `my-app` in the prompt.
348
164
 
349
- * Railties now requires the irb gem as a dependency, which means when you install Rails, irb will also
350
- be installed as a gem. Rails will then use the installed version of irb for its console instead of
351
- relying on Ruby's built-in version.
352
- This ensures that Rails has access to the most up-to-date and reliable version of irb for its console.
165
+ Additionally, the environment name will be colorized when the environment is
166
+ `development` (blue), `test` (blue), or `production` (red), if your
167
+ terminal supports it.
353
168
 
354
169
  *Stan Lo*
355
170
 
356
- * Use infinitive form for all rails command descriptions verbs.
171
+ * Ensure `autoload_paths`, `autoload_once_paths`, `eager_load_paths`, and
172
+ `load_paths` only have directories when initialized from engine defaults.
357
173
 
358
- *Petrik de Heus*
174
+ Previously, files under the `app` directory could end up there too.
359
175
 
360
- * Credentials commands (e.g. `bin/rails credentials:edit`) now respect
361
- `config.credentials.content_path` and `config.credentials.key_path` when set
362
- in `config/application.rb` or `config/environments/#{Rails.env}.rb`.
176
+ *Takumasa Ochi*
363
177
 
364
- Before:
178
+ * Prevent unnecessary application reloads in development.
365
179
 
366
- * `bin/rails credentials:edit` ignored `RAILS_ENV`, and would always edit
367
- `config/credentials.yml.enc`.
180
+ Previously, some files outside autoload paths triggered unnecessary reloads.
181
+ With this fix, application reloads according to `Rails.autoloaders.main.dirs`,
182
+ thereby preventing unnecessary reloads.
368
183
 
369
- * `bin/rails credentials:edit --environment foo` would create and edit
370
- `config/credentials/foo.yml.enc`.
184
+ *Takumasa Ochi*
371
185
 
372
- * If `config.credentials.content_path` or `config.credentials.key_path`
373
- was set, `bin/rails credentials:edit` could not be used to edit the
374
- credentials. Editing credentials required using `bin/rails
375
- encrypted:edit path/to/credentials --key path/to/key`.
186
+ * Use `oven-sh/setup-bun` in GitHub CI when generating an app with Bun.
376
187
 
377
- After:
188
+ *TangRufus*
378
189
 
379
- * `bin/rails credentials:edit` will edit the credentials file that the app
380
- would load for the current `RAILS_ENV`.
190
+ * Disable `pidfile` generation in the `production` environment.
381
191
 
382
- * `bin/rails credentials:edit` respects `config.credentials.content_path`
383
- and `config.credentials.key_path` when set in `config/application.rb`
384
- or `config/environments/#{Rails.env}.rb`.
192
+ *Hans Schnedlitz*
385
193
 
386
- * `bin/rails credentials:edit --environment foo` will create and edit
387
- `config/credentials/foo.yml.enc` _if_ `config.credentials.content_path`
388
- has not been set for the `foo` environment. Ultimately, it will edit
389
- the credentials file that the app would load for the `foo` environment.
194
+ * Set `config.action_view.annotate_rendered_view_with_filenames` to `true` in
195
+ the `development` environment.
390
196
 
391
- *Jonathan Hefner*
197
+ *Adrian Marin*
392
198
 
393
- * Add descriptions for non-Rake commands when running `rails -h`.
199
+ * Support the `BACKTRACE` environment variable to turn off backtrace cleaning.
394
200
 
395
- *Petrik de Heus*
396
-
397
- * Show relevant commands when calling help
398
-
399
- When running `rails -h` or just `rails` outside a Rails application,
400
- Rails outputs all options for running the `rails new` command. This can be
401
- confusing to users when they probably want to see the common Rails commands.
402
-
403
- Instead, we should always show the common commands when running `rails -h`
404
- inside or outside a Rails application.
405
-
406
- As the relevant commands inside a Rails application differ from the
407
- commands outside an application, the help USAGE file has been split to
408
- show the most relevant commands for the context.
409
-
410
- *Petrik de Heus*
411
-
412
- * Add Rails::HealthController#show and map it to /up for newly generated applications.
413
- Load balancers and uptime monitors all need a basic endpoint to tell whether the app is up.
414
- This is a good starting point that'll work in many situations.
415
-
416
- *DHH*
201
+ Useful for debugging framework code:
417
202
 
418
- * Only use HostAuthorization middleware if `config.hosts` is not empty
203
+ ```sh
204
+ BACKTRACE=1 bin/rails server
205
+ ```
419
206
 
420
- *Hartley McGuire*
207
+ *Alex Ghiculescu*
421
208
 
422
- * Raise an exception when a `before_action`'s "only" or "except" filter
423
- options reference an action that doesn't exist. This will be enabled by
424
- default but can be overridden via config.
209
+ * Raise `ArgumentError` when reading `config.x.something` with arguments:
425
210
 
426
211
  ```ruby
427
- # config/environments/production.rb
428
- config.action_controller.raise_on_missing_callback_actions = false
212
+ config.x.this_works.this_raises true # raises ArgumentError
429
213
  ```
430
214
 
431
- *Jess Bees*
215
+ *Sean Doyle*
432
216
 
433
- * Use physical processor count as the default Puma worker count in production.
434
- This can be overridden by setting `ENV["WEB_CONCURRENCY"]` or editing the
435
- generated "config/puma.rb" directly.
217
+ * Add default PWA files for manifest and service-worker that are served from `app/views/pwa` and can be dynamically rendered through ERB. Mount these files explicitly at the root with default routes in the generated routes file.
436
218
 
437
219
  *DHH*
438
220
 
439
- * Add Docker files by default to new apps: Dockerfile, .dockerignore, bin/docker-entrypoint.
440
- These files can be skipped with `--skip-docker`. They're intended as a starting point for
441
- a production deploy of the application. Not intended for development (see Docked Rails for that).
442
-
443
- Example:
444
-
445
- ```bash
446
- $ docker build -t app .
447
- $ docker volume create app-storage
448
- $ docker run --rm -it -v app-storage:/rails/storage -p 3000:3000 --env RAILS_MASTER_KEY=<see config/master.key> app
449
- ```
450
-
451
- You can also start a console or a runner from this image:
452
-
453
- ```bash
454
- $ docker run --rm -it -v app-storage:/rails/storage --env RAILS_MASTER_KEY=<see config/master.key> app console
455
- ```
456
-
457
- To create a multi-platform image on Apple Silicon to deploy on AMD or Intel and push to Docker Hub for user/app:
458
-
459
- ```bash
460
- $ docker login -u <user>
461
- $ docker buildx create --use
462
- $ docker buildx build --push --platform=linux/amd64,linux/arm64 -t <user/image> .
463
- ```
464
-
465
- *DHH, Sam Ruby*
466
-
467
- * Add ENV["SECRET_KEY_BASE_DUMMY"] for starting production environment with a generated secret base key,
468
- which can be used to run tasks like `assets:precompile` without making the RAILS_MASTER_KEY available
469
- to the build process.
470
-
471
- Dockerfile layer example:
472
-
473
- ```
474
- RUN SECRET_KEY_BASE_DUMMY=1 bundle exec rails assets:precompile
475
- ```
221
+ * Updated system tests to now use headless Chrome by default for the new applications.
476
222
 
477
223
  *DHH*
478
224
 
479
- * Show descriptions for all commands in Rails help
480
-
481
- When calling `rails help` most commands missed their description. We now
482
- show the same descriptions as shown in `rails -T`.
483
-
484
- *Petrik de Heus*
485
-
486
- * Always generate the storage/ directory with rails new to ensure there's a stable place to
487
- put permanent files, and a single mount point for containers to map. Then default sqlite3 databases
488
- to live there instead of db/, which is only meant for configuration, not data.
225
+ * Add GitHub CI files for Dependabot, Brakeman, RuboCop, and running tests by default. Can be skipped with `--skip-ci`.
489
226
 
490
227
  *DHH*
491
228
 
492
- * Rails console now disables `IRB`'s autocompletion feature in production by default.
493
-
494
- Setting `IRB_USE_AUTOCOMPLETE=true` can override this default.
495
-
496
- *Stan Lo*
497
-
498
- * Add `config.precompile_filter_parameters`, which enables precompilation of
499
- `config.filter_parameters` using `ActiveSupport::ParameterFilter.precompile_filters`.
500
- Precompilation can improve filtering performance, depending on the quantity
501
- and types of filters.
502
-
503
- `config.precompile_filter_parameters` defaults to `true` for
504
- `config.load_defaults 7.1` and above.
505
-
506
- *Jonathan Hefner*
507
-
508
- * Add `after_routes_loaded` hook to `Rails::Railtie::Configuration` for
509
- engines to add a hook to be called after application routes have been
510
- loaded.
511
-
512
- ```ruby
513
- MyEngine.config.after_routes_loaded do
514
- # code that must happen after routes have been loaded
515
- end
516
- ```
517
-
518
- *Chris Salzberg*
519
-
520
- * Send 303 See Other status code back for the destroy action on newly generated
521
- scaffold controllers.
522
-
523
- *Tony Drake*
524
-
525
- * Add `Rails.application.deprecators` as a central point to manage deprecators
526
- for an application.
527
-
528
- Individual deprecators can be added and retrieved from the collection:
529
-
530
- ```ruby
531
- Rails.application.deprecators[:my_gem] = ActiveSupport::Deprecation.new("2.0", "MyGem")
532
- Rails.application.deprecators[:other_gem] = ActiveSupport::Deprecation.new("3.0", "OtherGem")
533
- ```
534
-
535
- And the collection's configuration methods affect all deprecators in the
536
- collection:
537
-
538
- ```ruby
539
- Rails.application.deprecators.debug = true
540
-
541
- Rails.application.deprecators[:my_gem].debug
542
- # => true
543
- Rails.application.deprecators[:other_gem].debug
544
- # => true
545
- ```
546
-
547
- Additionally, all deprecators in the collection can be silenced for the
548
- duration of a given block:
549
-
550
- ```ruby
551
- Rails.application.deprecators.silence do
552
- Rails.application.deprecators[:my_gem].warn # => silenced (no warning)
553
- Rails.application.deprecators[:other_gem].warn # => silenced (no warning)
554
- end
555
- ```
556
-
557
- *Jonathan Hefner*
558
-
559
- * Move dbconsole logic to Active Record connection adapter.
560
-
561
- Instead of hosting the connection logic in the command object, the
562
- database adapter should be responsible for connecting to a console session.
563
- This patch moves #find_cmd_and_exec to the adapter and exposes a new API to
564
- lookup the adapter class without instantiating it.
565
-
566
- *Gannon McGibbon*, *Paarth Madan*
567
-
568
- * Add `Rails.application.message_verifiers` as a central point to configure
569
- and create message verifiers for an application.
570
-
571
- This allows applications to, for example, rotate old `secret_key_base`
572
- values:
573
-
574
- ```ruby
575
- config.before_initialize do |app|
576
- app.message_verifiers.rotate(secret_key_base: "old secret_key_base")
577
- end
578
- ```
579
-
580
- And for libraries to create preconfigured message verifiers:
581
-
582
- ```ruby
583
- ActiveStorage.verifier = Rails.application.message_verifiers["ActiveStorage"]
584
- ```
585
-
586
- *Jonathan Hefner*
587
-
588
- * Support MySQL's ssl-mode option for the dbconsole command.
589
-
590
- Verifying the identity of the database server requires setting the ssl-mode
591
- option to VERIFY_CA or VERIFY_IDENTITY. This option was previously ignored
592
- for the dbconsole command.
593
-
594
- *Petrik de Heus*
595
-
596
- * Delegate application record generator description to orm hooked generator.
597
-
598
- *Gannon McGibbon*
599
-
600
- * Show BCC recipients when present in Action Mailer previews.
229
+ * Add Brakeman by default for static analysis of security vulnerabilities. Allow skipping with `--skip-brakeman option`.
601
230
 
602
- *Akshay Birajdar*
231
+ *vipulnsward*
603
232
 
604
- * Extend `routes --grep` to also filter routes by matching against path.
233
+ * Add RuboCop with rules from `rubocop-rails-omakase` by default. Skip with `--skip-rubocop`.
605
234
 
606
- Example:
235
+ *DHH* and *zzak*
607
236
 
608
- ```bash
609
- $ bin/rails routes --grep /cats/1
610
- Prefix Verb URI Pattern Controller#Action
611
- cat GET /cats/:id(.:format) cats#show
612
- PATCH /cats/:id(.:format) cats#update
613
- PUT /cats/:id(.:format) cats#update
614
- DELETE /cats/:id(.:format) cats#destroy
615
- ```
616
-
617
- *Orhan Toy*
618
-
619
- * Improve `rails runner` output when given a file path that doesn't exist.
620
-
621
- *Tekin Suleyman*
622
-
623
- * `config.allow_concurrency = false` now use a `Monitor` instead of a `Mutex`
624
-
625
- This allows to enable `config.active_support.executor_around_test_case` even
626
- when `config.allow_concurrency` is disabled.
627
-
628
- *Jean Boussier*
237
+ * Use `bin/rails runner --skip-executor` to not wrap the runner script with an
238
+ Executor.
629
239
 
630
- * Add `routes --unused` option to detect extraneous routes.
240
+ *Ben Sheldon*
631
241
 
632
- Example:
633
-
634
- ```bash
635
- $ bin/rails routes --unused
636
-
637
- Found 2 unused routes:
638
-
639
- Prefix Verb URI Pattern Controller#Action
640
- one GET /one(.:format) action#one
641
- two GET /two(.:format) action#two
642
- ```
643
-
644
- *Gannon McGibbon*
645
-
646
- * Add `--parent` option to controller generator to specify parent class of job.
647
-
648
- Example:
242
+ * Fix isolated engines to take `ActiveRecord::Base.table_name_prefix` into consideration.
649
243
 
650
- `bin/rails g controller admin/users --parent=admin_controller` generates:
244
+ This will allow for engine defined models, such as inside Active Storage, to respect
245
+ Active Record table name prefix configuration.
651
246
 
652
- ```ruby
653
- class Admin::UsersController < AdminController
654
- # ...
655
- end
656
- ```
247
+ *Chedli Bourguiba*
657
248
 
658
- *Gannon McGibbon*
659
-
660
- * In-app custom credentials templates are now supported. When a credentials
661
- file does not exist, `rails credentials:edit` will now try to use
662
- `lib/templates/rails/credentials/credentials.yml.tt` to generate the
663
- credentials file, before falling back to the default template.
664
-
665
- This allows e.g. an open-source Rails app (which would not include encrypted
666
- credentials files in its repo) to include a credentials template, so that
667
- users who install the app will get a custom pre-filled credentials file when
668
- they run `rails credentials:edit`.
669
-
670
- *Jonathan Hefner*
671
-
672
- * Except for `dev` and `test` environments, newly generated per-environment
673
- credentials files (e.g. `config/credentials/production.yml.enc`) now include
674
- a `secret_key_base` for convenience, just as `config/credentials.yml.enc`
675
- does.
676
-
677
- *Jonathan Hefner*
678
-
679
- * `--no-*` options now work with the app generator's `--minimal` option, and
680
- are both comprehensive and precise. For example:
681
-
682
- ```bash
683
- $ rails new my_cool_app --minimal
684
- Based on the specified options, the following options will also be activated:
685
-
686
- --skip-active-job [due to --minimal]
687
- --skip-action-mailer [due to --skip-active-job, --minimal]
688
- --skip-active-storage [due to --skip-active-job, --minimal]
689
- --skip-action-mailbox [due to --skip-active-storage, --minimal]
690
- --skip-action-text [due to --skip-active-storage, --minimal]
691
- --skip-javascript [due to --minimal]
692
- --skip-hotwire [due to --skip-javascript, --minimal]
693
- --skip-action-cable [due to --minimal]
694
- --skip-bootsnap [due to --minimal]
695
- --skip-dev-gems [due to --minimal]
696
- --skip-system-test [due to --minimal]
697
-
698
- ...
699
-
700
- $ rails new my_cool_app --minimal --no-skip-active-storage
701
- Based on the specified options, the following options will also be activated:
702
-
703
- --skip-action-mailer [due to --minimal]
704
- --skip-action-mailbox [due to --minimal]
705
- --skip-action-text [due to --minimal]
706
- --skip-javascript [due to --minimal]
707
- --skip-hotwire [due to --skip-javascript, --minimal]
708
- --skip-action-cable [due to --minimal]
709
- --skip-bootsnap [due to --minimal]
710
- --skip-dev-gems [due to --minimal]
711
- --skip-system-test [due to --minimal]
712
-
713
- ...
714
- ```
249
+ * Fix running `db:system:change` when the app has no Dockerfile.
715
250
 
716
- *Brad Trick* and *Jonathan Hefner*
251
+ *Hartley McGuire*
717
252
 
718
- * Add `--skip-dev-gems` option to app generator to skip adding development
719
- gems (like `web-console`) to the Gemfile.
253
+ * In Action Mailer previews, list inline attachments separately from normal
254
+ attachments.
720
255
 
721
- *Brad Trick*
256
+ For example, attachments that were previously listed like
722
257
 
723
- * Skip Active Storage and Action Mailer if Active Job is skipped.
258
+ > Attachments: logo.png file1.pdf file2.pdf
724
259
 
725
- *Étienne Barrié*
260
+ will now be listed like
726
261
 
727
- * Correctly check if frameworks are disabled when running app:update.
262
+ > Attachments: file1.pdf file2.pdf (Inline: logo.png)
728
263
 
729
- *Étienne Barrié* and *Paulo Barros*
264
+ *Christian Schmidt* and *Jonathan Hefner*
730
265
 
731
- * Delegate model generator description to orm hooked generator.
266
+ * In mailer preview, only show SMTP-To if it differs from the union of To, Cc and Bcc.
732
267
 
733
- *Gannon McGibbon*
268
+ *Christian Schmidt*
734
269
 
735
- * Execute `rails runner` scripts inside the executor.
270
+ * Enable YJIT by default on new applications running Ruby 3.3+.
736
271
 
737
- Enables error reporting, query cache, etc.
272
+ Adds a `config/initializers/enable_yjit.rb` initializer that enables YJIT
273
+ when running on Ruby 3.3+.
738
274
 
739
275
  *Jean Boussier*
740
276
 
741
- * Avoid booting in development then test for test tasks.
742
-
743
- Running one of the rails test subtasks (e.g. test:system, test:models) would
744
- go through Rake and cause the app to be booted twice. Now all the test:*
745
- subtasks are defined as Thor tasks and directly load the test environment.
746
-
747
- *Étienne Barrié*
748
-
749
- * Deprecate `Rails::Generators::Testing::Behaviour` in favor of `Rails::Generators::Testing::Behavior`.
750
-
751
- *Gannon McGibbon*
752
-
753
- * Allow configuration of logger size for local and test environments
754
-
755
- `config.log_file_size`
277
+ * In Action Mailer previews, show date from message `Date` header if present.
756
278
 
757
- Defaults to `100` megabytes.
279
+ *Sampat Badhe*
758
280
 
759
- *Bernie Chiu*
281
+ * Exit with non-zero status when the migration generator fails.
760
282
 
761
- * Enroll new apps in decrypted diffs of credentials by default. This behavior
762
- can be opted out of with the app generator's `--skip-decrypted-diffs` flag.
283
+ *Katsuhiko YOSHIDA*
763
284
 
764
- *Jonathan Hefner*
285
+ * Use numeric UID and GID in Dockerfile template.
765
286
 
766
- * Support declarative-style test name filters with `bin/rails test`.
287
+ The Dockerfile generated by `rails new` sets the default user and group
288
+ by name instead of UID:GID. This can cause the following error in Kubernetes:
767
289
 
768
- This makes it possible to run a declarative-style test such as:
769
-
770
- ```ruby
771
- class MyTest < ActiveSupport::TestCase
772
- test "does something" do
773
- # ...
774
- end
775
- end
776
- ```
777
-
778
- Using its declared name:
779
-
780
- ```bash
781
- $ bin/rails test test/my_test.rb -n "does something"
782
290
  ```
783
-
784
- Instead of having to specify its expanded method name:
785
-
786
- ```bash
787
- $ bin/rails test test/my_test.rb -n test_does_something
291
+ container has runAsNonRoot and image has non-numeric user (rails), cannot verify user is non-root
788
292
  ```
789
293
 
790
- *Jonathan Hefner*
294
+ This change sets default user and group by their numeric values.
791
295
 
792
- * Add `--js` and `--skip-javascript` options to `rails new`
296
+ *Ivan Fedotov*
793
297
 
794
- `--js` alias to `rails new --javascript ...`
298
+ * Disallow invalid values for rails new options.
795
299
 
796
- Same as `-j`, e.g. `rails new --js esbuild ...`
300
+ The `--database`, `--asset-pipeline`, `--css`, and `--javascript` options
301
+ for `rails new` take different arguments. This change validates them.
797
302
 
798
- `--skip-js` alias to `rails new --skip-javascript ...`
303
+ *Tony Drake*, *Akhil G Krishnan*, *Petrik de Heus*
799
304
 
800
- Same as `-J`, e.g. `rails new --skip-js ...`
305
+ * Conditionally print `$stdout` when invoking `run_generator`.
801
306
 
802
- *Dorian Marié*
307
+ In an effort to improve the developer experience when debugging
308
+ generator tests, we add the ability to conditionally print `$stdout`
309
+ instead of capturing it.
803
310
 
804
- * Allow relative paths with leading dot slash to be passed to `rails test`.
311
+ This allows for calls to `binding.irb` and `puts` work as expected.
805
312
 
806
- Fix `rails test ./test/model/post_test.rb` to run a single test file.
807
-
808
- *Shouichi Kamiya* and *oljfte*
809
-
810
- * Deprecate `config.enable_dependency_loading`. This flag addressed a limitation of the `classic` autoloader and has no effect nowadays. To fix this deprecation, please just delete the reference.
811
-
812
- *Xavier Noria*
813
-
814
- * Define `config.enable_reloading` to be `!config.cache_classes` for a more intuitive name. While `config.enable_reloading` and `config.reloading_enabled?` are preferred from now on, `config.cache_classes` is supported for backwards compatibility.
815
-
816
- *Xavier Noria*
817
-
818
- * Add JavaScript dependencies installation on bin/setup
819
-
820
- Add `yarn install` to bin/setup when using esbuild, webpack, or rollout.
821
-
822
- *Carlos Ribeiro*
823
-
824
- * Use `controller_class_path` in `Rails::Generators::NamedBase#route_url`
825
-
826
- The `route_url` method now returns the correct path when generating
827
- a namespaced controller with a top-level model using `--model-name`.
828
-
829
- Previously, when running this command:
830
-
831
- ```bash
832
- $ bin/rails generate scaffold_controller Admin/Post --model-name Post
833
- ```
834
-
835
- the comments above the controller action would look like:
836
-
837
- ``` ruby
838
- # GET /posts
839
- def index
840
- @posts = Post.all
841
- end
313
+ ```sh
314
+ RAILS_LOG_TO_STDOUT=true ./bin/test test/generators/actions_test.rb
842
315
  ```
843
316
 
844
- afterwards, they now look like this:
845
-
846
- ``` ruby
847
- # GET /admin/posts
848
- def index
849
- @posts = Post.all
850
- end
851
- ```
852
-
853
- Fixes #44662.
854
-
855
- *Andrew White*
856
-
857
- * No longer add autoloaded paths to `$LOAD_PATH`.
858
-
859
- This means it won't be possible to load them with a manual `require` call, the class or module can be referenced instead.
860
-
861
- Reducing the size of `$LOAD_PATH` speed-up `require` calls for apps not using `bootsnap`, and reduce the
862
- size of the `bootsnap` cache for the others.
863
-
864
- *Jean Boussier*
865
-
866
- * Remove default `X-Download-Options` header
867
-
868
- This header is currently only used by Internet Explorer which
869
- will be discontinued in 2022 and since Rails 7 does not fully
870
- support Internet Explorer this header should not be a default one.
871
-
872
- *Harun Sabljaković*
873
-
874
- * Add .node-version files for Rails apps that use Node.js
875
-
876
- Node version managers that make use of this file:
877
- https://github.com/shadowspawn/node-version-usage#node-version-file-usage
317
+ *Steve Polito*
878
318
 
879
- The generated Dockerfile will use the same node version.
319
+ * Remove the option `config.public_file_server.enabled` from the generators
320
+ for all environments, as the value is the same in all environments.
880
321
 
881
- *Sam Ruby*
322
+ *Adrian Hirt*
882
323
 
883
- Please check [7-0-stable](https://github.com/rails/rails/blob/7-0-stable/railties/CHANGELOG.md) for previous changes.
324
+ Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/railties/CHANGELOG.md) for previous changes.