Key improvements in this release encompass:
Active Support:
- The `ActiveSupport::FileUpdateChecker` now optimizes file reloading, only triggering when necessary during time travel test scenarios, thereby enhancing performance.
- `ActiveSupport::Logger` has been revised for compatibility with frozen strings and objects.
- The `transform_keys!` method in `ActiveSupport::HashWithIndifferentAccess` has been fixed to accurately handle key collisions, ensuring data integrity during key transformations.
Active Record:
- Enhancements to the query cache for pinned connections during multi-threaded transactional tests ensure that each thread maintains a separate cache, increasing test accuracy.
- The `has_secure_password` validation has been refined to ensure that passwords made up entirely of whitespace are appropriately validated.
Active Model:
- The `create_or_find_by` method now correctly manages transaction rollbacks, addressing prior issues where an `ActiveRecord::Rollback` error in an `after_save` callback would not effectively roll back the transaction.
Action View:
- Label tags are now correctly prefixed with the form namespace when a `for` option is specified, ensuring consistency in naming.
- The `javascript_include_tag` method has been enhanced to accept both strings and symbols for its type option, providing developers more flexibility.
Action Pack:
- Updates ensure that URL helpers for engines mounted at the application root properly handle the `SCRIPT_NAME`, preventing path generation issues.
- The method `Rails.application.reload_routes!` will no longer clear most routes, addressing a significant bug during development mode.
Rack and Rack-related:
- The framework has been updated to mitigate deprecation warnings associated with Rack 3.2, particularly regarding the transition from the `:unprocessable_entity` status code to `:unprocessable_content`.
Active Job and Active Storage:
- Fixes have been implemented for Active Job's retry job instrumentation, particularly when using the `:test` adapter.
- A deprecation warning related to `Aws::S3::Object#upload_stream` in `ActiveStorage::Service::S3Service` has been resolved.
Action Cable and Action Mailer:
- Action Cable has been modified to ensure compatibility with the redis gem version 5.4.1, while Action Mailer remains unchanged.
Guides and Railties:
- The Guides section remains static, indicating no new content, although Railties has received fixes to ensure it functions correctly with route loading.
Moreover, the Rails console has been updated to avoid overriding user-defined IRB names, enhancing the user experience for those who customize their terminal prompts.
In summary, Rails 8.0.3 focuses on improving performance, enhancing compatibility, and fixing bugs across various components, contributing to a more robust development experience. As the framework continues to evolve, developers can expect further refinements and features in future releases, which will likely build upon user feedback and the changing landscape of web development technologies
Ruby on Rails 8.0.3 released
Ruby on Rails version 8.0.3 has been released, featuring numerous improvements and bug fixes across various components of the framework. Key updates include enhancements to Active Support, such as preventing unnecessary reloads and handling collisions in HashWithIndifferentAccess, as well as improvements to Active Record's query cache and transactional tests. Additionally, Action View and Action Pack have received attention, with fixes addressing issues like label prefixing and URL helpers for engines mounted at the application root.