rails changelog


Here's the latest scoop on what's been happening in our codebase! We've got some exciting new features and improvements, as well as a few bug fixes to keep everything running smoothly. Let's dive in! 🚀

New Features

  • Capture Those Errors! 🎯: We've introduced ActiveSupport::Testing::ErrorReporterAssertions#capture_error_reports, a nifty new method to capture all reported errors within a block that match a specific error class. This is a game-changer for testing, making it super easy to verify error reports and their details. Say goodbye to error-handling headaches!

Bugfixes

  • Grapheme Length Fix: We've squashed a bug in MultibyteCharsExtrasTest#test_should_compute_grapheme_length that cropped up with Ruby 3.5.0dev. The fix aligns the test with the latest Unicode standards, ensuring accurate grapheme cluster handling for Devanagari characters. Your tests should now pass with flying colors! 🌈
  • Generator Options Resolved: Addressed issue #54021 by ensuring generator options are read correctly. This fix ensures smooth sailing for all your generator needs! ⚙️
  • Whitespace Woes No More: Tidied up the PasswordsController with proper indentation and whitespace management. Clean code is happy code! 🧹

Improvements

  • Rollup-Plugin-Terser: We've added rollup-plugin-terser as a dev dependency for Action Text, ensuring we no longer rely on indirect dependencies. This change boosts reliability and maintainability. Go team! 🎉
  • Rubocop Packaging Update: Upgraded rubocop-packaging to version 0.6.0, embracing its new plugin-based version. This update keeps us in line with the latest and greatest in code quality tools. 📦
  • Email Normalization Test: Added a test to ensure our email normalization process is on point. Consistent email handling for the win! 📧

That's all for now, folks! Keep those code contributions coming, and let's continue making our project awesome! 🌟

Included Commits

2025-03-21T20:12:20 See commit

This commit introduces rollup-plugin-terser as a development dependency to address issue #54795. The addition is necessary because this plugin was previously missing from Action Text, and the project should explicitly require it rather than depending on its indirect inclusion through Active Storage.

By making this change, the commit ensures that Action Text has the required dependency clearly defined, improving the reliability and maintainability of the codebase. This explicit requirement helps prevent potential issues that could arise from relying on transitive dependencies.

Files changed

2025-03-21T22:53:27 See commit

This commit resolves a failure in the MultibyteCharsExtrasTest#test_should_compute_grapheme_length test case, which emerged with the introduction of Ruby 3.5.0dev. The test was failing due to a change in behavior related to the handling of grapheme clusters in Unicode, specifically after the update to Unicode version 15.1.0. The test expected the grapheme length of the Devanagari character "त्र" to be 2, but it was returning 1, indicating that the character is now treated as a single extended grapheme cluster instead of being split into two separate components.

The commit acknowledges this change as expected and aligns the test's behavior with the updated Unicode standard, which now considers certain orthographic syllables, such as "क्या" (composed of KA + VIRAMA + YA), as single grapheme clusters. This adjustment addresses issue #54794 and ensures that the test suite accurately reflects the current Unicode specifications in Ruby.

Files changed

2025-03-23T04:27:08 See commit

This commit updates the rubocop-packaging dependency to version 0.6.0, transitioning to a new plugin-based architecture. The change aligns with the modifications introduced in pull request #53 of the rubocop-packaging repository, which officially transformed the package into a plugin.

As part of this update, the configuration in the .rubocop.yml file has been adjusted from using require to plugins, in accordance with the guidelines outlined in the RuboCop plugin migration guide. This ensures compatibility with the latest version and enhances the overall functionality of the code quality tool.

Files changed

2025-03-25T01:36:17 See commit

The commit introduces a new method, ActiveSupport::Testing::ErrorReporterAssertions#capture_error_reports, which allows for the capture of all reported errors within a specified block that match a given error class. This feature is particularly useful for testing, as it enables developers to easily verify the number and content of error reports generated during the execution of the block.

An example provided in the commit demonstrates how to use this new method. By wrapping error reporting calls in a block, users can capture specific errors, such as IOError, and assert their properties, including the number of reports and the messages associated with each error. This enhancement streamlines the testing process for error handling in Rails applications.

Files changed

2025-03-25T03:07:56 See commit

This commit addresses issue #54021 by ensuring that generator options are read correctly within the codebase. The adjustments made facilitate the proper handling of these options, which is essential for the intended functionality of the generator feature.

Overall, the changes enhance the reliability and effectiveness of the generator, contributing to a smoother user experience and resolving any existing problems related to option processing.

Files changed

2025-03-25T21:41:01 See commit

This commit introduces a new test specifically designed to validate the email normalization process within the application. The test aims to ensure that various email formats are correctly standardized, thereby improving the reliability and consistency of email handling in the system. By addressing potential discrepancies in email formatting, the test contributes to enhanced user experience and data integrity.

In addition to adding the test, the commit may involve updates to related documentation or code comments to clarify the purpose and functionality of the email normalization feature. Overall, this enhancement is a proactive step toward maintaining robust email processing capabilities in the application.

Files changed

2025-03-25T22:22:27 See commit

This commit addresses formatting issues in the PasswordsController by correcting indentation and removing unnecessary whitespaces. Such adjustments enhance the readability and maintainability of the code, making it easier for developers to navigate and understand the structure of the controller.

Overall, these changes contribute to better coding standards and practices within the project, ensuring that the code adheres to a consistent style, which can help prevent errors and improve collaboration among team members.

Files changed