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