additional note about routes in functional tests for engines [ci skip]
Remove surplus period from assertion messages
Display diagnostics in text format for xhr request
Refine tests for assert_select failure messages
Fix subscriptions not being unsubscribed.
Remove wrapping div with inline styles for hidden form fields.

We are dropping HTML 4.01 and XHTML strict compliance since input
tags directly inside a form are valid HTML5, and the absense of
inline styles help in validating for Content Security Policy.
Use inheritance chain instead of callbacks to increment counter caches after create
Use inheritance chain instead of callbacks to increment counter caches after destroy
The Association Relation should use `empty?` and `size` from Relation.

968c581ea34b5236af14805e6a77913b1cb36238 have introduced this bug #14744
on Association Relation when the method `empty?` or `size` was called.

Example:
  # Given an author that does have 3 posts, but none of them with the
  # title 'Some Title'
  Author.last.posts.where(title: 'Some Title').size
  # => 3

It was occurring, because the Association Relation had implemented these
methods based on `@association`, this way giving wrong results.

To fix it, was necessary to remove the methods `empty?` and `size` from
Association Relation. It just have to use these methods from Relation.

Example:
  # Given an author that does have 3 posts, but none of them with the
  # title 'Some Title'
  Author.last.posts.where(title: 'Some Title').size
  # => 0
  # Now it will return the correct value.

Fixes #14744.
Make sure the column_name is different from 'all'.

968c581ea34b5236af14805e6a77913b1cb36238 have fixed the EagerLoadTest, but
not in the correct way.

The problem was when `empty?` or `size` was called on relation. It was
triggering `count(:all)`, which was passing `:all` as the column name to `count`
on Calculations.

On the other hand, the method `calculate` on Calculations was calling
`construct_relation_for_association_calculations` instead of `perform_calculation`,
because `has_include?` was returning `true` since `column_name` was present.

To prevent calling the wrong method to perform the calculation, we have to check
if the `column_name` is present and if it is different from `:all` (which is now used
to correctly do `count` with `select`).

More information here: https://github.com/rails/rails/commit/968c581ea34b5236af14805e6a77913b1cb36238#commitcomment-6006135
Merge pull request #14642 from tgxworld/fix_notifications_not_unsubscribing

Fix subscriptions not being unsubscribed.
Merge pull request #14728 from stomar/assertion-msg

Remove surplus period from assertion messages
[ci skip] Add missing end in one of the examples in Migrations.md.
Merge pull request #14758 from JuanitoFatas/migrations-md

[ci skip] Add missing end in one of the examples in Migrations.md.
use YAML.load_file in database tasks example

rather than YAML.load(File.read(path)). YAML.load_file is also used in
guides/rails_guides/helper.rb since 2011, the only other precedent I could find.
Merge pull request #14756 from laurocaetano/fix-count-on-association-relation

Fix count on association relation (calls to empty and size).
Merge pull request #14762 from dwo/master

use YAML.load_file in database tasks example
Merge pull request #14745 from razum2um/plain-text-diagnostics

Display diagnostics in text format for xhr request
Set _after_create_counter_called flag to make update counter cache work
Provide interface for accessing underlying IO object

In some cases users may need to work with/manipulate more of the
Tempfile api than provided by Upload. Allow users to get at the
underlying io via the common to_io method of IO/IO-like objects