We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
rails changelog
Welcome to the latest update! π We've been busy squashing bugs, improving performance, and tidying up the codebase to make your development experience smoother and more delightful. Here's a rundown of the latest changes:
-
New feature: We've improved the behavior of
method_added
andsingleton_method_added
methods by ensuring they callsuper
. This change is crucial for maintaining the functionality of code that tracks method definitions or performs actions when methods are added. Now, ancestor callbacks will be executed as expected, enhancing the compatibility and predictability of Ruby code. π -
Bugfix: We tackled a pesky issue causing garbage collection crashes when using
ObjectSpace::WeakKeyMap
withThread
orFiber
objects as keys. Our workaround involves a customWeakThreadKeyMap
class, ensuring stability in the ActiveRecord connection pool while the root cause is investigated. ππ¨ -
Improvement: Connection pools no longer linger around unnecessarily, thanks to a revamped query cache mechanism. We've shifted to using an atomic integer for versioning, reducing the load on Rails CI and boosting performance. πͺ
-
Improvement: Performance woes be gone! We refactored the query cache and connection lease registry, replacing the inefficient
WeakKeyMap
with a specialized weak map that handlesThread
orFiber
keys with finesse. Enjoy smoother operations on Ruby 3.1 and 3.2! β‘ -
Chore: A little spring cleaning never hurt anyone! We removed an unused
require
statement from theresources_test.rb
file, tidying up the codebase and optimizing load times during testing. π§Ή -
Bugfix: Say goodbye to center alignment issues in guides blocks. We've fixed the wonky alignment, making the guides more visually appealing and easier to read. Your eyes will thank you! π
-
Bugfix: We fixed several RuboCop offenses in
actionpack/lib/action_dispatch/journey/parser.rb
. By adding a frozen string literal comment and addressing layout issues, we've made the code more readable and maintainable. π
We hope these updates enhance your development journey. Keep coding and enjoy the improvements! π
Hey there, awesome developers! π We've got some exciting updates and fixes to share with you. Dive into the latest changes and enhancements that are sure to make your coding experience even more delightful. Here's what's new:
-
New feature: Add route helper
connect
for WebSockets π
Say hello to the newconnect
route helper, designed to make your WebSocket connections a breeze! This nifty addition streamlines the process, enhancing real-time communication and making your app even more dynamic and responsive. Get ready to supercharge your WebSocket interactions! -
Improvement: Allow railties to use lazy routes π€οΈ
Railties just got a major upgrade! They can now seamlessly use lazy routes without any hiccups. By setting the route set class config earlier, we've ensured that your railties play nice with lazy loading, making route management smoother and more flexible. -
New feature: Bulk insert fixtures on SQLite ποΈ
Speed up your data loading with our new bulk insert feature for SQLite! This update allows multiple records to be inserted in one go, boosting performance and making your testing and development process faster and more efficient. Get ready for some serious time-saving! -
Bugfix: Fix PostgresqlAdapter when prepared statements are disabled π
We've squashed a bug in the PostgreSQL adapter! The issue with handling prepared statements when they're disabled is now resolved. Plus, we've cleaned up the code by removing thewithout_prepared_statements?
method, making your PostgreSQL experience smoother and more robust. -
Improvement: Using signed_id for finding and setting session record π
Session management just got a security boost! By usingsigned_id
for session records, we're ensuring that your session tokens are more secure and tamper-resistant. This update streamlines session handling and enhances the overall security of your application. -
Improvement: Support minitest 5.25+ π§
We've got you covered with the latest Minitest updates! Our code now supports Minitest 5.25+ and its newwith_info_handler
API, ensuring compatibility with the newest features while keeping support for all Minitest 5 versions. Testing just got even better! -
Bugfix: Check invalid enum options for the new syntax π«
No more sneaky invalid enum options! We've added a validation mechanism to catch those pesky_
prefixed options that are no longer valid in the new syntax. This update enforces the new rules and helps you avoid potential issues, keeping your code clean and error-free. -
Bugfix: Fix
create_table
with:auto_increment
option for MySQL adapter π
Creating tables with auto-incrementing fields is now a breeze! We've fixed the issue with the:auto_increment
option in the MySQL adapter, allowing you to define primary keys that automatically increase in value without a hitch. Enjoy seamless database operations! -
Chore: Update development_dependencies_install.md π
We've spruced up thedevelopment_dependencies_install.md
file! While the specifics aren't detailed, expect clearer instructions and possibly some new additions to make installing development dependencies easier and more intuitive. Happy coding!
That's all for now, folks! Keep building amazing things and stay tuned for more updates. π
Hey there! We've got some exciting updates and improvements to share with you. Check out the latest changes below:
New Features
-
Password Reset Flow π οΈ
- We've rolled out a shiny new password reset feature for the authentication generator. Now users can easily reset their passwords with new views (
new.html.erb
andedit.html.erb
), aPasswordsController
, and aPasswordsMailer
. This also includes streamlined HTML and updated routes to make the process smooth and user-friendly.
- We've rolled out a shiny new password reset feature for the authentication generator. Now users can easily reset their passwords with new views (
-
Running Tests by Line Range π
- Added a section in the contribution guide explaining how to run tests by specifying a line range. This is a game-changer for contributors who want to focus on specific parts of the codebase without running the entire test suite.
Improvements
-
Faster Route Mapping Scope Lookups π
- Optimized the performance of route mapping scope lookups by merging inherited values directly into the immediate hash. This reduces unnecessary iterations, especially with deeply nested routes, making lookups faster and more efficient.
-
Enhanced Filename Sanitization ποΈ
- Updated
ActiveStorage::Filename#sanitized
to include new unsafe characters specific to Windows filenames ("
,<
,>
,?
,*
). This ensures better compatibility and fewer errors when handling file uploads.
- Updated
-
Completion of #to_fs Functionality βοΈ
- Finalized the
#to_fs
method after removing deprecated features. This makes the method more robust and aligns it with current standards for better code quality and maintainability.
- Finalized the
Bug Fixes
-
Ruby 3.4.0dev Warning π
- Resolved a warning related to the
Pilot.generates_token_for
method in Ruby 3.4.0dev. This fix ensures that blocks passed to this method are properly handled, eliminating the warning and improving compatibility with future Ruby versions.
- Resolved a warning related to the
-
PostgreSQLAdapterTest Error π
- Fixed an error in
PostgreSQLAdapterTest#test_disable_extension_without_schema
caused by aPG::DuplicateObject
error. The fix also applies to thetest_disable_extension_with_schema
test to prevent similar issues.
- Fixed an error in
-
Removed Duplicate Line π
- Cleaned up the code by removing a duplicated line that has been around since a previous commit. This helps maintain a tidy and efficient codebase.
Chores
- Deleted CHANGELOG Entry ποΈ
- Removed a specific entry from the CHANGELOG regarding the
bin/rails boot
command. This change has been cherry-picked to the 7-2-stable branch for consistency.
- Removed a specific entry from the CHANGELOG regarding the
That's all for now! Keep an eye out for more updates and happy coding! π
Here's the latest and greatest from our recent updates! π
### New Features
- **Authentication generator supports an `--api` flag**: π Now you can generate API-only controllers and models without view templates, making your API-centric projects leaner and meaner. Plus, the sessions view template is now in an ERB generator, so gems like `tailwindcss-rails` can join the party with specialized templates.
- **Docker build warnings become errors**: π οΈ We've made Docker builds more robust by generating errors when warnings pop up, ensuring potential issues are addressed early.
- **Add bin/dev by default**: π A uniform way to start dev mode whether you're using jsbundling or importmaps. This makes your development process smoother and more consistent.
- **Add missing `text_area` alias in Action View FormHelper**: π Now you can use `textarea` as an alias for `text_area`, making form creation even more intuitive.
### Bugfixes
- **Session tokens ought not be null**: π We've fixed an issue in the authentication generator to ensure session tokens are never null, improving data integrity.
- **Fix `delegate_missing_to allow_nil: true` with implicit self**: π οΈ Improved the robustness of the method, ensuring it handles cases more gracefully without relying on exceptions.
- **Fix some more Rails 7.3 references**: π
Updated deprecation warnings to reflect that certain methods will be removed in Rails 8.0, not 7.3.
### Improvements
- **Rename check_box to checkbox**: π For better clarity and consistency, we've renamed `check_box` to `checkbox`. Don't worry, aliases are provided for backward compatibility.
- **ActiveModel human_attribute_name raises error on missing translations**: π Models will now raise errors for missing translations if `config.i18n.raise_on_missing_translations` is set to true, just like controllers and views.
### Chores
- **Get rid of unused AbstractAdapter#log method**: π§Ή Cleaned up the codebase by removing an unused method, making the ActiveRecord library more efficient.
Enjoy the new features and improvements, and happy coding! π
Changelog
Welcome to the latest updates! We've been busy squashing bugs and making some nifty improvements. Here's what's new:
New feature: Always discard Trilogy multi-statement results
- Improved handling of multi-statement results in the Trilogy adapter for ActiveRecord.
- Ensured results are discarded on the same connection used for the query, eliminating unnecessary connection management and enhancing performance. π
New feature: Always discard mysql2 multi-statement results
- Enhanced the MySQL2 adapter to discard multi-statement results consistently.
- Incorporated
abandon_results!
logic within theraw_execute
method for better resource management.
New feature: Optimize ActiveRecord::QueryLogs
- Optimized
ActiveRecord::QueryLogs
to significantly reduce memory allocation and improve performance. - Benchmarked improvements show memory usage dropping from 1440 bytes to 840 bytes and speed increasing from 521.552k to 1.070M iterations per second. ποΈπ¨
Bugfix: Fix test command to exit 1 on LoadError
- Ensured the test command exits with status code 1 on a
LoadError
. - Modified DidYouMean search to trigger only when the specific test file fails to load, improving error handling.
Bugfix: Address ApplicationTests::QueryLogsTest errors
- Resolved
NoMethodError
inApplicationTests::QueryLogsTest
related to theupdate_formatter
method. - Ensured the test runs successfully, improving test suite stability.
Bugfix: Fix specs for QueryLogsTest#test_sql_commenter_format
- Addressed issues in
QueryLogsTest
related to SQL commenter format. - Ensured test specifications align with intended functionality, enhancing reliability.
Welcome to the latest update! We've got some cool new features, improvements, and bug fixes that are sure to make your development life a bit easier. Check out the details below! π
New Features
- Basic Sessions Generator Added: π We've added a basic sessions generator to kickstart your authentication system using database-tracked sessions. This includes models, controllers, views, and migrations for creating users and sessions, along with tests to ensure everything works smoothly. Get ready for effortless user login/logout and session management!
- Script Folder and Generator: π A new default folder for one-off or general-purpose scripts has been added, along with a script generator. Now you can easily create and manage scripts for data migrations, cleanups, and more. Just run
rails generate script my_script
and you're good to go!
Improvements
- Not-Null Modifier in Migrations: π οΈ We've enhanced the migration process by adding a not-null type modifier. This ensures that certain attributes cannot be null, making your data integrity stronger. Tests are included to verify this new feature.
- Sessions Generator Enhancements: π Improved how the sessions generator adds
bcrypt
by using Thor'suncomment_lines
instead ofgsub_file
. Ifbcrypt
is missing, it will be added automatically, ensuring a smoother setup process. - Deprecate Constant Improvements: π Enhanced the
deprecate_constant
function to handle multiple definitions more gracefully. Now, the deprecation warning will only be issued once, even if the constant is defined multiple times.
Bug Fixes
- Deprecate ActiveRecord::ImmutableRelation: π The
ActiveRecord::ImmutableRelation
class has been deprecated and replaced withActiveRecord::UnmodifiableRelation
. This change includes updates to methods and tests to ensure a smooth transition. - Markdown Table Collapse Fix: π Fixed an issue with the markdown table collapse in the
configuring.md
file. Now, the table collapses correctly, improving readability and usability. - Loaded Relation Batching Fix: π Fixed a bug with loaded relation batching when limits and reverse order are applied. This ensures that the correct records are returned in the expected order, preventing any inconsistencies.
We hope these updates make your development experience even better. Happy coding! π»β¨
Here's the latest and greatest from our codebase updates! π Dive in to see whatβs new, whatβs fixed, and whatβs improved. Enjoy!
New feature
- Upgrade devcontainer to use Ruby 3.3.4: π Weβve upgraded the devcontainer to Ruby 3.3.4. This means you get all the latest bug fixes, security patches, and performance boosts. Happy coding with the newest Ruby features!
Bugfix
-
Make http_cache_forever use
immutable: true
: π οΈ Weβve updated thehttp_cache_forever
function to useimmutable: true
. This ensures your cached data remains rock solid and unchangeable, improving reliability and consistency. No more sneaky data changes! -
Fix a typo: π Corrected a typo in the actionpack/CHANGELOG.md file. "Specificied" is now "specified". This ensures our docs are accurate, especially regarding how
ETag
andLast-Modified
headers are handled. -
Guides CSS to format code tags in h2 headings: β¨ Fixed some wonky formatting for code tags in h2 headings. Now, method names in h2 headings look consistent and neat, with a font-weight of 400 and a font-size of 2rem. Your reading experience just got a whole lot better!
Improvement
-
Added usage documentation for ActiveSupport::NumberHelper: π Added new documentation for ActiveSupport::NumberHelper. Now you can easily find out how to format numbers in various ways using this handy module. The commit includes the
[ci skip]
tag to skip running tests for this documentation update. -
Check If-None-Match before If-Modified-Since with strict freshness: π Updated the code to check the
If-None-Match
header before theIf-Modified-Since
header. This ensures strict freshness and prevents serving stale content. By prioritizingIf-None-Match
, we improve resource validation efficiency and reduce unnecessary data transfer.
Thatβs all for now, folks! Keep your eyes peeled for more updates and happy coding! π
Welcome to the latest updates! We've got some nifty improvements and essential bug fixes to share. Let's dive in! π
New feature: Optimized HashWithIndifferentAccess#to_hash
We've turbocharged the HashWithIndifferentAccess#to_hash
method! π Instead of the inefficient process of starting from an empty hash and inserting keys one by one, we now directly convert the hash to an array and transform the values. This means fewer reallocations and re-hashing of keys. Plus, we've introduced a dedicated method to convert values to hashes, eliminating unnecessary checks. Benchmark tests show a significant speed boostβup to 1.62x faster! π
Bugfix: Deadlock in ConnectionPool#checkout
No more deadlocks! π οΈ We've fixed a critical issue in the ConnectionPool#checkout
method that caused deadlocks when multiple threads tried to access the connection pool simultaneously. By implementing a new locking mechanism, we've ensured that threads can safely check out connections without causing conflicts. Smooth sailing ahead! π
Improvement: Deprecation Changelog for bin/rake stats
Out with the old, in with the new! π We've added a deprecation changelog entry for the bin/rake stats
command in favor of bin/rails stats
. This update is part of our ongoing efforts to streamline and modernize our tools. Keep an eye on the changelog for more details!
Bugfix: Fixed Broken Links in Dev Containers Start Guide
Say goodbye to broken links! π We've updated the URLs in the Dev Containers start guide from markdown to HTML format. Now you can seamlessly follow the guide and set up your Rails application in a container without any hiccups. Happy coding! π»
Improvement: Documented immutable Option in expires_in
We've added documentation for the immutable
option in the expires_in
method. π When set to true, this option adds the immutable
directive to the Cache-Control header, indicating that the response body won't change over time. Perfect for long-term caching! ποΈ
Chore: Updated CHANGELOG.md
Routine housekeeping! π§Ή We've updated the CHANGELOG.md
file to document recent changes. This update was co-authored by Petrik de Heus. Thanks, Petrik! π
That's all for now! Keep those updates coming and happy coding! π
Hey there, fellow developers! We've got some exciting updates and fixes for you. Check out the latest changes below:
New feature
- Support selenium-webdriver 4.22.0 π: We've added support for selenium-webdriver 4.22.0, which enables Chrome DevTools Protocol (CDP) in Firefox by default. This is essential because Firefox 129 deprecates CDP. With this update, tests defining extra capabilities in Firefox and headless Firefox should now pass without a hitch.
Bugfixes
- Devcontainer settings for mysql2 gem π: Fixed the
devcontainer
command to generate the correct settings for MySQL. Previously, it set an adapter name instead of the required database name, causing incorrect configurations. - FromAsCasing offenses in Dockerfile π³: Resolved casing errors in the Dockerfile, ensuring a smooth and error-free build process.
- ActiveRecord dirty docs π: Improved the documentation for ActiveRecord dirty, making it clearer and more accurate. Now, understanding and using the functionality to track changes to an object's attributes should be a breeze.
Improvements
- ActionController::Base inclusions π: Made inclusions explicit instead of dynamic to enhance static analysis accuracy. This change helps tools understand the ancestors of controllers better, improving features like code completion and other editor functionalities.
- getting_started.md updates βοΈ: Updated the guide by changing single quotes to double quotes for consistency. Also, modified
comments/_form.html.erb
to pass the article as a local variable rather than an instance variable, improving code efficiency and organization.
Stay tuned for more updates and keep coding! ππ»
Welcome to the latest updates! Hereβs a roundup of the latest changes, improvements, and fixes we've made to keep things running smoothly and efficiently. π
New Features & Improvements
-
Improved Documentation for Test Transactions with Multiple Databases: We've added comprehensive documentation to guide you through using test transactions when dealing with multiple databases. This includes examples and best practices to help you navigate multi-database environments with ease. π
-
Rewind Code Optimization: The rewind code has been moved closer to the
read_body_stream
method in theraw_post
method ofaction_dispatch/http/request.rb
. This makes the code more efficient by only rewinding the body stream when necessary. Additionally, we've updated therack
gem version from 3.0.11 to 3.1.3 to keep things up-to-date. βοΈ -
Correct Table Name in Migration Documentation: The table name in the schema for the
add_reference
migration has been corrected in the Active Record Migration Documentation. This ensures accuracy and clarity, helping you avoid any confusion or errors. π -
Removed Outdated Migration Guide: The "Migrating from Classic to Zeitwerk" guide has been removed since Rails 7 apps now require running in
zeitwerk
mode. All necessary information is now covered in the "Autoloading and Reloading Constants" guide. ποΈ
Bugfixes
-
Fixed
with_connection
Offences in Active Record: We've tackled issues with thewith_connection
method within Active Record, ensuring it operates correctly and efficiently. This fix enhances the stability and performance of Active Record, making your database interactions smoother. π οΈ -
Restored Original
alias_attribute
Behavior: Thealias_attribute
method now correctly ignores methods defined in parent classes, restoring the behavior that existed prior to a previous update. This fix alignsalias_attribute
with regular attribute definitions, resolving the issue reported in issue #52144. π§ -
Fixed Nested Exception Backtraces on Ruby Master: Adjustments have been made to handle nested exception backtraces correctly in tests on Ruby master. This fix addresses issues reported in issue #16495 and issue #20275, ensuring reliable backtrace displays. π
Stay tuned for more updates and happy coding! π»β¨
Here's a rundown of the latest and greatest updates:
### New feature
- **Define the new `start_transaction.active_record` event**: π A brand new event that gets triggered when a transaction is started in Active Record. This includes keys for both the transaction and connection objects. Tests are included to ensure it works correctly in various scenarios, and the Active Support Instrumentation guide has been updated to reflect this new event.
### Improvement
- **Restore some `config.secret_key_base` functionality**: π We've brought back some crucial functionality that was accidentally removed. Now, `Rails.application.secret_key_base` always delegates to `config.secret_key_base`, and manually set values are validated. Plus, the `generate_local_secret` process is simplified for better clarity and efficiency.
- **Improve documentation of `RecordNotSaved` and `RecordNotDestroyed`**: π Added examples and explanations for better understanding. Now you'll know that `RecordNotDestroyed` is triggered by throwing `:abort` in callbacks, thanks to the co-author Carlos Antonio da Silva.
- **Bring back `puma.rb` to the target of `app:update`**: π To make sure you don't miss out on any improvements, `puma.rb` is back in the `app:update` process. This ensures you stay updated with the latest enhancements while still allowing for custom updates.
### Bugfix
- **Correct typo for Active Record Callbacks doc**: βοΈ Fixed a typo to keep our documentation top-notch.
- **Fix a value for disabling `enqueue_after_transaction_commit`**: π§ Corrected the value type to ensure the method functions as intended. Now it expects Symbol values, not Boolean.
- **Pin `sprockets-rails` version to 3.4.2 or lower**: π Due to issues with version 3.5.0, we've pinned `sprockets-rails` to 3.4.2 or lower to maintain stability until the problem is fixed.
### Chore
- **Mark TimeZone TZInfo quacking methods as :nodoc:**: π These methods are now hidden from the documentation, keeping things clean and focused on the supported methods.
Stay tuned for more updates, and happy coding! π
Here's the latest scoop on our updates and fixes! π
New Features
- Minimum in test case should be picked after conditions: We've revamped the way minimum values are picked in test cases by adding specific conditions. This ensures our tests are more accurate and reliable. π οΈ
Bugfixes
- Parameterize table_name when constructing insert alias: Fixed a pesky syntax error that popped up when the table name included the database name. Now, the code handles this scenario smoothly without any hiccups. π«π§
- Fix a typo in Active Record and PostgreSQL guide: Corrected a typo that could cause confusion in the Active Record and PostgreSQL guide. Clear and precise documentation for the win! πβ¨
- [FIX] Pluck columns should correctly cast types when using PostgreSQL: Resolved an issue where pluck columns were not correctly casting types in PostgreSQL. Now, type casting works flawlessly, even with conflicting column names. π―
Improvements
- Add usage guidelines to transaction.active_record docs: Spruced up the transaction.active_record documentation by adding usage guidelines. Now, developers can easily follow best practices for using transactions in ActiveRecord. ππ‘
- Add ensure to reset table name in tests: Introduced an ensure block to reset the table name in tests, ensuring no lingering changes affect subsequent tests. Consistency and reliability are key! π
That's all for now! Keep coding and stay awesome! π
We've been busy squashing bugs and making tweaks to keep everything running smoothly. Check out the latest updates:
Bugfixes
- Render Test Warning: π¨ Fixed a warning in the
render_test
file where a literal string was set to be frozen in the future. Now, your code is future-proof and warning-free! π - Typo in Configuring Guide: π Corrected a sneaky typo in the configuring guide. No more confusionβjust clear, accurate instructions to help you set up your systems like a pro! π
Welcome to the latest update! We've made some significant improvements and fixes to enhance performance, streamline processes, and ensure better reliability. Here's a rundown of what's new and improved:
π New Features & Improvements
-
Memory Optimization in Active Record Models: We've removed the unnecessary casting of
stale_state
to a string to reduce allocations and memory footprint. This change is based on a benchmark that showed a significant number of numeric strings being created, leading to improved memory usage. While this breaks the final assertion of the Rails 6.1 Marshal backward compatibility test, the tradeoff is deemed acceptable for the benefits it brings. -
Simplified
with
Method in ActiveRecord::Relation: TheWithChain
class has been removed, and thewith
method now directly callsspawn.with!(*args)
. This change simplifies the code and removes unnecessary complexity, making the codebase more straightforward and easier to understand. -
Enhanced Debugger Configuration: To prevent runtime overhead and memory bloat, we've added
require: "debug/prelude"
after thedebug
Gemfile entry. This allows users to use breakpoint methods likedebugger
,binding.break
, andbinding.b
without automatically activating the debugger upon requiring the gem. This change aims to improve performance, particularly during CI builds.
π Bug Fixes
-
Error Handling in
ActiveRecord::Relation#with
: An error will now be raised when a block is passed to thewith
method. This prevents unexpected behavior and potential bugs, ensuring developers are alerted to incorrect usage and can correct it accordingly. -
Proper Loading of
ActiveSupport::TestCase
: We've fixed an issue whereActiveSupport::TestCase
was being loaded too early in the boot process. The configuration is now wrapped in a load hook, ensuring it gets set at the appropriate time and resolving issues with other engines defining load hooks on:active_support_test_case
. -
Assertion Checks in Tests: We've fixed tests in the framework that were missing assertions. A rescue block was added to handle
ActiveSupport::RaiseWarnings::WarningError
, and a pass statement was added to prevent unnecessary bin files from being generated during app updates. These changes ensure the tests properly check for expected behavior, improving functionality and reliability.
π§Ή Chores
- Ignore Tarball from
rake preview_docs
: The tarball file will no longer be included or generated when running this rake command. This change streamlines the preview_docs process, excluding unnecessary files and ensuring a cleaner output.
We hope these updates make your development experience smoother and more efficient. Happy coding! π
Hey there, fabulous devs! π We've got some exciting updates and fixes to share with you. Check out the latest changes below:
New Features
-
Create preview tarball from directory: We now create a preview tarball from a directory, making it super easy to share and preview contents. Plus, we've optimized the process by moving artifacts instead of copying them. Less waste, more efficiency! π
-
Support hexBinary format in XML: We've added support for the hexBinary format in XML, allowing you to represent binary data in hexadecimal form. This makes working with binary data in XML documents a breeze! π§ββοΈβ¨
Improvements
-
Allow assertionless tests to be reported: Assertionless tests will now be included in test reports, giving you a more comprehensive view of your test coverage and results. No test left behind! π
-
Rename method to keep it consistent with others parse versions*: We've renamed a method to maintain consistency with other parse* versions. This ensures uniformity and clarity in our codebase. Consistency is key! π
-
Turn app:update Rake tasks into a Command: The
app:update
Rake tasks have been refactored into a more organized and modular Command structure. This makes managing and performing updates in your Rails application easier than ever! π οΈ
Bugfixes
-
Fix Ruby 3.4 internal frame cleaner test: We've fixed an issue with the internal frame cleaner test in Ruby 3.4, ensuring it functions correctly. ππ§
-
Fix Rake :preview_docs tarball: Addressed an issue that caused a circular reference and resulted in a "tar: .: file changed as we read it" error. The tarball now creates successfully without any errors. π¦β
-
Skip
selenium-webdriver
version 4.20.0: We've skipped the installation ofselenium-webdriver
version 4.20.0 due to the removal ofSelenium::WebDriver::DriverFinder.path
. This will be restored once the necessary fix is implemented in a future version. π«π΅οΈββοΈ
Chores
- Remove outdated comment: Cleaned up the codebase by removing an outdated comment. Keeping things neat and tidy! π§Ή
Enjoy the new features and improvements, and keep on coding! πβ¨
Here's the latest and greatest update for our project! Check out the cool new features, important fixes, and some clean-up work we've done to keep everything running smoothly. π
New Features
-
Refactor Code for Clarity: We've refactored the code in
activerecord/lib/arel/visitors/to_sql.rb
to make it more readable and maintainable. The conditional logic has been extracted to a new method calledrequire_parentheses?
, replacing the previouspresent?
calls. This makes the code easier to understand and work with. -
Enhanced
pluck
Method: TheActiveRecord::Base#pluck
method now accepts hash values as arguments! This means you can use column aliases when retrieving specific columns from a database query, giving you more flexibility and customization options.
Bug Fixes
-
Devcontainer Smoke Test for Forked Repos: Fixed an issue with the devcontainer smoke test for forked repositories. Now, the test won't attempt to push devcontainer images if the repo is a fork, preventing permission errors and ensuring smoother workflow runs.
-
remove_prefix_and_suffix
inActiveRecord::SchemaDumper
: Resolved a bug where theremove_prefix_and_suffix
method was broken due to an unusedversion
argument. The method now correctly handles table name prefix and suffix options, restoring its intended functionality. -
Typo in Feature Policy for Idle-Detection: Corrected a typo in the Feature Policy for idle-detection from
idle_detection
toidle-detection
. This fix ensures that browsers can now process the policy correctly, as per MDN documentation.
Improvements
- Documentation Copy Edit: Made some copy edits to the documentation in
activerecord/lib/active_record/associations.rb
, specifically for thehas_many
method. The updates provide clearer guidance on the+:autosave+
option, enhancing readability and accuracy.
Chores
- Remove Unused Variable in Test: Cleaned up the test file for ActiveRecord migration command recorder by removing an unused variable assignment. This makes the code more concise and easier to read without affecting functionality.
That's all for now! Keep coding and stay awesome! π»β¨
Here's the latest and greatest from our codebase! π
New Features
- Workflow for Testing Devcontainer Setup: We've rolled out a shiny new workflow for testing the generated devcontainer setup for new Rails apps. This workflow includes generating a new app with the
--dev
flag, initializing the dev container, creating a model scaffold, running migrations, and testing. It covers all four supported database configurations to ensure everything works smoothly. π
Improvements
- Relative Paths in AR Basics Guide: Updated the Active Record basics guide to use relative paths in code examples. This makes the guide more consistent and user-friendly, especially when using the copy button. π
- ActionCable Redis Config Example: Improved the documentation for setting up the Redis server for ActionCable. The new example is clearer and more concise, making it easier for developers to follow. π
- String Keys for SQLCommenter: SQLCommenter now supports string keys, giving you more flexibility and making it easier to customize and use in your projects. ποΈ
- Rename MoneyType to PriceType: Renamed the
MoneyType
class toPriceType
for better clarity and readability. πΈ
Bugfixes
- Fix query_logs_test.rb: Addressed an issue in the
query_logs_test.rb
file to ensure tests run correctly and reliably. π οΈ - Arel SQL Generation for UNION: Fixed generated SQL for
UNION
andUNION ALL
involvingLIMIT
orORDER BY
by wrappingSELECT
statements in parentheses. This ensures the SQL is generated correctly. 𧩠- Respond with 406 for Blocked Browsers: Updated the server response to 406 Not Acceptable for browsers blocked by the
allow_browser
setting, aligning with RFC 9110 specifications. π«
Stay tuned for more updates and happy coding! β¨
Hey there! We've been busy making some awesome improvements and fixing bugs to make your experience even better. Check out the latest updates:
π New Features
- Allow
IN
with subselect to be preparable: You can now use theIN
operator with subselects in a preparable manner. This means your queries can be prepared once and executed multiple times with different values, boosting performance and efficiency. Say goodbye to repetitive parsing and planning!
π οΈ Improvements
-
Documentation improvement for #fields_for: We've spruced up the documentation for the
#fields_for
method. Expect clearer explanations and more examples to help you use this method like a pro. -
Update active_record_querying.md: The ActiveRecord querying documentation just got a major update! We've added more detailed explanations and examples to help you master querying in Ruby on Rails.
π Bugfixes
-
Add a Date decoder to the pg adapter to type cast dates: Fixed issue #51448 by adding a Date decoder to the pg adapter. Now, date columns will be correctly type cast to Ruby
Date
when running raw queries throughActiveRecord::Base.connection.select_all
. Your dates are in good hands! -
Add missing
ostruct
require tohttp_token_authentication_test.rb
: We added the missingostruct
require statement to ensure smooth testing. No more errors due to missing libraries! -
Arel: make
Or
nodes "Nary" likeAnd
: Fixed issue #51386 by restructuringOr
nodes to be "Nary" likeAnd
nodes. This reduces the depth of the tree for largeOR
conditions, making it more efficient. Fun fact: this fix makes SQLite fail with "Expression tree is too large (maximum depth 1000)"βtalk about a powerful improvement!
Stay tuned for more updates and keep rocking those queries! πΈ