Merge pull request #17860 from SamSaffron/fix_engine_backtrace

FIX: absolute_path may be nil for code added via instance_eval
Ensure numericality validations work with mutation

The detection of in-place changes caused a weird unexpected issue with
numericality validations. That validator (out of necessity) works on the
`_before_type_cast` version of the attribute, since on an `:integer`
type column, a non-numeric string would type cast to 0.

However, strings are mutable, and we changed strings to ensure that the
post type cast version of the attribute was a different instance than
the before type cast version (so the mutation detection can work
properly).

Even though strings are the only mutable type for which a numericality
validation makes sense, special casing strings would feel like a strange
change to make here. Instead, we can make the assumption that for all
mutable types, we should work on the post-type-cast version of the
attribute, since all cases which would return 0 for non-numeric strings
are immutable.

Fixes #17852
Merge pull request #17863 from tgxworld/fix_extracated_default_value_for_negative_integers

Fix value extracted from negative integers for PostgreSQL.
Merge pull request #17823 from byroot/fix-mount-rack-apps-with-as

Pure rack apps can be mounted with a name
Fix documentation for #default

Just a little syntax error I spotted by accident. Cannot pass hash with curly braces without normal parentheses.
(cherry picked from commit e1408971b8dfdd26d8dac4651bfa52683565f45a)
ugh, forgot to add this test to cdd90f39d796986dabf1678b3277b230dbe18961
Merge pull request #17866 from bogdan/default-form-builder

Bugfix config.action_view.default_form_builder option
`_generate_paths_by_default` should always be private.
Merge pull request #17862 from lucasmazza/lm-hide-action

`_generate_paths_by_default` should always be private.
Merge pull request #17867 from tgxworld/silence_minitest_plugins

Silence Minitest for plugin tests.
Clarify change to process helpers [ci skip]

Add additional information to the CHANGELOG and release notes to
explain the requirement for paths in integration tests to start
with a leading slash.

Fixes #17870.
Merge pull request #17892 from y-yagi/active_support_core_extensions_guide

[ci skip] remove references to `Numeric#from_now`
Merge pull request #17651 from CLUSTERfoo/fix/adding_timestamps_migration_not_reversible

Failure to rollback t.timestamps when within a change_table migration

Conflicts:
	activerecord/CHANGELOG.md
skip test to get `sqlite3_mem` suite passing.
docs, bring back `ActiveRecord::Core` methods in the API. [ci skip]

This `# :nodoc:` had the effect of hiding every method that follows.
This meant that the API page for `ActiveRecord::Core` only contained
`configurations` and none of the following methods.

Furthermore this `# :nodoc:` had no effect on `maintain_test_schema`.
Those `mattr_accessor` inside the `included` block are not picked up
by rdoc.

/cc @zzak
Merge pull request #17797 from y-yagi/donot_delete_mailer_layouts

Don't remove mailer layouts files
Correctly handle multiple attribute method prefix/suffixes which match

Active Record defines `attribute_method_suffix :?`. That suffix will
match any predicate method when the lookup occurs in Active Model. This
will make it incorrectly decide that `id_changed?` should not exist,
because it attempts to determine if the attribute `id_changed` is
present, rather than `id` with the `_changed?` suffix. Instead, we will
look for any correct match.

Fixes #17900
Merge pull request #17817 from aripollak/hide-activejob-args

GlobalID objects are logged by their URI, not #inspect on the object, to prevent logging private data
Include missing require
Correctly respect subtypes for PG arrays and ranges

The type registration was simply looking for the OID, and eagerly
fetching/constructing the sub type when it was registered. However,
numeric types have additional parameters which are extracted from the
actual SQL string of the type during lookup, and can have their behavior
change based on the result.

We simply need to use the block form of registration, and look up the
subtype lazily instead.

Fixes #17935