Fix that a collection proxy could be cached before the save of the owner, resulting in an invalid proxy lacking the owner’s id.

Absent this fix calls like: owner.association.update_all to behave unexpectedly because they try to act on association objects where
owner_id is null.

more evidence here: https://gist.github.com/Empact/5865555
```
Active Record 3.2.13
-- create_table(:firms, {:force=>true})
   -> 0.1371s
-- create_table(:clients, {:force=>true})
   -> 0.0005s
1 clients. 1 expected.
1 clients updated. 1 expected.
```

```
Active Record 4.0.0
-- create_table(:firms, {:force=>true})
   -> 0.1606s
-- create_table(:clients, {:force=>true})
   -> 0.0004s
1 clients. 1 expected.
0 clients updated. 1 expected.
```
Add a section about job testing [ci skip]

* Cover lower level job testing (assertions about the execution of the
  job itself).
* Add a table with the custom assertions provided by Active Job's
  `TestHelper` module.
* Add an example testing job queuing inside a model
`secret_token` is now saved in `Rails.application.secrets.secret_token`

- `secrets.secret_token` is now used in all places `config.secret_token` was
  - `secrets.secret_token`, when not present in `config/secrets.yml`,
    now falls back to the value of `config.secret_token`
  - when `secrets.secret_token` is set, it over-writes
    `config.secret_token` so they are the same (for backwards-compatibility)
  - Update docs to reference app.secrets in all places
    - Remove references to `config.secret_token`, `config.secret_key_base`
- Warn that missing secret_key_base is deprecated
- Add tests for secret_token, key_generator, and message_verifier
  - the legacy key generator is used with the message verifier when
    secrets.secret_key_base is blank and secret_token is set
  - app.key_generator raises when neither secrets.secret_key_base nor
    secret_token are set
  - app.env_config    raises when neither secrets.secret_key_base nor
    secret_token are set
- Add changelog

Run focused tests via
ruby -w -Itest test/application/configuration_test.rb -n '/secret_|key_/'
[ci skip] Fix line break on command line guide
default scopes should break the cache on singulur_association.

fixes #17495
Merge pull request #17476 from robin850/job-testing

Add a section about job testing [ci skip]
Merge pull request #17559 from alfa-jpn/fix/singular_association_cache

default scopes should break the cache on singulur_association.
Merge pull request #17557 from yui-knk/fix/command_line_guide

[ci skip] Fix line break on command line guide
Documenting Rails::Info module [ci skip]
Fix comment of SourceAnnotationExtractor#find_in

Commit(810af6f) changed which extensions are taken into account,
so make to match comment of find_in.
And sort extensions to follow the added order.
Merge pull request #17563 from yui-knk/fix/source_annotation_extractor

[ci skip] Fix comment of SourceAnnotationExtractor#find_in
[ci skip] Fix typo in command_line.md
Merge pull request #17564 from yui-knk/fix/command_line_guide

[ci skip] Fix typo in command_line.md
Ensure HABTM relationships produce valid class names (Fixes #17119)
Merge pull request #17217 from codeodor/fix-17119

Ensure HABTM relationships produce valid class names (Fixes #17119)
added description for rails generators, and fixed sentence formation for active_support/notifications [ci skip]
Merge pull request #17572 from rishijain/update_docs_10

Fixed grammar about AS::Notifications [ci skip]
Revert the behavior of booleans in string columns to that of 4.1

Why are people assigning booleans to string columns? >_>

We unintentionally changed the behavior on Sqlite3 and PostgreSQL.
Boolean values should cast to the database's representation of true and
false. This is 't' and 'f' by default, and "1" and "0" on Mysql. The
implementation to make the connection adapter specific behavior is hacky
at best, and should be re-visted once we decide how we actually want to
separate the concerns related to things that should change based on the
database adapter.

That said, this isn't something I'd expect to change based on my
database adapter. We're storing a string, so the way the database
represents a boolean should be irrelevant. It also seems strange for us
to give booleans special behavior at all in string columns. Why is
`to_s` not sufficient? It's inconsistent and confusing. Perhaps we
should consider deprecating in the future.

Fixes #17571
Pass the route name explicitly

Follow up to 212057b9. Since that commit, we need to pass the `route_name`
explicitly. This is one of the left-over cases that was not handled in that
commit, which was causing `use_route` to be ignored in functional tests.
Remove useless `only_path: true` in path helpers

We added a deprecation warning for these cases in aa1fadd, so these are now
causing deprecation warnings in the test output. AFAICT, in these two cases, the
option is not integral to the purpose of the test, so they can be safely removed