railties 6.1.4.1 → 7.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +113 -344
  3. data/MIT-LICENSE +1 -1
  4. data/RDOC_MAIN.rdoc +16 -16
  5. data/README.rdoc +0 -1
  6. data/lib/rails/all.rb +0 -1
  7. data/lib/rails/app_updater.rb +3 -5
  8. data/lib/rails/application/bootstrap.rb +21 -5
  9. data/lib/rails/application/configuration.rb +64 -28
  10. data/lib/rails/application/default_middleware_stack.rb +7 -3
  11. data/lib/rails/application/finisher.rb +42 -85
  12. data/lib/rails/application/routes_reloader.rb +8 -0
  13. data/lib/rails/application.rb +24 -50
  14. data/lib/rails/application_controller.rb +2 -2
  15. data/lib/rails/autoloaders/inflector.rb +21 -0
  16. data/lib/rails/autoloaders.rb +12 -16
  17. data/lib/rails/code_statistics.rb +2 -2
  18. data/lib/rails/code_statistics_calculator.rb +10 -1
  19. data/lib/rails/command/base.rb +26 -12
  20. data/lib/rails/command/behavior.rb +1 -1
  21. data/lib/rails/command/environment_argument.rb +1 -1
  22. data/lib/rails/command.rb +8 -5
  23. data/lib/rails/commands/credentials/USAGE +4 -2
  24. data/lib/rails/commands/credentials/credentials_command/diffing.rb +26 -16
  25. data/lib/rails/commands/credentials/credentials_command.rb +8 -3
  26. data/lib/rails/commands/dbconsole/dbconsole_command.rb +10 -11
  27. data/lib/rails/commands/help/USAGE +3 -2
  28. data/lib/rails/commands/runner/runner_command.rb +3 -2
  29. data/lib/rails/commands/server/server_command.rb +2 -5
  30. data/lib/rails/configuration.rb +18 -23
  31. data/lib/rails/engine/configuration.rb +3 -3
  32. data/lib/rails/engine.rb +18 -24
  33. data/lib/rails/gem_version.rb +4 -4
  34. data/lib/rails/generators/actions/create_migration.rb +2 -4
  35. data/lib/rails/generators/actions.rb +35 -13
  36. data/lib/rails/generators/app_base.rb +99 -105
  37. data/lib/rails/generators/app_name.rb +1 -1
  38. data/lib/rails/generators/base.rb +9 -13
  39. data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +2 -0
  40. data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +8 -8
  41. data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +8 -4
  42. data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +6 -28
  43. data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +7 -3
  44. data/lib/rails/generators/erb/scaffold/templates/partial.html.erb.tt +20 -0
  45. data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +8 -17
  46. data/lib/rails/generators/erb.rb +1 -1
  47. data/lib/rails/generators/generated_attribute.rb +45 -9
  48. data/lib/rails/generators/migration.rb +2 -6
  49. data/lib/rails/generators/model_helpers.rb +1 -1
  50. data/lib/rails/generators/named_base.rb +1 -1
  51. data/lib/rails/generators/rails/app/app_generator.rb +53 -91
  52. data/lib/rails/generators/rails/app/templates/Gemfile.tt +44 -50
  53. data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +2 -2
  54. data/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt +2 -2
  55. data/lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt +1 -1
  56. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +3 -9
  57. data/lib/rails/generators/rails/app/templates/bin/rails.tt +1 -4
  58. data/lib/rails/generators/rails/app/templates/bin/rake.tt +0 -3
  59. data/lib/rails/generators/rails/app/templates/bin/setup.tt +9 -14
  60. data/lib/rails/generators/rails/app/templates/config/application.rb.tt +0 -1
  61. data/lib/rails/generators/rails/app/templates/config/boot.rb.tt +1 -1
  62. data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +2 -2
  63. data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +3 -3
  64. data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +3 -3
  65. data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +2 -2
  66. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +3 -3
  67. data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +2 -2
  68. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +3 -3
  69. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +1 -1
  70. data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +5 -5
  71. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +6 -12
  72. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +21 -17
  73. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +6 -11
  74. data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +1 -5
  75. data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +19 -25
  76. data/lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt +2 -2
  77. data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt +4 -4
  78. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_0.rb.tt +121 -0
  79. data/lib/rails/generators/rails/app/templates/config/locales/en.yml +3 -3
  80. data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +1 -1
  81. data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +4 -1
  82. data/lib/rails/generators/rails/app/templates/config/storage.yml.tt +5 -5
  83. data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +2 -2
  84. data/lib/rails/generators/rails/app/templates/gitattributes.tt +0 -5
  85. data/lib/rails/generators/rails/app/templates/gitignore.tt +3 -1
  86. data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +1 -1
  87. data/lib/rails/generators/rails/controller/controller_generator.rb +1 -2
  88. data/lib/rails/generators/rails/controller/templates/controller.rb.tt +0 -4
  89. data/lib/rails/generators/rails/db/system/change/change_generator.rb +1 -1
  90. data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +1 -1
  91. data/lib/rails/generators/rails/plugin/plugin_generator.rb +40 -15
  92. data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +7 -3
  93. data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +9 -9
  94. data/lib/rails/generators/rails/plugin/templates/README.md.tt +1 -1
  95. data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +2 -2
  96. data/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +0 -3
  97. data/lib/rails/generators/rails/plugin/templates/bin/rails.tt +4 -5
  98. data/lib/rails/generators/rails/plugin/templates/gitignore.tt +0 -5
  99. data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +2 -2
  100. data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt +1 -1
  101. data/lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt +2 -2
  102. data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +3 -3
  103. data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +0 -19
  104. data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +1 -5
  105. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +6 -10
  106. data/lib/rails/generators/resource_helpers.rb +2 -2
  107. data/lib/rails/generators/test_unit/generator/templates/generator_test.rb.tt +1 -1
  108. data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +2 -2
  109. data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +3 -3
  110. data/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +5 -5
  111. data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +2 -2
  112. data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +9 -11
  113. data/lib/rails/generators/testing/behaviour.rb +1 -2
  114. data/lib/rails/generators.rb +9 -22
  115. data/lib/rails/info.rb +1 -1
  116. data/lib/rails/info_controller.rb +1 -3
  117. data/lib/rails/initializable.rb +1 -1
  118. data/lib/rails/mailers_controller.rb +2 -4
  119. data/lib/rails/rack/logger.rb +0 -1
  120. data/lib/rails/railtie/configuration.rb +1 -2
  121. data/lib/rails/railtie.rb +27 -10
  122. data/lib/rails/ruby_version_check.rb +3 -3
  123. data/lib/rails/secrets.rb +4 -1
  124. data/lib/rails/tasks/framework.rake +2 -8
  125. data/lib/rails/tasks/statistics.rake +3 -1
  126. data/lib/rails/tasks/tmp.rake +8 -1
  127. data/lib/rails/tasks/yarn.rake +8 -9
  128. data/lib/rails/tasks/zeitwerk.rake +2 -10
  129. data/lib/rails/templates/layouts/application.html.erb +15 -0
  130. data/lib/rails/templates/rails/mailers/email.html.erb +13 -11
  131. data/lib/rails/templates/rails/welcome/index.html.erb +3 -0
  132. data/lib/rails/test_unit/railtie.rb +0 -4
  133. data/lib/rails/test_unit/runner.rb +16 -9
  134. data/lib/rails/test_unit/testing.rake +4 -9
  135. data/lib/rails/welcome_controller.rb +1 -0
  136. data/lib/rails.rb +5 -0
  137. metadata +34 -37
  138. data/lib/rails/command/spellchecker.rb +0 -57
  139. data/lib/rails/generators/css/assets/assets_generator.rb +0 -15
  140. data/lib/rails/generators/css/assets/templates/stylesheet.css +0 -4
  141. data/lib/rails/generators/css/scaffold/scaffold_generator.rb +0 -18
  142. data/lib/rails/generators/rails/app/templates/app/javascript/channels/consumer.js +0 -6
  143. data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +0 -5
  144. data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +0 -23
  145. data/lib/rails/generators/rails/app/templates/bin/spring.tt +0 -13
  146. data/lib/rails/generators/rails/app/templates/bin/yarn.tt +0 -16
  147. data/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb.tt +0 -8
  148. data/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb.tt +0 -8
  149. data/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb.tt +0 -5
  150. data/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb.tt +0 -4
  151. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_1.rb.tt +0 -67
  152. data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +0 -16
  153. data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +0 -6
  154. data/lib/rails/generators/rails/app/templates/package.json.tt +0 -11
  155. data/lib/rails/generators/rails/assets/USAGE +0 -16
  156. data/lib/rails/generators/rails/assets/assets_generator.rb +0 -26
  157. data/lib/rails/generators/rails/assets/templates/stylesheet.css +0 -4
  158. data/lib/rails/generators/rails/scaffold/templates/scaffold.css +0 -80
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5abf6f42d920f9d46ce3936db89bd25c54e54730340548c733fb7f1d8c19bfe
4
- data.tar.gz: '00086b6a99b7e4fdc0c91fe34bced972abfca7591342f89056cda582f2a86a6e'
3
+ metadata.gz: 1b284070001b693990d6b81e724e3c743a63a3cb3b2b92facb47102b72872560
4
+ data.tar.gz: cb69eb78c8c0373ff652b727ef28ebefb2f25ef8f9ae1fdb0d5445378da49143
5
5
  SHA512:
6
- metadata.gz: 1db0140b5861371da7f1ae666457b3d1c9259038cc02a1c255e90ee8964d91642fe7f4f537bd57e6870f764beb21a306d6e0fe010bc8a5324bddcabc8ec82d60
7
- data.tar.gz: 79e636f6023870112ee8e4513311199e98cd5aa5e2f6c3adb956381eadbcb3f27dc7c68825a6a07875edbb5a2cb99e05fc22c25f49f464610c3973575ef1f81c
6
+ metadata.gz: af3ace6e641e5dd20232ccc7eb83e9104ed40c4d85ba4f62d2f0b8d5b96f9b1fee8a31379f41145cad1ffe5aef8acf34daef558104cf13b955555e70cac19b79
7
+ data.tar.gz: dee8812ce8c27baef9cb88a64c0709153096671a55d046567dd1b760ba942b1e205c3d3e8ac182b4b5628bcf2ea5448643282ac0cd080898d3b68def142dc643
data/CHANGELOG.md CHANGED
@@ -1,432 +1,201 @@
1
- ## Rails 6.1.4.1 (August 19, 2021) ##
1
+ ## Rails 7.0.0.rc2 (December 14, 2021) ##
2
2
 
3
- * No changes.
4
-
5
-
6
- ## Rails 6.1.4 (June 24, 2021) ##
7
-
8
- * Fix compatibility with `psych >= 4`.
9
-
10
- Starting in Psych 4.0.0 `YAML.load` behaves like `YAML.safe_load`. To preserve compatibility
11
- `Rails.application.config_for` now uses `YAML.unsafe_load` if available.
12
-
13
- *Jean Boussier*
14
-
15
- * Ensure `Rails.application.config_for` always cast hashes to `ActiveSupport::OrderedOptions`.
16
-
17
- *Jean Boussier*
18
-
19
- * Fix create migration generator with `--pretend` option.
20
-
21
- *euxx*
22
-
23
-
24
- ## Rails 6.1.3.2 (May 05, 2021) ##
25
-
26
- * No changes.
27
-
28
-
29
- ## Rails 6.1.3.1 (March 26, 2021) ##
30
-
31
- * No changes.
32
-
33
-
34
- ## Rails 6.1.3 (February 17, 2021) ##
35
-
36
- * No changes.
37
-
38
-
39
- ## Rails 6.1.2.1 (February 10, 2021) ##
40
-
41
- * No changes.
42
-
43
-
44
- ## Rails 6.1.2 (February 09, 2021) ##
45
-
46
- * No changes.
47
-
48
-
49
- ## Rails 6.1.1 (January 07, 2021) ##
50
-
51
- * Allow spaces in path to Yarn binstub and only run on precompile if needed.
52
-
53
- *Markus Doits*
54
-
55
- * Populate ARGV for app template.
56
-
57
- Fixes #40945.
58
-
59
- *Jonathan Hefner*
60
-
61
-
62
- ## Rails 6.1.0 (December 09, 2020) ##
63
-
64
- * Added `Railtie#server` hook called when Rails starts a server.
65
- This is useful in case your application or a library needs to run
66
- another process next to the Rails server. This is quite common in development
67
- for instance to run the Webpack or the React server.
68
-
69
- It can be used like this:
70
-
71
- ```ruby
72
- class MyRailtie < Rails::Railtie
73
- server do
74
- WebpackServer.run
75
- end
76
- end
77
- ```
78
-
79
- *Edouard Chin*
80
-
81
- * Remove deprecated `rake dev:cache` tasks.
3
+ * Remove deprecated `config` in `dbconsole`.
82
4
 
83
5
  *Rafael Mendonça França*
84
6
 
85
- * Remove deprecated `rake routes` tasks.
7
+ * Change default `X-XSS-Protection` header to disable XSS auditor
86
8
 
87
- *Rafael Mendonça França*
88
-
89
- * Remove deprecated `rake initializers` tasks.
90
-
91
- *Rafael Mendonça França*
9
+ This header has been deprecated and the XSS auditor it triggered
10
+ has been removed from all major modern browsers (in favour of
11
+ Content Security Policy) that implemented this header to begin with
12
+ (Firefox never did).
92
13
 
93
- * Remove deprecated support for using the `HOST` environment variable to specify the server IP.
14
+ [OWASP](https://owasp.org/www-project-secure-headers/#x-xss-protection)
15
+ suggests setting this header to '0' to disable the default behaviour
16
+ on old browsers as it can introduce additional security issues.
94
17
 
95
- *Rafael Mendonça França*
18
+ Added the new behaviour as a framework default from Rails 7.0.
96
19
 
97
- * Remove deprecated `server` argument from the rails server command.
20
+ *Christian Sutter*
98
21
 
99
- *Rafael Mendonça França*
22
+ * Scaffolds now use date_field, time_field and datetime_field instead of
23
+ date_select, time_select and datetime_select; thus providing native date/time pickers.
100
24
 
101
- * Remove deprecated `SOURCE_ANNOTATION_DIRECTORIES` environment variable support from `rails notes`.
25
+ *Martijn Lafeber*
102
26
 
103
- *Rafael Mendonça França*
27
+ * Fix a regression in which autoload paths were initialized too late.
104
28
 
105
- * Remove deprecated `connection` option in the `rails dbconsole` command.
29
+ *Xavier Noria*
106
30
 
107
- *Rafael Mendonça França*
31
+ ## Rails 7.0.0.alpha2 (September 15, 2021) ##
108
32
 
109
- * Remove depreated `rake notes` tasks.
33
+ * Fix activestorage dependency in the npm package.
110
34
 
111
35
  *Rafael Mendonça França*
112
36
 
113
- * Return a 405 Method Not Allowed response when a request uses an unknown HTTP method.
114
-
115
- Fixes #38998.
116
-
117
- *Loren Norman*
37
+ ## Rails 7.0.0.alpha1 (September 15, 2021) ##
118
38
 
119
- * Make railsrc file location xdg-specification compliant
39
+ * New and upgraded Rails apps no longer generate `config/initializers/application_controller_renderer.rb`
40
+ or `config/initializers/cookies_serializer.rb`
120
41
 
121
- `rails new` will now look for the default `railsrc` file at
122
- `$XDG_CONFIG_HOME/rails/railsrc` (or `~/.config/rails/railsrc` if
123
- `XDG_CONFIG_HOME` is not set). If this file does not exist, `rails new`
124
- will fall back to `~/.railsrc`.
42
+ The default value for `cookies_serializer` (`:json`) has been moved to `config.load_defaults("7.0")`.
43
+ The new framework defaults file can be used to upgrade the serializer.
125
44
 
126
- The fallback behaviour means this does not cause any breaking changes.
45
+ *Alex Ghiculescu*
127
46
 
128
- *Nick Wolf*
129
-
130
- * Change the default logging level from :debug to :info to avoid inadvertent exposure of personally
131
- identifiable information (PII) in production environments.
132
-
133
- *Eric M. Payne*
134
-
135
- * Automatically generate abstract class when using multiple databases.
136
-
137
- When generating a scaffold for a multiple database application, Rails will now automatically generate the abstract class for the database when the database argument is passed. This abstract class will include the connection information for the writing configuration and any models generated for that database will automatically inherit from the abstract class.
138
-
139
- Usage:
140
-
141
- ```bash
142
- $ bin/rails generate scaffold Pet name:string --database=animals
143
- ```
144
-
145
- Will create an abstract class for the animals connection.
146
-
147
- ```ruby
148
- class AnimalsRecord < ApplicationRecord
149
- self.abstract_class = true
150
-
151
- connects_to database: { writing: :animals }
152
- end
153
- ```
154
-
155
- And generate a `Pet` model that inherits from the new `AnimalsRecord`:
156
-
157
- ```ruby
158
- class Pet < AnimalsRecord
159
- end
160
- ```
161
-
162
- If you already have an abstract class and it follows a different pattern than Rails defaults, you can pass a parent class with the database argument.
163
-
164
- ```bash
165
- $ bin/rails generate scaffold Pet name:string --database=animals --parent=SecondaryBase
166
- ```
167
-
168
- This will ensure the model inherits from the `SecondaryBase` parent instead of `AnimalsRecord`
169
-
170
- ```ruby
171
- class Pet < SecondaryBase
172
- end
173
- ```
174
-
175
- *Eileen M. Uchitelle*, *John Crepezzi*
176
-
177
- * Accept params from url to prepopulate the Inbound Emails form in Rails conductor.
178
-
179
- *Chris Oliver*
180
-
181
- * Create a new rails app using a minimal stack.
182
-
183
- `rails new cool_app --minimal`
184
-
185
- All the following are excluded from your minimal stack:
186
-
187
- - action_cable
188
- - action_mailbox
189
- - action_mailer
190
- - action_text
191
- - active_job
192
- - active_storage
193
- - bootsnap
194
- - jbuilder
195
- - spring
196
- - system_tests
197
- - turbolinks
198
- - webpack
199
-
200
- *Haroon Ahmed*, *DHH*
201
-
202
- * Add default ENV variable option with BACKTRACE to turn off backtrace cleaning when debugging framework code in the
203
- generated config/initializers/backtrace_silencers.rb.
204
-
205
- `BACKTRACE=1 ./bin/rails runner "MyClass.perform"`
206
-
207
- *DHH*
208
-
209
- * The autoloading guide for Zeitwerk mode documents how to autoload classes
210
- during application boot in a safe way.
211
-
212
- *Haroon Ahmed*, *Xavier Noria*
213
-
214
- * The `classic` autoloader starts its deprecation cycle.
215
-
216
- New Rails projects are strongly discouraged from using `classic`, and we recommend that existing projects running on `classic` switch to `zeitwerk` mode when upgrading. Please check the [_Upgrading Ruby on Rails_](https://guides.rubyonrails.org/upgrading_ruby_on_rails.html) guide for tips.
47
+ * New applications get a dependency on the new `debug` gem, replacing `byebug`.
217
48
 
218
49
  *Xavier Noria*
219
50
 
220
- * Adds `rails test:all` for running all tests in the test directory.
221
-
222
- This runs all test files in the test directory, including system tests.
223
-
224
- *Niklas Häusele*
225
-
226
- * Add `config.generators.after_generate` for processing to generated files.
227
-
228
- Register a callback that will get called right after generators has finished.
229
-
230
- *Yuji Yaginuma*
231
-
232
- * Make test file patterns configurable via Environment variables
233
-
234
- This makes test file patterns configurable via two environment variables:
235
- `DEFAULT_TEST`, to configure files to test, and `DEFAULT_TEST_EXCLUDE`,
236
- to configure files to exclude from testing.
237
-
238
- These values were hardcoded before, which made it difficult to add
239
- new categories of tests that should not be executed by default (e.g:
240
- smoke tests).
241
-
242
- *Jorge Manrubia*
243
-
244
- * No longer include `rake rdoc` task when generating plugins.
245
-
246
- To generate docs, use the `rdoc lib` command instead.
247
-
248
- *Jonathan Hefner*
51
+ * Add SSL support for postgresql in `bin/rails dbconsole`.
249
52
 
250
- * Allow relative paths with trailing slashes to be passed to `rails test`.
53
+ Fixes #43114.
251
54
 
252
- *Eugene Kenny*
55
+ *Michael Bayucot*
253
56
 
254
- * Add `rack-mini-profiler` gem to the default `Gemfile`.
57
+ * Add support for comments above gem declaration in Rails application templates, e.g. `gem("nokogiri", comment: "For XML")`.
255
58
 
256
- `rack-mini-profiler` displays performance information such as SQL time and flame graphs.
257
- It's enabled by default in development environment, but can be enabled in production as well.
258
- See the gem [README](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md) for information on how to enable it in production.
59
+ *Linas Juškevičius*
259
60
 
260
- *Osama Sayegh*
61
+ * The setter `config.autoloader=` has been deleted. `zeitwerk` is the only
62
+ available autoloading mode.
261
63
 
262
- * `rails stats` will now count TypeScript files toward JavaScript stats.
263
-
264
- *Joshua Cody*
265
-
266
- * Run `git init` when generating plugins.
64
+ *Xavier Noria*
267
65
 
268
- Opt out with `--skip-git`.
66
+ * `config.autoload_once_paths` can be configured in the body of the
67
+ application class defined in `config/application.rb` or in the configuration
68
+ for environments in `config/environments/*`.
269
69
 
270
- *OKURA Masafumi*
70
+ Similarly, engines can configure that collection in the class body of the
71
+ engine class or in the configuration for environments.
271
72
 
272
- * Add benchmark generator.
73
+ After that, the collection is frozen, and you can autoload from those paths.
74
+ They are managed by the `Rails.autoloaders.once` autoloader, which does not
75
+ reload, only autoloads/eager loads.
273
76
 
274
- Introduce benchmark generator to benchmark Rails applications.
77
+ *Xavier Noria*
275
78
 
276
- `rails generate benchmark opt_compare`
79
+ * During initialization, you cannot autoload reloadable classes or modules
80
+ like application models, unless they are wrapped in a `to_prepare` block.
81
+ For example, from `config/initializers/*`, or in application, engines, or
82
+ railties initializers.
277
83
 
278
- This creates a benchmark file that uses [`benchmark-ips`](https://github.com/evanphx/benchmark-ips).
279
- By default, two code blocks can be benchmarked using the `before` and `after` reports.
84
+ Please check the [autoloading
85
+ guide](https://guides.rubyonrails.org/v7.0/autoloading_and_reloading_constants.html#autoloading-when-the-application-boots)
86
+ for details.
280
87
 
281
- You can run the generated benchmark file using:
282
- `ruby script/benchmarks/opt_compare.rb`
88
+ *Xavier Noria*
283
89
 
284
- *Kevin Jalbert*, *Gannon McGibbon*
90
+ * While they are allowed to have elements in common, it is no longer required
91
+ that `config.autoload_once_paths` is a subset of `config.autoload_paths`.
92
+ The former are managed by the `once` autoloader. The `main` autoloader
93
+ manages the latter minus the former.
285
94
 
286
- * Cache compiled view templates when running tests by default.
95
+ *Xavier Noria*
287
96
 
288
- When generating a new app without `--skip-spring`, caching classes is
289
- disabled in `environments/test.rb`. This implicitly disables caching
290
- view templates too. This change will enable view template caching by
291
- adding this to the generated `environments/test.rb`:
97
+ * Show Rake task description if command is run with `-h`.
292
98
 
293
- ```ruby
294
- config.action_view.cache_template_loading = true
295
- ```
99
+ Adding `-h` (or `--help`) to a Rails command that's a Rake task now outputs
100
+ the task description instead of the general Rake help.
296
101
 
297
- *Jorge Manrubia*
102
+ *Petrik de Heus*
298
103
 
299
- * Introduce middleware move operations.
104
+ * Add missing `plugin new` command to help.
300
105
 
301
- With this change, you no longer need to delete and reinsert a middleware to
302
- move it from one place to another in the stack:
106
+ *Petrik de Heus
303
107
 
304
- ```ruby
305
- config.middleware.move_before ActionDispatch::Flash, Magical::Unicorns
306
- ```
108
+ * Fix `config_for` error when there's only a shared root array.
307
109
 
308
- This will move the `Magical::Unicorns` middleware before
309
- `ActionDispatch::Flash`. You can also move it after with:
110
+ *Loïc Delmaire*
310
111
 
311
- ```ruby
312
- config.middleware.move_after ActionDispatch::Flash, Magical::Unicorns
313
- ```
112
+ * Raise an error in generators if an index type is invalid.
314
113
 
315
- *Genadi Samokovarov*
114
+ *Petrik de Heus*
316
115
 
317
- * Generators that inherit from NamedBase respect `--force` option.
116
+ * `package.json` now uses a strict version constraint for Rails JavaScript packages on new Rails apps.
318
117
 
319
- *Josh Brody*
118
+ *Zachary Scott*, *Alex Ghiculescu*
320
119
 
321
- * Allow configuration of eager_load behaviour for rake environment:
120
+ * Modified scaffold generator template so that running
121
+ `rails g scaffold Author` no longer generates tests called "creating
122
+ a Author", "updating a Author", and "destroying a Author".
322
123
 
323
- config.rake_eager_load
124
+ Fixes #40744.
324
125
 
325
- Defaults to `false` as per previous behaviour.
126
+ *Michael Duchemin*
326
127
 
327
- *Thierry Joyal*
128
+ * Raise an error in generators if a field type is invalid.
328
129
 
329
- * Ensure Rails migration generator respects system-wide primary key config.
130
+ *Petrik de Heus*
330
131
 
331
- When rails is configured to use a specific primary key type:
132
+ * `bin/rails tmp:clear` deletes also files and directories in `tmp/storage`.
332
133
 
333
- ```ruby
334
- config.generators do |g|
335
- g.orm :active_record, primary_key_type: :uuid
336
- end
337
- ```
134
+ *George Claghorn*
338
135
 
339
- Previously:
136
+ * Fix compatibility with `psych >= 4`.
340
137
 
341
- ```bash
342
- $ bin/rails g migration add_location_to_users location:references
343
- ```
138
+ Starting in Psych 4.0.0 `YAML.load` behaves like `YAML.safe_load`. To preserve compatibility
139
+ `Rails.application.config_for` now uses `YAML.unsafe_load` if available.
344
140
 
345
- The references line in the migration would not have `type: :uuid`.
346
- This change causes the type to be applied appropriately.
141
+ *Jean Boussier*
347
142
 
348
- *Louis-Michel Couture*, *Dermot Haughey*
143
+ * Allow loading nested locales in engines.
349
144
 
350
- * Deprecate `Rails::DBConsole#config`.
145
+ *Gannon McGibbon*
351
146
 
352
- `Rails::DBConsole#config` is deprecated without replacement. Use `Rails::DBConsole.db_config.configuration_hash` instead.
147
+ * Ensure `Rails.application.config_for` always cast hashes to `ActiveSupport::OrderedOptions`.
353
148
 
354
- *Eileen M. Uchitelle*, *John Crepezzi*
149
+ *Jean Boussier*
355
150
 
356
- * `Rails.application.config_for` merges shared configuration deeply.
151
+ * Remove `Rack::Runtime` from the default middleware stack and deprecate
152
+ referencing it in middleware operations without adding it back.
357
153
 
358
- ```yaml
359
- # config/example.yml
360
- shared:
361
- foo:
362
- bar:
363
- baz: 1
364
- development:
365
- foo:
366
- bar:
367
- qux: 2
368
- ```
154
+ *Hartley McGuire*
369
155
 
370
- ```ruby
371
- # Previously
372
- Rails.application.config_for(:example)[:foo][:bar] #=> { qux: 2 }
156
+ * Allow adding additional authorized hosts in development via `ENV['RAILS_DEVELOPMENT_HOSTS']`.
373
157
 
374
- # Now
375
- Rails.application.config_for(:example)[:foo][:bar] #=> { baz: 1, qux: 2 }
376
- ```
158
+ *Josh Abernathy*, *Debbie Milburn*
377
159
 
378
- *Yuhei Kiriyama*
160
+ * Add app concern and test keepfiles to generated engine plugins.
379
161
 
380
- * Remove access to values in nested hashes returned by `Rails.application.config_for` via String keys.
162
+ *Gannon McGibbon*
381
163
 
382
- ```yaml
383
- # config/example.yml
384
- development:
385
- options:
386
- key: value
387
- ```
164
+ * Stop generating a license for in-app plugins.
388
165
 
389
- ```ruby
390
- Rails.application.config_for(:example).options
391
- ```
166
+ *Gannon McGibbon*
392
167
 
393
- This used to return a Hash on which you could access values with String keys. This was deprecated in 6.0, and now doesn't work anymore.
168
+ * `rails app:update` no longer prompts you to overwrite files that are generally modified in the
169
+ course of developing a Rails app. See [#41083](https://github.com/rails/rails/pull/41083) for
170
+ the full list of changes.
394
171
 
395
- *Étienne Barrié*
172
+ *Alex Ghiculescu*
396
173
 
397
- * Configuration files for environments (`config/environments/*.rb`) are
398
- now able to modify `autoload_paths`, `autoload_once_paths`, and
399
- `eager_load_paths`.
174
+ * Change default branch for new Rails projects and plugins to `main`.
400
175
 
401
- As a consequence, applications cannot autoload within those files. Before, they technically could, but changes in autoloaded classes or modules had no effect anyway in the configuration because reloading does not reboot.
176
+ *Prateek Choudhary*
402
177
 
403
- Ways to use application code in these files:
178
+ * The new method `Rails.benchmark` gives you a quick way to measure and log the execution time taken by a block:
404
179
 
405
- * Define early in the boot process a class that is not reloadable, from which the application takes configuration values that get passed to the framework.
180
+ def test_expensive_stuff
181
+ Rails.benchmark("test_expensive_stuff") { ... }
182
+ end
406
183
 
407
- ```ruby
408
- # In config/application.rb, for example.
409
- require "#{Rails.root}/lib/my_app/config"
184
+ This functionality was available in some contexts only before.
410
185
 
411
- # In config/environments/development.rb, for example.
412
- config.foo = MyApp::Config.foo
413
- ```
186
+ *Simon Perepelitsa*
414
187
 
415
- * If the class has to be reloadable, then wrap the configuration code in a `to_prepare` block:
188
+ * Applications generated with `--skip-sprockets` no longer get `app/assets/config/manifest.js` and `app/assets/stylesheets/application.css`.
416
189
 
417
- ```ruby
418
- config.to_prepare do
419
- config.foo = MyModel.foo
420
- end
421
- ```
190
+ *Cindy Gao*
422
191
 
423
- That assigns the latest `MyModel.foo` to `config.foo` when the application boots, and each time there is a reload. But whether that has an effect or not depends on the configuration point, since it is not uncommon for engines to read the application configuration during initialization and set their own state from them. That process happens only on boot, not on reloads, and if that is how `config.foo` worked, resetting it would have no effect in the state of the engine.
192
+ * Add support for stylesheets and ERB views to `rails stats`.
424
193
 
425
- *Allen Hsu* & *Xavier Noria*
194
+ *Joel Hawksley*
426
195
 
427
- * Support using environment variable to set pidfile.
196
+ * Allow appended root routes to take precedence over internal welcome controller.
428
197
 
429
- *Ben Thorner*
198
+ *Gannon McGibbon*
430
199
 
431
200
 
432
- Please check [6-0-stable](https://github.com/rails/rails/blob/6-0-stable/railties/CHANGELOG.md) for previous changes.
201
+ Please check [6-1-stable](https://github.com/rails/rails/blob/6-1-stable/railties/CHANGELOG.md) for previous changes.
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2004-2020 David Heinemeier Hansson
1
+ Copyright (c) 2004-2021 David Heinemeier Hansson
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/RDOC_MAIN.rdoc CHANGED
@@ -15,21 +15,21 @@ application into three layers: Model, View, and Controller, each with a specific
15
15
  The <em><b>Model layer</b></em> represents the domain model (such as Account, Product,
16
16
  Person, Post, etc.) and encapsulates the business logic specific to
17
17
  your application. In \Rails, database-backed model classes are derived from
18
- <tt>ActiveRecord::Base</tt>. {Active Record}[link:files/activerecord/README_rdoc.html] allows you to present the data from
18
+ <tt>ActiveRecord::Base</tt>. {Active Record}[link:/files/activerecord/README_rdoc.html] allows you to present the data from
19
19
  database rows as objects and embellish these data objects with business logic
20
20
  methods. Although most \Rails models are backed by a database, models can also be ordinary
21
21
  Ruby classes, or Ruby classes that implement a set of interfaces as provided by
22
- the {Active Model}[link:files/activemodel/README_rdoc.html] module.
22
+ the {Active Model}[link:/files/activemodel/README_rdoc.html] module.
23
23
 
24
24
  == Controller layer
25
25
 
26
26
  The <em><b>Controller layer</b></em> is responsible for handling incoming HTTP requests and
27
- providing a suitable response. Usually this means returning \HTML, but \Rails controllers
27
+ providing a suitable response. Usually, this means returning \HTML, but \Rails controllers
28
28
  can also generate XML, JSON, PDFs, mobile-specific views, and more. Controllers load and
29
- manipulate models, and render view templates in order to generate the appropriate HTTP response.
29
+ manipulate models and render view templates in order to generate the appropriate HTTP response.
30
30
  In \Rails, incoming requests are routed by Action Dispatch to an appropriate controller, and
31
31
  controller classes are derived from <tt>ActionController::Base</tt>. Action Dispatch and Action Controller
32
- are bundled together in {Action Pack}[link:files/actionpack/README_rdoc.html].
32
+ are bundled together in {Action Pack}[link:/files/actionpack/README_rdoc.html].
33
33
 
34
34
  == View layer
35
35
 
@@ -37,19 +37,19 @@ The <em><b>View layer</b></em> is composed of "templates" that are responsible f
37
37
  appropriate representations of your application's resources. Templates can
38
38
  come in a variety of formats, but most view templates are \HTML with embedded
39
39
  Ruby code (ERB files). Views are typically rendered to generate a controller response,
40
- or to generate the body of an email. In \Rails, View generation is handled by {Action View}[link:files/actionview/README_rdoc.html].
40
+ or to generate the body of an email. In \Rails, View generation is handled by {Action View}[link:/files/actionview/README_rdoc.html].
41
41
 
42
42
  == Frameworks and libraries
43
43
 
44
- {Active Record}[link:files/activerecord/README_rdoc.html], {Active Model}[link:files/activemodel/README_rdoc.html],
45
- {Action Pack}[link:files/actionpack/README_rdoc.html], and {Action View}[link:files/actionview/README_rdoc.html] can each be used independently outside \Rails.
46
- In addition to that, \Rails also comes with {Action Mailer}[link:files/actionmailer/README_rdoc.html], a library
47
- to generate and send emails; {Action Mailbox}[link:files/actionmailbox/README_md.html], a library to receive emails within a Rails application;
48
- {Active Job}[link:files/activejob/README_md.html], a framework for declaring jobs and making them run on a variety of queueing
49
- backends; {Action Cable}[link:files/actioncable/README_md.html], a framework to
50
- integrate WebSockets with a \Rails application; {Active Storage}[link:files/activestorage/README_md.html],
51
- a library to attach cloud and local files to \Rails applications; {Action Text}[link:files/actiontext/README_md.html], a library to handle rich text content;
52
- and {Active Support}[link:files/activesupport/README_rdoc.html], a collection
44
+ {Active Record}[link:/files/activerecord/README_rdoc.html], {Active Model}[link:/files/activemodel/README_rdoc.html],
45
+ {Action Pack}[link:/files/actionpack/README_rdoc.html], and {Action View}[link:/files/actionview/README_rdoc.html] can each be used independently outside \Rails.
46
+ In addition to that, \Rails also comes with {Action Mailer}[link:/files/actionmailer/README_rdoc.html], a library
47
+ to generate and send emails; {Action Mailbox}[link:/files/actionmailbox/README_md.html], a library to receive emails within a Rails application;
48
+ {Active Job}[link:/files/activejob/README_md.html], a framework for declaring jobs and making them run on a variety of queueing
49
+ backends; {Action Cable}[link:/files/actioncable/README_md.html], a framework to
50
+ integrate WebSockets with a \Rails application; {Active Storage}[link:/files/activestorage/README_md.html],
51
+ a library to attach cloud and local files to \Rails applications; {Action Text}[link:/files/actiontext/README_md.html], a library to handle rich text content;
52
+ and {Active Support}[link:/files/activesupport/README_rdoc.html], a collection
53
53
  of utility classes and standard library extensions that are useful for \Rails,
54
54
  and may also be used independently outside \Rails.
55
55
 
@@ -72,7 +72,7 @@ and may also be used independently outside \Rails.
72
72
 
73
73
  Run with <tt>--help</tt> or <tt>-h</tt> for options.
74
74
 
75
- 4. Go to <tt>http://localhost:3000</tt> and you'll see: "Yay! You’re on \Rails!"
75
+ 4. Go to <tt>http://localhost:3000</tt>, and you'll see: "Yay! You’re on \Rails!"
76
76
 
77
77
  5. Follow the guidelines to start developing your application. You may find the following resources handy:
78
78
 
data/README.rdoc CHANGED
@@ -8,7 +8,6 @@ Railties is responsible for gluing all frameworks together. Overall, it:
8
8
 
9
9
  * and provides the Rails generators core.
10
10
 
11
-
12
11
  == Download
13
12
 
14
13
  The latest version of Railties can be installed with RubyGems:
data/lib/rails/all.rb CHANGED
@@ -15,7 +15,6 @@ require "rails"
15
15
  action_mailbox/engine
16
16
  action_text/engine
17
17
  rails/test_unit/railtie
18
- sprockets/railtie
19
18
  ).each do |railtie|
20
19
  begin
21
20
  require railtie