Skip to content

@georgeclaghorn georgeclaghorn released this Nov 5, 2019 · 1852 commits to master since this release

Active Support

  • ActiveSupport::SafeBuffer supports Enumerator methods.

    Shugo Maeda

  • The Redis cache store fails gracefully when the server returns a "max number of clients reached" error.

    Brandon Medenwald

  • Fixed that mutating a value returned by a memory cache store would unexpectedly change the cached value.

    Jonathan Hyman

  • The default inflectors in zeitwerk mode support overrides:

    # config/initializers/zeitwerk.rb
    Rails.autoloaders.each do |autoloader|
        "html_parser" => "HTMLParser",
        "ssl_error"   => "SSLError"

    That way, you can tweak how individual basenames are inflected without touching Active Support inflection rules, which are global. These inflectors fallback to String#camelize, so existing inflection rules are still taken into account for non-overridden basenames.

    Please, check the autoloading guide for zeitwerk mode if you prefer not to depend on String#camelize at all.

    Xavier Noria

  • Improve Range#===, Range#include?, and Range#cover? to work with beginless (startless) and endless range targets.

    Allen Hsu, Andrew Hodgkinson

  • Don't use Process#clock_gettime(CLOCK_PROCESS_CPUTIME_ID) on Solaris

    Iain Beeston

Active Model

  • No changes.

Active Record

  • Common Table Expressions are allowed on read-only connections.

    Chris Morris

  • New record instantiation respects unscope.

    Ryuta Kamizono

  • Fixed a case where find_in_batches could halt too early.

    Takayuki Nakata

  • Autosaved associations always perform validations when a custom validation context is used.

    Tekin Suleyman

  • sql.active_record notifications now include the :connection in their payloads.

    Eugene Kenny

  • A rollback encountered in an after_commit callback does not reset previously-committed record state.

    Ryuta Kamizono

  • Fixed that join order was lost when eager-loading.

    Ryuta Kamizono

  • DESCRIBE queries are allowed on read-only connections.

    Dylan Thacker-Smith

  • Fixed that records that had been inspected could not be marshaled.

    Eugene Kenny

  • The connection pool reaper thread is respawned in forked processes. This fixes that idle connections in forked processes wouldn't be reaped.

    John Hawthorn

  • The memoized result of ActiveRecord::Relation#take is properly cleared when ActiveRecord::Relation#reset or ActiveRecord::Relation#reload is called.

    Anmol Arora

  • Fixed the performance regression for primary_keys introduced MySQL 8.0.

    Hiroyuki Ishii

  • insert, insert_all, upsert, and upsert_all now clear the query cache.

    Eugene Kenny

  • Call while_preventing_writes directly from connected_to.

    In some cases application authors want to use the database switching middleware and make explicit calls with connected_to. It's possible for an app to turn off writes and not turn them back on by the time we call connected_to(role: :writing).

    This change allows apps to fix this by assuming if a role is writing we want to allow writes, except in the case it's explicitly turned off.

    Eileen M. Uchitelle

  • Improve detection of ActiveRecord::StatementTimeout with mysql2 adapter in the edge case when the query is terminated during filesort.

    Kir Shatrov

Action View

  • UJS avoids Element.closest() for IE 9 compatibility.

    George Claghorn

Action Pack

  • ActionDispatch::SystemTestCase now inherits from ActiveSupport::TestCase rather than ActionDispatch::IntegrationTest. This permits running jobs in system tests.

    George Claghorn, Edouard Chin

  • Registered MIME types may contain extra flags:

    Mime::Type.register "text/html; fragment", :html_fragment

    Aaron Patterson

Active Job

  • No changes.

Action Mailer

  • No changes.

Action Cable

  • No changes.

Active Storage

  • ActiveStorage::AnalyzeJobs are discarded on ActiveRecord::RecordNotFound errors.

    George Claghorn

  • Blobs are recorded in the database before being uploaded to the service. This fixes that generated blob keys could silently collide, leading to data loss.

    Julik Tarkhanov

Action Mailbox

  • No changes.

Action Text

  • No changes.


  • The zeitwerk:check Rake task reports files outside the app's root directory, as in engines loaded from gems.

    Xavier Noria

  • Fixed a possible error when using the evented file update checker.

    Yuji Yaginuma

  • The sqlite3 database files created by the parallel testing feature are included in the default .gitignore file for newly-generated apps.

    Yasuo Honda

  • rails new generates a .keep file in tmp/pids. This fixes starting a server via rackup instead of rails server.

    Rafael Mendonça França

Assets 2
You can’t perform that action at this time.