Properly handle scoping with has_many :through. Fixes #14537.
Add a CHANGELOG entry for the has_many :through scoping fix (See #14537 for details).
Simplify the code in target_scope
Minor improvement: Use the merge method on the relation instead of instance_eval directly.
Fix inconsistent behavior from String#pluralize

Before:
  When calling String#pluralize with count=1 then it returned same
  string, but with count other than 1, returned new string.

After:
  String#pluralize always return a new string.

  => Prevent mutation of a string inadvertently.
select! renamed to avoid name collision Array#select!

Fixes #14752

Select mimics the block interface of arrays, but does not mock the
block interface for select!. This change moves the api to be a
private method, _select!.
Merge pull request #14801 from kuldeepaggarwal/fix-string-inflection

Fix inconsistent behavior from String#pluralize
Merge pull request #14573 from habermann24/has_many_through_fix

Properly handle scoping with has_many :through. Fixes #14537.

Conflicts:
	activerecord/CHANGELOG.md
	activerecord/test/cases/associations/has_many_through_associations_test.rb
Merge pull request #14757 from estsauver/14752

Fix behavior of select! to be consistent with select #14752
Add CHANGELOG entry for #14757 [ci skip]
Fix syntax error
Perfer to define methods instead of calling test

This file is using this pattern already
Correct comment [ci skip]
Merge pull request #14840 from akshay-vishnoi/doc_changes

Correct comment [ci skip]
Fixed an issue with migrating legacy json cookies.

Previously, the `VerifyAndUpgradeLegacySignedMessage` assumes all incoming
cookies are marshal-encoded. This is not the case when `secret_token` is
used in conjunction with the `:json` or `:hybrid` serializer.

In those case, when upgrading to use `secret_key_base`, this would cause a
`TypeError: incompatible marshal file format` and a 500 error for the user.

Fixes #14774.

*Godfrey Chan*
Merge pull request #14850 from chancancode/fix_json_cookie_jar

Fixed an issue with migrating legacy json cookies.
`ActiveRecord::Base.no_touching` no longer triggers callbacks or start empty transactions.

Closes #14841.
Merge pull request #14842 from lucasmazza/lm-no-touching-callbacks

Move `NoTouching` down the inheritance chain on AR::Base
Precompile the image we're referencing, too.

You can't compile a file that references a non-compiled asset's path.

.. unless you turn off asset runtime errors.

Outside of a test case like this, `config.assets.precompile` would
normally retain its default entry, which precompiles all images (and
other non-JS/CSS files) that are in `app/assets`.
Improve readability of contributing to rails guide. [ci skip]