Rails
8.0.2 (March 12, 2025)¶ ↑
-
No changes.
Rails
8.0.2 (March 12, 2025)¶ ↑
-
Fix setting
to_time_preserves_timezone
fromnew_framework_defaults_8_0.rb
.fatkodima
-
Fix Active Support Cache
fetch_multi
when local store is active.fetch_multi
now properly yield to the provided block for missing entries that have been recorded as such in the local store.Jean Boussier
-
Fix execution wrapping to report all exceptions, including
Exception
.If a more serious error like
SystemStackError
orNoMemoryError
happens, the error reporter should be able to report these kinds of exceptions.Gannon McGibbon
-
Fix
RedisCacheStore
andMemCacheStore
to also handle connection pool related errors.These errors are rescued and reported to
Rails.error
.Jean Boussier
-
Fix
ActiveSupport::Cache#read_multi
to respect version expiry when using local cache.zzak
-
Fix
ActiveSupport::MessageVerifier
andActiveSupport::MessageEncryptor
configuration ofon_rotation
callback.verifier.rotate(old_secret).on_rotation { ... }
Now both work as documented.
Jean Boussier
-
Fix
ActiveSupport::MessageVerifier
to always be able to verify both URL-safe and URL-unsafe payloads.This is to allow transitioning seemlessly from either configuration without immediately invalidating all previously generated signed messages.
Jean Boussier, Florent Beaurain, Ali Sepehri
-
Fix
cache.fetch
to honor the provided expiry when:race_condition_ttl
is used.cache.fetch("key", expires_in: 1.hour, race_condition_ttl: 5.second) do "something" end
In the above example, the final cache entry would have a 10 seconds TTL instead of the requested 1 hour.
Dhia
-
Better handle procs with splat arguments in
set_callback
.Radamés Roriz
-
Fix
String#mb_chars
to not mutate the receiver.Previously it would call
force_encoding
on the receiver, now it dups the receiver first.Jean Boussier
-
Improve
ErrorSubscriber
to also mark error causes as reported.This avoid some cases of errors being reported twice, notably in views because of how errors are wrapped in
ActionView::Template::Error
.Jean Boussier
-
Fix
Module#module_parent_name
to return the correct name after the module has been named.When called on an anonymous module, the return value wouldn't change after the module was given a name later by being assigned to a constant.
mod = Module.new mod.module_parent_name # => "Object" MyModule::Something = mod mod.module_parent_name # => "MyModule"
Jean Boussier
Rails
8.0.1 (December 13, 2024)¶ ↑
-
Fix a bug in
ERB::Util.tokenize
that causes incorrect tokenization whenERB
tags are preceeded by multibyte characters.Martin Emde
-
Restore the ability to decorate methods generated by
class_attribute
.It always has been complicated to use Module#prepend or an alias method chain to decorate methods defined by
class_attribute
, but became even harder in 8.0.This capability is now supported for both reader and writer methods.
Jean Boussier
Rails
8.0.0.1 (December 10, 2024)¶ ↑
-
No changes.
Rails
8.0.0 (November 07, 2024)¶ ↑
-
No changes.
Rails
8.0.0.rc2 (October 30, 2024)¶ ↑
-
No changes.
Rails
8.0.0.rc1 (October 19, 2024)¶ ↑
-
Remove deprecated support to passing an array of strings to
ActiveSupport::Deprecation#warn
.Rafael Mendonça França
-
Remove deprecated support to setting
attr_internal_naming_format
with a@
prefix.Rafael Mendonça França
-
Remove deprecated
ActiveSupport::ProxyObject
.Rafael Mendonça França
-
Don't execute i18n watcher on boot. It shouldn't catch any file changes initially, and unnecessarily slows down boot of applications with lots of translations.
Gannon McGibbon, David Stosik
-
Fix
ActiveSupport::HashWithIndifferentAccess#stringify_keys
to stringify all keys not just symbols.Previously:
{ 1 => 2 }.with_indifferent_access.stringify_keys[1] # => 2
After this change:
{ 1 => 2 }.with_indifferent_access.stringify_keys["1"] # => 2
This change can be seen as a bug fix, but since it behaved like this for a very long time, we're deciding to not backport the fix and to make the change in a major release.
Jean Boussier
Rails
8.0.0.beta1 (September 26, 2024)¶ ↑
-
Include options when instrumenting
ActiveSupport::Cache::Store#delete
andActiveSupport::Cache::Store#delete_multi
.Adam Renberg Tamm
-
Print test names when running
rails test -v
for parallel tests.John Hawthorn, Abeid Ahmed
-
Deprecate
Benchmark.ms
core extension.The
benchmark
gem will become bundled in Ruby 3.5Earlopain
-
ActiveSupport::TimeWithZone#inspect
now uses ISO 8601 style time likeTime#inspect
John Hawthorn
-
ActiveSupport::ErrorReporter#report
now assigns a backtrace to unraised exceptions.Previously reporting an un-raised exception would result in an error report without a backtrace. Now it automatically generates one.
Jean Boussier
-
Add
escape_html_entities
option toActiveSupport::JSON.encode
.This allows for overriding the global configuration found at
ActiveSupport.escape_html_entities_in_json
for specific calls toto_json
.This should be usable from controllers in the following manner:
class MyController < ApplicationController def index render json: { hello: "world" }, escape_html_entities: false end end
Nigel Baillie
-
Raise when using key which can't respond to to_sym in
EncryptedConfiguration
.As is the case when trying to use an
Integer
orFloat
as a key, which is unsupported.zzak
-
Deprecate addition and since between two
Time
andActiveSupport::TimeWithZone
.Previously adding time instances together such as
10.days.ago + 10.days.ago
or10.days.ago.since(10.days.ago)
produced a nonsensical future date. This behavior is deprecated and will be removed inRails
8.1.Nick Schwaderer
-
Support rfc2822 format for
Time#to_fs
&Date#to_fs
.Akshay Birajdar
-
Optimize load time for
Railtie#initialize_i18n
. FilterI18n.load_path
s passed to the file watcher to only those underRails.root
. Previously the watcher would grab all available locales, including those in gems which do not require a watcher because they won't change.Nick Schwaderer
-
Add a
filter
option toin_order_of
to prioritize certain values in the sorting without filtering the results by these values.Igor Depolli
-
Improve error message when using
assert_difference
orassert_changes
with a proc by printing the proc's source code (MRI only).Richard Böhme, Jean Boussier
-
Add a new configuration value
:zone
forActiveSupport.to_time_preserves_timezone
and rename the previoustrue
value to:offset
. The new default value is:zone
.Jason Kim, John Hawthorn
-
Align instrumentation
payload[:key]
inActiveSupport::Cache
to follow the same pattern, with namespaced and normalized keys.Frederik Erbs Spang Thomsen
-
Fix
travel_to
to set usec 0 whenwith_usec
isfalse
and the given argumentString
orDateTime
.mopp
Please check 7-2-stable for previous changes.