rails/railties/CHANGELOG.md

115 lines
3.6 KiB
Markdown
Raw Normal View History

* Raise `ArgumentError` when reading `config.x.something` with arguments
```ruby
config.x.this_works.this_raises true # raises ArgumentError
```
*Sean Doyle*
* 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.
*DHH*
2024-01-01 04:05:54 +00:00
* Updated system tests to now use headless Chrome by default for the new applications.
*DHH*
* Add GitHub CI files for dependabot, brakeman, rubocop, and running tests by default. Can be skipped with --skip-ci.
*DHH*
* Add brakeman gem by default for static analysis of security vulnerabilities. Allow skipping with --skip-brakeman option.
*vipulnsward*
* Add RuboCop with rules from rubocop-rails-omakase by default. Skip with --skip-rubocop.
*DHH* and *zzak*
* Use `bin/rails runner --skip-executor` option to not wrap the runner script
with an Executor.
*Ben Sheldon*
* Fix isolated engines to take `ActiveRecord::Base.table_name_prefix` into consideration.
This will allow for engine defined models, such as inside Active Storage, to respect
Active Record table name prefix configuration.
*Chedli Bourguiba*
Fix running db:system:change with no Dockerfile The db:system:change command was [updated][1] to include support for changing the database packages installed in the Dockerfile. However, it never checks that the Dockerfile exists before trying to perform a substitution and will raise an error when its missing: ``` /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/actions/file_manipulation.rb:272:in `binread': No such file or directory @ rb_sysopen - /home/hartley/test/dev_minimal/Dockerfile (Errno::ENOENT) from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/actions/file_manipulation.rb:272:in `gsub_file' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/generators/rails/db/system/change/change_generator.rb:47:in `edit_dockerfile' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/command.rb:28:in `run' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:127:in `invoke_command' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:134:in `block in invoke_all' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:134:in `each' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:134:in `map' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:134:in `invoke_all' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/group.rb:232:in `dispatch' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/base.rb:584:in `start' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/commands/db/system/change/change_command.rb:20:in `perform' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/command.rb:28:in `run' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:127:in `invoke_command' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/command/base.rb:178:in `invoke_command' from /home/hartley/.cache/asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.3.0/lib/thor.rb:527:in `dispatch' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/command/base.rb:73:in `perform' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/command.rb:71:in `block in invoke' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/command.rb:149:in `with_argv' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/command.rb:69:in `invoke' from /home/hartley/src/github.com/skipkayhil/rails/railties/lib/rails/commands.rb:18:in `<top (required)>' from bin/rails:4:in `require' from bin/rails:4:in `<main>' ``` This commit fixes the issue by checking first whether the Dockerfile exists before trying to perform any substitution on it. [1]: ac9f08d1c354baab6362d7050a3c9e43db09689c
2023-11-09 15:49:19 +00:00
* Fix running `db:system:change` when app has no Dockerfile.
*Hartley McGuire*
* In Action Mailer previews, list inline attachments separately from normal
attachments. For example, attachments that were previously listed like
> Attachments: logo.png file1.pdf file2.pdf
will now be listed like
> Attachments: file1.pdf file2.pdf (Inline: logo.png)
*Christian Schmidt* and *Jonathan Hefner*
* In mailer preview, only show SMTP-To if it differs from the union of To, Cc and Bcc.
*Christian Schmidt*
* Enable YJIT by default on new applications running Ruby 3.3+
Adds a `config/initializers/enable_yjit.rb` initializer that enables YJIT
when running on Ruby 3.3+.
*Jean Boussier*
* In Action Mailer previews, show date from message `Date` header if present.
*Sampat Badhe*
* Exit with non-zero status when the migration generator fails.
*Katsuhiko YOSHIDA*
* Use numeric UID and GID in Dockerfile template
The Dockerfile generated by `rails new` sets the default user and group
by name instead of UID:GID. This can cause the following error in kubernetes:
```
container has runAsNonRoot and image has non-numeric user (rails), cannot verify user is non-root
```
This change sets default user and group by their numeric values.
*Ivan Fedotov*
* Disallow invalid values for rails new options.
The `--database`, `--asset-pipeline`, `--css`, and `--javascript` flags for
`rails new` can all take different options. This change adds checks to
options to make sure the user enters the correct value.
*Tony Drake*, *Akhil G Krishnan*, *Petrik de Heus*
* Conditionally print `$stdout` when invoking `run_generator`
In an effort to improve the developer experience when debugging
generator tests, we add the ability to conditionally print `$stdout`
instead of capturing it.
This allows for calls to `binding.irb` and `puts` work as expected.
```sh
RAILS_LOG_TO_STDOUT=true ./bin/test test/generators/actions_test.rb
```
*Steve Polito*
2023-09-27 03:08:31 +00:00
* Remove the option `config.public_file_server.enabled` from the generators
for all environments, as the value is the same in all environments.
*Adrian Hirt*
Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/railties/CHANGELOG.md) for previous changes.