Cleanup loaded features and constants after dependency tests.
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.
```
copy reflection_scopes’s unscoped value when building scope for preloading, fixes #11036
[ci skip] Add missing blank line to AR validation.
[ci skip] No need to indent here (AC overview).
[ci skip] Add highlight to code (form helper guide).
Make `String#remove` and `String#remove!` accept multiple arguments
- Remove unused duplicated method `add_column_position` from AbstractMysqlAdapter
development.rb should mention available log levels
Revert "development.rb should mention available log levels"

This reverts commit 102ba5fd69f18c7d58d70247090fbdeadfc53ca1.

Reason: code/template changes cannot be made in docrails
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
Avoid unnecessary allocations/calls
`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_/'
minor docs change [ci skip]
Merge pull request #17383 from rwz/string-remove

Make `String#remove` and `String#remove!` accept multiple arguments

Conflicts:
	activesupport/CHANGELOG.md
Merge pull request #17487 from pabloh/avoid_allocations

Avoid unnecessary allocations and method calls
Delegate comparison operator to value
Move DebugExceptions#traces_from_wrapper to ExceptionWrapper

ActionDispatch::ExceptionWrapper seems to be the more natural place for
this method to live in.
Change `rails` to `bin/rails` in getting started, fix #1748 [ci skip]
Merge pull request #17494 from craftsmen/issue-17484

Change `rails` to `bin/rails` in getting started, fix #1748 [ci skip]