rails changelog


Hey there, awesome developers! ๐ŸŽ‰ We've got some exciting updates and improvements lined up for you. Let's dive into the latest changes that will make your coding experience even better:

  • Improvement: Update Node.js Version for New Applications
    We've updated the .node-version file for new applications to Node.js version 22.21.1. This ensures that all new projects are aligned with the latest features and improvements, giving you a fresh start with the best Node.js has to offer! ๐Ÿš€

  • Improvement: Dynamic Rate Limiting
    Say hello to more flexible rate limits! Our rate limiting feature now supports dynamic to: and within: options, allowing you to use callables and method names. This means your rate limits can adapt based on user attributes or runtime conditions. Kudos to Matheus Richard for co-authoring this enhancement! โšก๏ธ

  • Improvement: Optimize String#strip_heredoc
    We've optimized the String#strip_heredoc method in Ruby to boost performance and efficiency. This tweak is all about making your code run smoother and faster. A big shoutout to Jean Boussier for the collaboration on this one! ๐Ÿ’ช

  • Bugfix: Foreign Key Test for MariaDB 12.1.1+
    We've fixed an issue with foreign key tests in ActiveRecord that cropped up due to changes in MariaDB 12.1.1's error message format. The test now aligns with the new format, ensuring compatibility and smooth sailing with the latest MariaDB features. ๐Ÿ›

  • Bugfix: AudioAnalyzerTest for FFmpeg 7 and 8
    Our AudioAnalyzerTest now accommodates changes in FFmpeg versions 7 and 8. We've updated the test to accept variations in duration and bitrate, ensuring compatibility without compromising on accuracy. ๐ŸŽง

  • Bugfix: ActiveRecord RuntimeRegistry Query Tracking
    We've fixed an issue in ActiveRecord's RuntimeRegistry by ensuring the cached parameter is properly tracked during query execution. This fix enhances the accuracy of your query metrics and keeps everything running smoothly. ๐Ÿ“Š

  • Chore: Remove Old Fixture Directory
    Out with the old! We've removed an outdated fixture directory as part of our ongoing cleanup efforts. This helps keep our codebase organized and efficient, making your development process a breeze. ๐Ÿงน

Enjoy these updates and keep on coding like rockstars! ๐ŸŒŸ

Included Commits

2025-11-07T14:24:45 See commit

The recent commit updates the .node-version file for newly generated applications to specify Node.js version 22.21.1. This change ensures that new projects will automatically use this version, aligning with the latest features and improvements available in Node.js.

The update is part of a broader effort to maintain consistency and compatibility across applications, allowing developers to leverage the benefits of the specified Node.js version from the start.

Files changed

2025-11-08T08:01:01 See commit

This commit resolves an issue with the foreign key test in ActiveRecord that arose due to changes in error message formatting in MariaDB version 12.1.1 and later. The update introduced per-table unique foreign key constraint names, which altered the expected error messages for duplicate foreign key constraints. The specific test that failed was expecting to match a certain error message format, but the new format provided by MariaDB did not align with this expectation, leading to a test failure.

To address this, the commit modifies the test to accommodate the new error message format introduced in MariaDB 12.1.1. By adjusting the expectations in the foreign key test, the commit ensures that the tests remain valid and accurately reflect the behavior of the database under the new version. This change helps maintain compatibility with the latest MariaDB features and ensures that the ActiveRecord migration functionality continues to work correctly.

Files changed

2025-11-10T06:00:25 See commit

This commit addresses an issue with the AudioAnalyzerTest that arose due to changes in the output of FFmpeg versions 7 and 8. The specific problem was related to discrepancies in the reported duration and bitrate of an MP3 file when analyzed with these different FFmpeg versions. The duration changed from 00:00:00.91 with a bitrate of 132 kb/s in FFmpeg 7 to 00:00:00.86 with a bitrate of 140 kb/s in FFmpeg 8.

To resolve this, the commit suggests that the audio analyzer should be updated to accept both values rather than strictly enforcing one, as it is not expected for the analyzer to alter the duration but rather to return the value directly from FFmpeg. This change ensures compatibility with both versions of FFmpeg while maintaining the integrity of the test results.

Files changed

2025-11-10T15:41:20 See commit

The commit focuses on optimizing the String#strip_heredoc method, which is used to remove leading whitespace from heredoc strings in Ruby. The enhancements aim to improve the performance and efficiency of this method, likely addressing any existing bottlenecks or inefficiencies in its implementation.

This optimization was co-authored by Jean Boussier, indicating collaboration in the development process. The specific changes made in the commit were not detailed, but the overall goal is to enhance the functionality and usability of the strip_heredoc method within the Ruby programming language.

Files changed

2025-11-11T13:34:49 See commit

This commit enhances the rate limiting functionality by introducing support for dynamic to: and within: options. Developers can now use callables, such as lambdas or procs, as well as method names represented as symbols, allowing for more flexible and context-sensitive rate limits that can adapt based on user attributes or specific runtime conditions.

The changes were made in the actionpack/lib/action_controller/metal/rate_limiting.rb file and were co-authored by Matheus Richard. This improvement aims to provide greater customization in rate limiting, making it more responsive to varying application needs.

Files changed

2025-11-12T03:05:16 See commit

The commit involves the deletion of an outdated fixture directory from the project. This action is likely part of a cleanup process to enhance the organization and maintainability of the codebase. By removing obsolete files, the commit helps streamline the project and potentially reduces confusion for developers working on the code.

Additionally, this removal may improve build times and resource usage, as unnecessary files are eliminated. Overall, this commit reflects a commitment to keeping the project up-to-date and efficient by removing elements that are no longer relevant or useful.

Files changed

2025-11-12T12:19:20 See commit

This commit addresses an issue in ActiveRecord's RuntimeRegistry by ensuring that the cached parameter is properly passed when registering a query execution. Previously, the cached parameter was not included, which could lead to inaccurate tracking of query execution metrics.

The modification made in the activerecord/lib/active_record/runtime_registry.rb file adds the cached parameter to the record method call, thereby enhancing the functionality and accuracy of the RuntimeRegistry. This change is part of the resolution for issue #56137.

Files changed

  • activerecord/lib/active_record/runtime_registry.rb