Prevent foreign_key_for? from type casting all attributes
Revert "Only lookup `config.log_level` for stdlib `::Logger`. Closes #11665."

This reverts commit e0a521cfcd13e4d1f0ae8ab96004289e1c020f71.

Conflicts:
	railties/CHANGELOG.md

We expect loggers to quack like stdlib logger. If log4r needs different
level= assignment, using a Logger-quacking wrapper is the way to do it.

Fixes #14114.
Merge pull request #14140 from WojtekKruszewski/optimize_foreign_key_for

Prevent foreign_key_for? from evaluating all attributes
Distinguish ConnectionNotEstablished messages: no conn pool for the class, or no conn available from the pool
Fixed typo in comment about MAX_ID.
Merge pull request #14164 from vajrasky/fix_typo_max_id

Fixed typo in comment about MAX_ID.
Add warning when user tried to create model with pluralize name.
  1. Generate model with correct_name.
  2. It will help new users to avoid mistakes when tried to create model with wrong name.
Merge pull request #13515 from kuldeepaggarwal/f-model-generation

Added warning when user tried to create model with pluralize name.
Add tests for default scope behaviour change

See #13875
dynamically define PostgreSQL OID range types.

This gets AR working with custom defined range types. It also
removes the need for subtype specific branches in `OID::Range`.

This expands the interface of all `OID` types with the `infinity` method.
It's responsible to provide a value for positive and negative infinity.
deprecate support for pg ranges with excluding beginnings.

The Ruby Range object does not support excluding beginnings.
We currently support excluding beginnings for some subtypes using
manually by incrementing them (now using the `#succ` method).
This is approach is flawed as it's not equal to an excluding beginning.

This commit deprecates the current support for excluding beginnings.
It also raises an `ArgumentError` for subtypes that do not implement the `succ`
method.

This is a temporary solution to get rid of the broken state. We might still
add complete support for excluding beginnings afterwards. (Probably with a
new `PGRange` object, which acts like a `Range` but has excluding beginnings.
update version to 4.2.0.alpha
Merge pull request #13793 from senny/postgres/dynamic_range_oid

Dynamically define PostgreSQL Range OIDs
Coerce strings when reading attributes.
Introduce Concern#class_methods and Kernel#concern
Extract local cache middleware

Extract LocalCache Middleware, so it can requires rack dependencies,
without adding rack dependencies to `AS::Cache::Strategy::LocalCache`.
Group assets options in production env template
Merge pull request #14171 from arthurnn/extract_middleware_cache

Extract local cache middleware
Merge pull request #10497 from senny/10485_does_not_coerce_strings

coerce strings when reading attributes
include names in model generator warning message. refs #13515.

This is a follow up to #13515. It includes the name given and
the singularized version in the warning message. This will aide the user
to see wether the detected singular was right or not.