rails/railties/CHANGELOG.md
Takumasa Ochi d7e2575082
Prevent unnecessary application reloads in development
Previously, the Rails application would reload due to changes
in some files outside the autoload paths.
For instance, editing `app/README.md` would trigger a reload,
even though the reloaded classes and modules were identical
to those loaded previously.

This commit fixes this issue by ensuring the application reloads correctly
according to `Rails.autoloaders.main.dirs`, thereby preventing unnecessary reloads.

https://github.com/rails/rails/issues/37011#issuecomment-1322560651
2024-01-11 21:35:47 +09:00

4.4 KiB

  • Prevent unnecessary application reloads in development.

    Previously, some files outside autoload paths triggered unnecessary reloads. With this fix, application reloads according to Rails.autoloaders.main.dirs, thereby preventing unnecessary reloads.

    Takumasa Ochi

  • Use oven-sh/setup-bun in GitHub CI when generating an app with bun

    TangRufus

  • Disable pidfile generation in production environment.

    Hans Schnedlitz

  • Set config.action_view.annotate_rendered_view_with_filenames to true in the development environment.

    Adrian Marin

  • Support BACKTRACE ENV variable to turn off backtrace cleaning.

    Useful for debugging framework code:

    BACKTRACE=1 ./bin/rails server
    

    Alex Ghiculescu

  • Raise ArgumentError when reading config.x.something with arguments

    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

  • 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 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.

    RAILS_LOG_TO_STDOUT=true ./bin/test test/generators/actions_test.rb
    

    Steve Polito

  • 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 for previous changes.