Improve compatibility for ActiveSupport::BroadcastLogger.
Máximo Mussini
Pass options along to write_entry in handle_expired_entry method.
Graham Cooper
Fix Active Support configurations deprecations.
fatkodima
Fix teardown callbacks.
Tristan Starck
BacktraceCleaner silence core internal methods by default.
Jean Boussier
Fix delegate_missing_to allow_nil: true when called with implict self
classPersondelegate_missing_to:address,allow_nil: truedefaddressnilenddefberliner?city == "Berlin"endendPerson.new.city# => nilPerson.new.berliner?# undefined local variable or method `city' for an instance of Person (NameError)
Jean Boussier
Work around a Ruby bug that can cause a VM crash.
This would happen if using TaggerLogger with a Proc
formatter on which you called object_id.
[BUG] Object ID seen, but not in mapping table: proc
Jean Boussier
Fix ActiveSupport::Notifications.publish_event to preserve units.
This solves the incorrect reporting of time spent running Active Record
asynchronous queries (by a factor 1000).
Jean Boussier
Active Model
No changes.
Active Record
Allow to eager load nested nil associations.
fatkodima
Fix create_table with :auto_increment option for MySQL adapter.
fatkodima
Don't load has_one associations during autosave.
Eugene Kenny
Fix migration ordering for bin/rails db:prepare across databases.
fatkodima
Fix alias_attribute to ignore methods defined in parent classes.
Jean Boussier
Fix a performance regression in attribute methods.
Jean Boussier
Fix Active Record configs variable shadowing.
Joel Lubrano
Fix running migrations on other databases when database_tasks: false on primary.
fatkodima
Fix non-partial inserts for models with composite identity primary keys.
fatkodima
Fix ActiveRecord::Relation#touch_all with custom attribute aliased as attribute for update.
fatkodima
Fix a crash when an Executor wrapped fork exit.
Joé Dupuis
Fix destroy_async job for owners with composite primary keys.
fatkodima
Ensure pre-7.1 migrations use legacy index names when using rename_table.
fatkodima
Allow primary_key: association option to be composite.
Nikita Vasilevsky
Do not try to alias on key update when raw SQL is supplied.
Gabriel Amaral
Memoize key_provider from key or deterministic key_provider if any.
Rosa Gutierrez
Fix upsert warning for MySQL.
fatkodima
Fix predicate builder for polymorphic models referencing models with composite primary keys.
fatkodima
Fix update_all/delete_all on CPK model relation with join subquery.
Nikita Vasilevsky
Remove memoization to accept key_provider overridden by with_encryption_context.
John Hawthorn
Raise error for Trilogy when prepared_statements is true.
Trilogy doesn't currently support prepared statements. The error that
applications would see is a StatementInvalid error. This doesn't quite point
you to the fact this isn't supported. So raise a more appropriate error
pointing to what to change.
Eileen M. Uchitelle
Fix loading schema cache when all databases have disabled database tasks.
fatkodima
Always request primary_key in RETURNING if no other columns requested.
Nikita Vasilevsky
Handle records being loaded with Marshal without triggering schema load
When using the old marshalling format for Active Record and loading
a serialized instance, it didn't trigger loading the schema and defining
attribute methods.
Jean Boussier
Prevent some constant redefinition warnings when defining inherited on models.
Adrian Hirt
Fix a memory perfomance regression in attribute methods.
Attribute methods used much more memory and were slower to define than
they should have been.
Jean Boussier
Fix an issue that could cause database connection leaks.
If Active Record successfully connected to the database, but then failed
to read the server informations, the connection would be leaked until the
Ruby garbage collector triggers.
Jean Boussier
Fix an issue where the IDs reader method did not return expected results
for preloaded associations in models using composite primary keys.
Jay Ang
PostgreSQL Cidr#change? detects the address prefix change.
Taketo Takashima
Fix Active Record serialization to not include instantiated but not loaded associations
Jean Boussier, Ben Kyriakou
Allow Sqlite3Adapter to use sqlite3 gem version 2.x
Mike Dalessio
Strict loading using :n_plus_one_only does not eagerly load child associations.
With this change, child associations are no longer eagerly loaded, to
match intended behavior and to prevent non-deterministic order issues caused
by calling methods like first or last. As first and last don't cause
an N+1 by themselves, calling child associations will no longer raise.
Fixes #49473.
Before:
person=Person.find(1)person.strict_loading!(mode: :n_plus_one_only)person.posts.first# SELECT * FROM posts WHERE person_id = 1; -- non-deterministic orderperson.posts.first.firm# raises ActiveRecord::StrictLoadingViolationError
After:
person=Person.find(1)person.strict_loading!(mode: :n_plus_one_only)person.posts.first# this is 1+1, not N+1# SELECT * FROM posts WHERE person_id = 1 ORDER BY id LIMIT 1;person.posts.first.firm# no longer raises
Reid Lynch
Using Model.query_constraints with a single non-primary-key column used to raise as expected, but with an
incorrect error message. This has been fixed to raise with a more appropriate error message.
Joshua Young
Fix has_one association autosave setting the foreign key attribute when it is unchanged.
This behaviour is also inconsistent with autosaving belongs_to and can have unintended side effects like raising
an ActiveRecord::ReadonlyAttributeError when the foreign key attribute is marked as read-only.
Joshua Young
Fix an issue where ActiveRecord::Encryption configurations are not ready before the loading
of Active Record models, when an application is eager loaded. As a result, encrypted attributes
could be misconfigured in some cases.
Maxime Réty
Properly synchronize Mysql2Adapter#active? and TrilogyAdapter#active?
As well as disconnect! and verify!.
This generally isn't a big problem as connections must not be shared between
threads, but is required when running transactional tests or system tests
and could lead to a SEGV.
Jean Boussier
Fix counter caches when the foreign key is composite.
If the model holding the counter cache had a composite primary key,
inserting a dependent record would fail with an ArgumentError Expected corresponding value for...
fatkodima
Fix loading of schema cache for multiple databases.
Before this change, if you have multiple databases configured in your
application, and had schema cache present, Rails would load the same
cache to all databases.
Rafael Mendonça França
Fix eager loading of composite primary key associations.
relation.eager_load(:other_model) could load the wrong records if other_model
had a composite primary key.
Nikita Vasilevsky
Fix async queries returning a doubly wrapped result when hitting the query cache.
fatkodima
Fix single quote escapes on default generated MySQL columns
MySQL 5.7.5+ supports generated columns, which can be used to create a column that is computed from an expression.
Previously, the schema dump would output a string with double escapes for generated columns with single quotes in the default expression.
This would result in issues when importing the schema on a fresh instance of a MySQL database.
Now, the string will not be escaped and will be valid Ruby upon importing of the schema.
Yash Kapadia
Fix Migrations with versions older than 7.1 validating options given to t.references.
Hartley McGuire
Action View
Action View Test Case rendered memoization.
Sean Doyle
Restore the ability for templates to return any kind of object and not just strings
Jean Boussier
Fix threading issue with strict locals.
Robert Fletcher
Action Pack
Resolve deprecation warning in latest selenium-webdriver.
Earlopain
Don't preload Selenium browser when remote.
Noah Horton
Fix crash for invalid Content-Type in ShowExceptions middleware.
Earlopain
Fix inconsistent results of params.deep_transform_keys.
Iago Pimenta
Do not report rendered errors except 500.
Nikita Vasilevsky
Improve routes source location detection.
Jean Boussier
Fix Request#raw_post raising NoMethodError when rack.input is nil.
Hartley McGuire
Fix url generation in nested engine when script name is empty.
zzak
Fix Mime::Type.parse handling type parameters for HTTP Accept headers.
Taylor Chaparro
Fix the error page that is displayed when a view template is missing to account for nested controller paths in the
suggested correct location for the missing template.
Joshua Young
Fix a regression in 7.1.3 passing a to: option without a controller when the controller is already defined by a scope.
Fix ActionDispatch::Executor middleware to report errors handled by ActionDispatch::ShowExceptions
In the default production environment, ShowExceptions rescues uncaught errors
and returns a response. Because of this the executor wouldn't report production
errors with the default Rails configuration.
Jean Boussier
Active Job
Register autoload for ActiveJob::Arguments.
Rafael Mendonça França
Action Mailer
No changes.
Action Cable
No changes.
Active Storage
Fixes race condition for multiple preprocessed video variants.
Justin Searls
Action Mailbox
No changes.
Action Text
Strip content attribute if the key is present but the value is empty
Jeremy Green
Only sanitize content attribute when present in attachments.
Petrik de Heus
Railties
Preserve --asset-pipeline propshaft when running app:update.
Zacharias Knudsen
Allow string keys for SQLCommenter.
Ngan Pham
Fix derived foreign key to return correctly when association id is part of query constraints.
Varun Sharma
Show warning for secret_key_base in development too.
fatkodima
Fix sanitizer vendor configuration in 7.1 defaults.
In apps where rails-html-sanitizer was not eagerly loaded, the sanitizer default could end up
being Rails::HTML4::Sanitizer when it should be set to Rails::HTML5::Sanitizer.
Mike Dalessio, Rafael Mendonça França
Revert the use of Concurrent.physical_processor_count in default Puma config
While for many people this saves one config to set, for many others using
a shared hosting solution, this cause the default configuration to spawn
way more workers than reasonable.
There is unfortunately no reliable way to detect how many cores an application
can realistically use, and even then, assuming the application should use
all the machine resources is often wrong.
Resolve deprecation warning in latest selenium-webdriver.
Earlopain
Don't preload Selenium browser when remote.
Noah Horton
Fix crash for invalid Content-Type in ShowExceptions middleware.
Earlopain
Fix inconsistent results of params.deep_transform_keys.
Iago Pimenta
Do not report rendered errors except 500.
Nikita Vasilevsky
Improve routes source location detection.
Jean Boussier
Fix Request#raw_post raising NoMethodError when rack.input is nil.
Hartley McGuire
Fix url generation in nested engine when script name is empty.
zzak
Fix Mime::Type.parse handling type parameters for HTTP Accept headers.
Taylor Chaparro
Fix the error page that is displayed when a view template is missing to account for nested controller paths in the
suggested correct location for the missing template.
Joshua Young
Fix a regression in 7.1.3 passing a to: option without a controller when the controller is already defined by a scope.
Fix ActionDispatch::Executor middleware to report errors handled by ActionDispatch::ShowExceptions
In the default production environment, ShowExceptions rescues uncaught errors
and returns a response. Because of this the executor wouldn't report production
errors with the default Rails configuration.
Fix create_table with :auto_increment option for MySQL adapter.
fatkodima
Don't load has_one associations during autosave.
Eugene Kenny
Fix migration ordering for bin/rails db:prepare across databases.
fatkodima
Fix alias_attribute to ignore methods defined in parent classes.
Jean Boussier
Fix a performance regression in attribute methods.
Jean Boussier
Fix Active Record configs variable shadowing.
Joel Lubrano
Fix running migrations on other databases when database_tasks: false on primary.
fatkodima
Fix non-partial inserts for models with composite identity primary keys.
fatkodima
Fix ActiveRecord::Relation#touch_all with custom attribute aliased as attribute for update.
fatkodima
Fix a crash when an Executor wrapped fork exit.
Joé Dupuis
Fix destroy_async job for owners with composite primary keys.
fatkodima
Ensure pre-7.1 migrations use legacy index names when using rename_table.
fatkodima
Allow primary_key: association option to be composite.
Nikita Vasilevsky
Do not try to alias on key update when raw SQL is supplied.
Gabriel Amaral
Memoize key_provider from key or deterministic key_provider if any.
Rosa Gutierrez
Fix upsert warning for MySQL.
fatkodima
Fix predicate builder for polymorphic models referencing models with composite primary keys.
fatkodima
Fix update_all/delete_all on CPK model relation with join subquery.
Nikita Vasilevsky
Remove memoization to accept key_provider overridden by with_encryption_context.
John Hawthorn
Raise error for Trilogy when prepared_statements is true.
Trilogy doesn't currently support prepared statements. The error that
applications would see is a StatementInvalid error. This doesn't quite point
you to the fact this isn't supported. So raise a more appropriate error
pointing to what to change.
Eileen M. Uchitelle
Fix loading schema cache when all databases have disabled database tasks.
fatkodima
Always request primary_key in RETURNING if no other columns requested.
Nikita Vasilevsky
Handle records being loaded with Marshal without triggering schema load
When using the old marshalling format for Active Record and loading
a serialized instance, it didn't trigger loading the schema and defining
attribute methods.
Jean Boussier
Prevent some constant redefinition warnings when defining inherited on models.
Adrian Hirt
Fix a memory perfomance regression in attribute methods.
Attribute methods used much more memory and were slower to define than
they should have been.
Jean Boussier
Fix an issue that could cause database connection leaks.
If Active Record successfully connected to the database, but then failed
to read the server informations, the connection would be leaked until the
Ruby garbage collector triggers.
Jean Boussier
Fix an issue where the IDs reader method did not return expected results
for preloaded associations in models using composite primary keys.
Jay Ang
PostgreSQL Cidr#change? detects the address prefix change.
Taketo Takashima
Fix Active Record serialization to not include instantiated but not loaded associations
Jean Boussier, Ben Kyriakou
Allow Sqlite3Adapter to use sqlite3 gem version 2.x
Mike Dalessio
Strict loading using :n_plus_one_only does not eagerly load child associations.
With this change, child associations are no longer eagerly loaded, to
match intended behavior and to prevent non-deterministic order issues caused
by calling methods like first or last. As first and last don't cause
an N+1 by themselves, calling child associations will no longer raise.
Fixes #49473.
Before:
person=Person.find(1)person.strict_loading!(mode: :n_plus_one_only)person.posts.first# SELECT * FROM posts WHERE person_id = 1; -- non-deterministic orderperson.posts.first.firm# raises ActiveRecord::StrictLoadingViolationError
After:
person=Person.find(1)person.strict_loading!(mode: :n_plus_one_only)person.posts.first# this is 1+1, not N+1# SELECT * FROM posts WHERE person_id = 1 ORDER BY id LIMIT 1;person.posts.first.firm# no longer raises
Reid Lynch
Using Model.query_constraints with a single non-primary-key column used to raise as expected, but with an
incorrect error message. This has been fixed to raise with a more appropriate error message.
Joshua Young
Fix has_one association autosave setting the foreign key attribute when it is unchanged.
This behaviour is also inconsistent with autosaving belongs_to and can have unintended side effects like raising
an ActiveRecord::ReadonlyAttributeError when the foreign key attribute is marked as read-only.
Joshua Young
Fix an issue where ActiveRecord::Encryption configurations are not ready before the loading
of Active Record models, when an application is eager loaded. As a result, encrypted attributes
could be misconfigured in some cases.
Maxime Réty
Properly synchronize Mysql2Adapter#active? and TrilogyAdapter#active?
As well as disconnect! and verify!.
This generally isn't a big problem as connections must not be shared between
threads, but is required when running transactional tests or system tests
and could lead to a SEGV.
Jean Boussier
Fix counter caches when the foreign key is composite.
If the model holding the counter cache had a composite primary key,
inserting a dependent record would fail with an ArgumentErrorExpected corresponding value for...
fatkodima
Fix loading of schema cache for multiple databases.
Before this change, if you have multiple databases configured in your
application, and had schema cache present, Rails would load the same
cache to all databases.
Rafael Mendonça França
Fix eager loading of composite primary key associations.
relation.eager_load(:other_model) could load the wrong records if other_model
had a composite primary key.
Nikita Vasilevsky
Fix async queries returning a doubly wrapped result when hitting the query cache.
fatkodima
Fix single quote escapes on default generated MySQL columns
MySQL 5.7.5+ supports generated columns, which can be used to create a column that is computed from an expression.
Previously, the schema dump would output a string with double escapes for generated columns with single quotes in the default expression.
This would result in issues when importing the schema on a fresh instance of a MySQL database.
Now, the string will not be escaped and will be valid Ruby upon importing of the schema.
Yash Kapadia
Fix Migrations with versions older than 7.1 validating options given to
t.references.
Preserve --asset-pipeline propshaft when running app:update.
Zacharias Knudsen
Allow string keys for SQLCommenter.
Ngan Pham
Fix derived foreign key to return correctly when association id is part of query constraints.
Varun Sharma
Show warning for secret_key_base in development too.
fatkodima
Fix sanitizer vendor configuration in 7.1 defaults.
In apps where rails-html-sanitizer was not eagerly loaded, the sanitizer default could end up
being Rails::HTML4::Sanitizer when it should be set to Rails::HTML5::Sanitizer.
Mike Dalessio, Rafael Mendonça França
Revert the use of Concurrent.physical_processor_count in default Puma config
While for many people this saves one config to set, for many others using
a shared hosting solution, this cause the default configuration to spawn
way more workers than reasonable.
There is unfortunately no reliable way to detect how many cores an application
can realistically use, and even then, assuming the application should use
all the machine resources is often wrong.
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.
All Depfu comment commands
@depfu rebase
Rebases against your default branch and redoes this update
@depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@depfu cancel merge
Cancels automatic merging of this PR
@depfu close
Closes this PR and deletes the branch
@depfu reopen
Restores the branch and reopens this PR (if it's closed)
@depfu pause
Ignores all future updates for this dependency and closes this PR
@depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)
Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.
What changed?
✳️ rails (7.1.3.4 → 7.1.4) · Repo
Release Notes
7.1.4
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ actioncable (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ actionmailbox (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
↗️ actionmailer (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ actionpack (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ actiontext (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ actionview (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ activejob (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ activemodel (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ activerecord (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ activestorage (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ activesupport (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ railties (indirect, 7.1.3.4 → 7.1.4) · Repo · Changelog
Release Notes
7.1.4 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with
@depfu rebase
.All Depfu comment commands