Added method `#eql?` to `ActiveSupport::Duration`, in addition to `#==`.

Currently, the following returns `false`, contrary to expectation:

    1.minute.eql?(1.minute)

Adding method `#eql?` will make this behave like expected. Method `#eql?` is
just a bit stricter than `#==`, as it checks whether the argument is also a
uration. Their parts may be different though.

    1.minute.eql?(60.seconds)  # => true
    1.minute.eql?(60)          # => false
SQLite3Adapter now checks for views in table_exists? fixes: 14041
Propagate test messages through assert_routing helper, Fixes #14908

assert_routing was not raising the message passed into the assertion
violation that it raised. This change propagates messages through
the on_fail error.

This fixes this error:
https://github.com/rails/rails/issues/14908

A test case for this issue is located here.
https://github.com/estsauver/test14908

To see that test case fail in the example app, just run
ruby -Itest test/controllers/guests_controller_test.rb
Update RecordNotFound exception cases to include a message with the
Model that the Record was not found in.
Updating Associations::Preloader docs

Much of the previous documentation introduced features new in 2011. This
commit refreshes it to provide clearer code examples and spends more
time describing the normal case (preloaded associations) and less time
describing the fallback.

[ci skip]
Roll back open transactions when the running thread is killed.
Dont mess with default order engines load

When copying migrations some engines might depend on schema from other
engine so we can't blindly reverse all railties collection as that would
affect the order they were originally loaded. This patch helps to only
apply the order from engines specified in `railties_order`
[Active Job] Try to deserialize with GlobalID only strings and globalids
Ship with rails-html-sanitizer instead.
extract updating all fixture cache to a method so we can lock later
Merge pull request #16756 from huoxito/dont-mess-railties-default-order

Dont mess with default order engines load (4.1.6.rc1 regression)
Merge pull request #16775 from kaspth/ship-secure-sanitizer

Ship with rails-html-sanitizer instead.
Active Job refactoring
Merge pull request #16787 from cristianbica/fix-globalid-deserialization

[Active Job] Try to deserialize with GlobalID only strings and globalids
Methods are not duplicable.
Merge pull request #16795 from Peeja/methods-are-not-duplicable

Methods are not duplicable.
Add support for ARIA attributes in tags
Merge pull request #16796 from ARIATeam/aria

Add support for ARIA attributes in tags
Extract data/aria attribute prefixes to a constant
code gardening in ActionController::Renderers

* Renames _handle_render_options to _render_to_body_with_renderer, which is more
  intention-revealing.

* The name of the dynamically generated method for a renderer with key :js was
  "_render_option_js".

  That name is too weak. :js is an option if you see the render argument as just
  a generic options hash, but in the context of renderers that's the renderer
  key, is what identifies the renderer.

  Now "_render_with_renderer_js" is generated instead, which is crystal clear.

* The name of the dynamically generated method for the renderer was constructed
  using string literals in a few places. That is now encapsulated in a method.

* Since we were on it, also removed a couple of redundant selfs.