Upgrading railties 6 to 7
Breaking6.1.7.10 → 7.2.4Breaking135Security37Platform1Deprecated45New297Changed227Fixed452Other126
SecurityDisables libvips's unfuzzed image loaders and savers via Vips.block_untrusted(true) at boot, addressing GHSA-xr9x-r78c-5hrm and CVE-2026-66066.GHSA-xr9x-r78c-5hrm ↗
BreakingUpgrade verdict
107 breaking changes and a platform requirement change and 37 security fixes.
In plain terms
- Some image types can no longer be resized or measured by Active Storage, and requesting unfuzzed output formats such as FITS or JXL raises an error.
- Several deprecation helpers now require an explicit deprecator argument.
- Two previously deprecated event methods are gone, so code calling them will break.
- Calling deprecation methods through the class no longer delegates to an instance.
Must act Top 5 of 188 that need code or config changes
railties publishes an official migration guide for version 7. It covers more than the release notes do.
Upgrading from Rails 6.1 to Rails 7.0 ↗Ruby requirement changed in 7.2.0.beta1: >= 2.5.0 → >= 3.1.0.
What you must change
Breaking107
Variant transformation of BMP, ICO, and PSD attachments now raises Vips::Error, and analysis of SVG, JPEG XL, JPEG 2000, and Netpbm no longer records width and height.
Vips::ErrorRemoves deprecated support to call deprecation methods without passing a deprecator.
deprecatedeprecate_constantActiveSupport::Deprecation::DeprecatedObjectProxy.newActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.newActiveSupport::Deprecation::DeprecatedConstantProxy.newassert_deprecatedassert_not_deprecatedcollect_deprecationsRemoves deprecated
ActiveSupport::Notifications::Event#children and #parent_of?.ActiveSupport::Notifications::Event#childrenActiveSupport::Notifications::Event#parent_of?Removes deprecated
ActiveSupport::Deprecation delegation to instance.ActiveSupport::DeprecationRemoves deprecated
SafeBuffer#clone_empty.SafeBuffer#clone_emptyRemoves deprecated
#to_default_s from Array, Date, DateTime and Time.Array#to_default_sDate#to_default_sDateTime#to_default_sTime#to_default_sRemoves deprecated support to passing
Dalli::Client instances to MemCacheStore.Dalli::ClientMemCacheStoreRemoves deprecated
config.active_support.use_rfc4122_namespaced_uuids.config.active_support.use_rfc4122_namespaced_uuidsRemoves deprecated
config.active_support.remove_deprecated_time_with_zone_name.config.active_support.remove_deprecated_time_with_zone_nameRemoves deprecated
config.active_support.disable_to_s_conversion.config.active_support.disable_to_s_conversionRemoves deprecated support to bold log text with positional boolean in
ActiveSupport::LogSubscriber#color.ActiveSupport::LogSubscriber#colorRemoves deprecated constants
ActiveSupport::LogSubscriber::CLEAR and ActiveSupport::LogSubscriber::BOLD.ActiveSupport::LogSubscriber::CLEARActiveSupport::LogSubscriber::BOLDRemoves deprecated support for
config.active_support.cache_format_version = 6.1.config.active_support.cache_format_versionRemoves deprecated
:pool_size and :pool_timeout options for the cache storage.:pool_size:pool_timeoutRemoves deprecated behavior that rolled back a transaction block when exited using return, break or throw.
Removes deprecated support to pass rewhere to ActiveRecord::Relation#merge.
ActiveRecord::Relation#mergerewhereRemoves deprecated support to pass deferrable: true to add_foreign_key.
add_foreign_keydeferrableRemoves deprecated support to quote ActiveSupport::Duration.
ActiveSupport::DurationRemoves deprecated #quote_bound_value.
#quote_bound_valueRemoves deprecated ActiveRecord::ConnectionAdapters::ConnectionPool#connection_klass.
ActiveRecord::ConnectionAdapters::ConnectionPool#connection_klassRemoves deprecated support for applying connection pool list and clear methods to the current role when role is omitted.
#connection_pool_list#active_connections?#clear_active_connections!#clear_reloadable_connections!#clear_all_connections!#flush_idle_connections!Removes deprecated #all_connection_pools.
#all_connection_poolsRemoves deprecated ActiveRecord::ConnectionAdapters::SchemaCache#data_sources.
ActiveRecord::ConnectionAdapters::SchemaCache#data_sourcesRemoves deprecated ActiveRecord::ConnectionAdapters::SchemaCache.load_from.
ActiveRecord::ConnectionAdapters::SchemaCache.load_fromRemoves deprecated
#all_foreign_keys_valid? from database adapters.#all_foreign_keys_valid?Removes deprecated support for passing coder and class as the second argument to
serialize.serializeRemoves deprecated support for
ActiveRecord::Base#read_attribute(:id) returning the custom primary key value.ActiveRecord::Base#read_attributeRemoves deprecated
TestFixtures.fixture_path.TestFixtures.fixture_pathRemoves deprecated behavior supporting referring to a singular association by its plural name.
Removes deprecated support for passing
SchemaMigration and InternalMetadata classes to ActiveRecord::MigrationContext.SchemaMigrationInternalMetadataActiveRecord::MigrationContextRemoves deprecated
ActiveRecord::Migration.check_pending! method.ActiveRecord::Migration.check_pending!Removes deprecated
ActiveRecord::LogSubscriber.runtime method.ActiveRecord::LogSubscriber.runtimeActiveRecord::LogSubscriber.runtime=Removes deprecated
ActiveRecord::LogSubscriber.reset_runtime method.ActiveRecord::LogSubscriber.reset_runtimeRemoves deprecated support for defining
explain in the connection adapter with 2 arguments.explainRemoves deprecated
ActiveRecord::ActiveJobRequiredError.ActiveRecord::ActiveJobRequiredErrorRemoves deprecated
ActiveRecord::Base.clear_active_connections!.ActiveRecord::Base.clear_active_connections!Removes deprecated
ActiveRecord::Base.clear_reloadable_connections!.ActiveRecord::Base.clear_reloadable_connections!Removes deprecated
ActiveRecord::Base.clear_all_connections!.ActiveRecord::Base.clear_all_connections!Removes deprecated
ActiveRecord::Base.flush_idle_connections!.ActiveRecord::Base.flush_idle_connections!Removes deprecated
name argument from ActiveRecord::Base.remove_connection.ActiveRecord::Base.remove_connectionRemoves deprecated support for calling
alias_attribute with non-existent attribute names.alias_attributeRemoves deprecated
Rails.application.config.active_record.suppress_multiple_database_warning.Rails.application.config.active_record.suppress_multiple_database_warningRemoves deprecated support for setting
Rails.application.config.action_dispatch.show_exceptions to true and false.Rails.application.config.action_dispatch.show_exceptionsRemoves deprecated
speaker, vibrate, and vr permissions policy directives.speakervibratevrRemoves deprecated
Rails.application.config.action_dispatch.return_only_request_media_type_on_content_type.Rails.application.config.action_dispatch.return_only_request_media_type_on_content_typeRemoves deprecated comparison between ActionController::Parameters and Hash.
ActionController::ParametersHashRemoves deprecated constant AbstractController::Helpers::MissingHelperError.
AbstractController::Helpers::MissingHelperErrorRemoves deprecated constant ActionDispatch::IllegalStateError.
ActionDispatch::IllegalStateErrorRemoves deprecated :exponentially_longer value for :wait in retry_on.
retry_on:wait:exponentially_longerRemoves deprecated support for setting numeric values to the scheduled_at attribute.
scheduled_atRemoves deprecated primitive serializer for BigDecimal arguments.
BigDecimalRemoves deprecated params via :args for assert_enqueued_email_with.
assert_enqueued_email_with:argsRemoves deprecated config.action_mailer.preview_path.
config.action_mailer.preview_pathRemoves deprecated config.active_storage.silence_invalid_content_types_warning.
config.active_storage.silence_invalid_content_types_warningRemoves deprecated config.active_storage.replace_on_assign_to_many.
config.active_storage.replace_on_assign_to_manyRemove oracle, sqlserver and JRuby specific database adapters from rails new and rails db:system:change; supported options are sqlite3, mysql, postgresql and trilogy.
rails newrails db:system:changeoraclesqlserversqlite3mysqlpostgresqltrilogyRemove deprecated find_cmd_and_exec console helper.
find_cmd_and_execRemove deprecated Rails.config.enable_dependency_loading.
Rails.config.enable_dependency_loadingRemove deprecated Rails.application.secrets.
Rails.application.secretsRemoves the
config.public_file_server.enabled option from generators for all environments.config.public_file_server.enabledRemoves deprecated support for pre-Ruby 2.4 behavior of to_time returning a Time with local timezone.
to_timeRenames ActionView::TestCase::Behavior::Content to ActionView::TestCase::Behavior::RenderedViewContent, which now inherits from String.
ActionView::TestCase::Behavior::ContentActionView::TestCase::Behavior::RenderedViewContentRenames ActionView::TestCase::Behavior::Content to RenderedViewContent, which now inherits from String and is marked nodoc.
ActionView::TestCase::Behavior::ContentActionView::TestCase::Behavior::RenderedViewContentRename Range#overlaps? to #overlap? and add alias for backwards compatibility.
Range#overlaps?#overlap?Object#deep_dup no longer duplicate named classes and modules.
Object#deep_dupRemove deprecated support to generate incorrect RFC 4122 UUIDs when providing a namespace ID that is not one of the constants defined on Digest::UUID.
Digest::UUIDRemove implicit conversion of objects into String by ActiveSupport::SafeBuffer.
StringActiveSupport::SafeBufferRemove deprecated active_support/core_ext/range/include_time_with_zone file.
active_support/core_ext/range/include_time_with_zoneRemove deprecated override of ActiveSupport::TimeWithZone.name.
ActiveSupport::TimeWithZone.nameRemove deprecated option to passing a format to #to_s in Array, Range, Date, DateTime, Time, BigDecimal, Float and, Integer.
#to_sArrayRangeDateDateTimeTimeRemove deprecated ActiveSupport::PerThreadRegistry.
ActiveSupport::PerThreadRegistryRemove deprecated override of Enumerable#sum.
Enumerable#sumRemove change in the typography of user facing error messages.
Remove -shm and -wal SQLite files when rails db:drop is run.
Remove deprecated Tasks::DatabaseTasks.schema_file_type.
Tasks::DatabaseTasks.schema_file_typeRemove deprecated config.active_record.partial_writes.
config.active_record.partial_writesRemove deprecated ActiveRecord::Base config accessors.
ActiveRecord::BaseRemove the :include_replicas argument from configs_for.
:include_replicasconfigs_for:include_hiddenActiveRecord::Base.serialize no longer uses YAML by default.
ActiveRecord::Base.serializeOjRemove ActiveRecord.legacy_connection_handling.
ActiveRecord.legacy_connection_handlingRemove deprecated support to passing instance variables as locals to partials.
Remove deprecated constant ActionView::Path.
ActionView::PathRemove table alias added when using where.missing or where.associated.
where.missingwhere.associatedRemove --no-comments flag in structure dumps for PostgreSQL.
--no-commentsRemoved deprecated environment variable MAILGUN_INGRESS_API_KEY.
MAILGUN_INGRESS_API_KEYRails.application.credentials.action_mailbox.mailgun_api_keyActionMailer::DeliveryJobActionMailer::Parameterized::DeliveryJobActionMailer::MailDeliveryJobemail_address_with_nameRails.application.executorActionController::TestCaseRails.config.action_view.raise_on_missing_translationsfixture_file_uploadfixture_pathActionDispatch::SystemTestCase#host!Rails.config.action_dispatch.hosts_response_appActionDispatch::Response.return_only_media_type_on_content_typeActionController::Redirecting::UnsafeRedirectErrorredirect_torescue_fromurl_fromSystemTestCase::driven_byHostAuthorizationconfig.consider_all_requests_localerrordevelopmentconfig.server_timingServer-TimingActionDispatch::Request#media_typenilContent-Typedirect_upload_urlblob_url_templaterich_text_area_tagform:rich_text_area[method]button_toFormBuilder#buttonfield_nameFormBuilder#field_nameActionView::Base.field_error_procActionView::Base<form>[action]:day_formatdate_selectlink_toModel#to_sto_sProfile#to_snametag:return_false_on_aborted_enqueueRails.config.active_job.skip_after_callbacks_if_terminatedafter_enqueueafter_performSerializationErrorSerializer::ModuleSerializerActiveModel::Errors#keysActiveModel::Errors#valuesActiveRecord::DatabaseConfigurations::DatabaseConfig#spec_nameActiveRecord::Connection#in_clause_lengthActiveRecord::Base#remove_connectionActiveRecord::Base.configurations.default_hashActiveRecord::Base.arel_attributeActiveRecord::Base.connection_configTasks::DatabaseTasks.specTasks::DatabaseTasks.current_configTasks::DatabaseTasks.dump_filenameTasks::DatabaseTasks.schema_fileModel.reorder(nil).firstdb:schema:load_if_rubydb:structure:dumpdb:structure:loaddb:structure:load_if_sqldb:structure:dump:#{name}Merging conditions on the same column no longer maintain both conditions, and will be consistently replaced by the latter condition.
Model.reorder(nil).firstdb:schema:load_if_rubydb:structure:dumpdb:structure:loaddb:structure:load_if_sqldb:structure:dump:#{name}#to_s#to_formatted_sArrayRangeDateDateTimeActiveSupport::Testing::DeprecationPathname#existenceActiveSupport::Multibyte::Unicode.default_normalization_formRange#include?URI.parserconfig.active_support.use_sha1_digestsObject#with_options&blockActiveSupport::OptionMergerRails.application.executorActiveSupport::DescendantsTrackerClass#descendantsActiveSupport::DescendantsTracker.direct_descendantsActiveSupport::DescendantsTracker#direct_descendantsDigest::UUID.uuid_from_hashDigest::UUIDconfig.active_support.use_rfc4122_namespaced_uuidstrueActiveSupport::Inflector::Inflections#clear(:acronyms)inflector.clearinflector.clear(:all)Remove IE6-7-8 file download related hack/fix from ActionController::DataStreaming module.
Drop support for the SERVER_ADDR header.
SERVER_ADDRRemove inline styles and address basic accessibility issues on rescue templates.
Remove legacy default media=screen from stylesheet_link_tag.
media=screenstylesheet_link_tagRemove support to Marshal load Rails 5.x ActiveModel::AttributeSet format.
ActiveModel::AttributeSetRemove support to Marshal and YAML load Rails 5.x error format.
Remove deprecated support to use []= in ActiveModel::Errors#messages.
ActiveModel::Errors#messagesRemove deprecated support to delete errors from ActiveModel::Errors#messages.
deleteActiveModel::Errors#messagesRemove deprecated support to clear errors from ActiveModel::Errors#messages.
clearActiveModel::Errors#messagesRemove deprecated support concat errors to ActiveModel::Errors#messages.
ActiveModel::Errors#messagesRemove deprecated ActiveModel::Errors#to_xml.
ActiveModel::Errors#to_xmlRemove deprecated ActiveModel::Errors#slice!
ActiveModel::Errors#slice!Remove deprecated ActiveModel::Errors#to_h.
ActiveModel::Errors#to_hRemove deprecated enumeration of ActiveModel::Errors instances as a Hash.
ActiveModel::ErrorsRemove deprecated ActiveRecord::Connection#allowed_index_name_length.
ActiveRecord::Connection#allowed_index_name_lengthRemove deprecated ActiveRecord::Result#map! and ActiveRecord::Result#collect!
ActiveRecord::Result#map!ActiveRecord::Result#collect!Remove deprecated ActiveRecord::Base.configurations.to_h.
ActiveRecord::Base.configurations.to_hRemove deprecated environment and name arguments from Tasks::DatabaseTasks.schema_up_to_date?
environmentnameTasks::DatabaseTasks.schema_up_to_date?Remove deprecated Rails::Generators::Testing::Behaviour.
Rails::Generators::Testing::BehaviourRaises ArgumentError when reading config.x.something with arguments.
config.xArgumentErrorRevert breaking changes to has_one relationship deleting the old record before the new one is validated.
has_oneSecurity37
Disables libvips's unfuzzed image loaders and savers via Vips.block_untrusted(true) at boot, addressing GHSA-xr9x-r78c-5hrm and CVE-2026-66066.
Vips.block_untrusted(true)Vips::Errorconfig.active_storage.variable_content_typesRejects scientific notation in NumberConverter.
NumberConverterFixes SafeBuffer#% to preserve unsafe status.
SafeBuffer#%Improves performance of NumberToDelimitedConverter.
NumberToDelimitedConverterSkips blank attribute names in tag helpers to avoid generating invalid HTML.
Filters user supplied metadata in DirectUploadController.
DirectUploadControllerAdds a configurable maximum streaming chunk size, defaulting to 100mb for blob byte ranges.
Limits range requests to a single range.
Prevents path traversal in DiskService; path_for raises InvalidKeyError for dot segments or paths outside the storage root.
DiskServiceDiskService#path_forInvalidKeyErrorDiskControllerPrevents glob injection in DiskService#delete_prefixed by escaping glob metacharacters before Dir.glob.
DiskService#delete_prefixedDir.globCalls inspect on ids in RecordNotFound error to address CVE-2025-55193.
RecordNotFoundRemoves dangerous transformations to address CVE-2025-24293.
Sanitizes ActionText HTML ContentAttachment in the Trix edit view.
ActionText::ContentAttachmentFixes a ReDoS vulnerability in Accept header parsing.
Add validation to content security policies to disallow spaces and semicolons.
Avoid regex backtracking in HTTP Token authentication.
Avoid regex backtracking in query parameter filtering.
Avoid regex backtracking in block_format helper.
block_formatAvoid backtracing in plain_text_for_blockquote_node.
Include the HTTP Permissions-Policy on non-HTML Content-Types [CVE-2024-28103].
Upgrade Trix to 1.3.2 to fix CVE-2024-34341.
Fix possible XSS vulnerability with the translate method in controllers.
translateUse a temporary file for storing unencrypted files while editing.
Raise an exception if illegal characters are provide to redirect_to [CVE-2023-28362].
Implement SafeBuffer#bytesplice.
Ignore certain data-* attributes in rails-ujs when element is contenteditable.
Avoid regex backtracking in Inflector.underscore.
Make sanitize_as_sql_comment more strict.
Added integer width check to PostgreSQL::Quoting.
Fix sec issue with _url_host_allowed?
_url_host_allowed?Avoid regex backtracking on If-None-Match header.
Use string#split instead of regex for domain parts.
Change ActiveRecord::Coders::YAMLColumn default to safe_load.
config.active_storage.use_yaml_unsafe_loadconfig.active_record.yaml_column_permitted_classesFix and add protections for XSS in ActionView::Helpers and ERB::Util.
ActionView::HelpersERB::UtilERB::Util.xml_name_escapeAdded image transformation validation via configurable allow-list.
Under certain circumstances, the middleware isn't informed that the response body has been fully closed which result in request state not being fully reset before the next request.
Fix X_FORWARDED_HOST protection. [CVE-2021-44528].
Platform1
Raises minimum supported libvips to 8.13 and ruby-vips to 2.2.1, raising RuntimeError at boot when ruby-vips is installed and either minimum is unmet.
RuntimeErrorDeprecations to plan for
Deprecated43
Deprecates
ActiveSupport::ProxyObject in favor of Ruby's built-in BasicObject.ActiveSupport::ProxyObjectBasicObjectDeprecates
ActiveRecord::ImmutableRelation in favor of ActiveRecord::UnmodifiableRelation.ActiveRecord::ImmutableRelationActiveRecord::UnmodifiableRelationDeprecates the
query_constraints association option in favor of foreign_key.query_constraintsforeign_keyDeprecates ActiveRecord::Base.connection in favor of .lease_connection as a soft deprecation with no warnings.
ActiveRecord::Base.connectionlease_connectionDeprecates ActiveRecord::ConnectionAdapters::ConnectionPool#connection in favor of lease_connection.
ActiveRecord::ConnectionAdapters::ConnectionPool#connectionlease_connectionDeprecates Rails.application.config.active_record.commit_transaction_on_non_local_return.
Rails.application.config.active_record.commit_transaction_on_non_local_returnDeprecates
Rails.application.config.active_record.allow_deprecated_singular_associations_name.Rails.application.config.active_record.allow_deprecated_singular_associations_nameDeprecates ENV["SCHEMA_CACHE"] in favor of schema_cache_path in the database configuration.
ENV["SCHEMA_CACHE"]schema_cache_pathDeprecates config.active_record.warn_on_records_fetched_greater_than since sql.active_record notifications now include a :row_count field.
config.active_record.warn_on_records_fetched_greater_thansql.active_recordrow_countDeprecates defining an enum with keyword arguments in favor of positional arguments.
enumDeprecates passing strings to ActiveRecord::Tasks::DatabaseTasks.cache_dump_filename; pass a DatabaseConfig object instead.
ActiveRecord::Tasks::DatabaseTasks.cache_dump_filenameActiveRecord::DatabaseConfigurations::DatabaseConfigDeprecates passing nil as the value for the model: argument to form_with.
form_withmodelDeprecates passing content to void elements when using tag.br type tag builders.
tag.brDeprecates
Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality.Rails.application.config.action_controller.allow_deprecated_parameters_hash_equalityDeprecates Rails.application.config.active_job.use_big_decimal_serialize.
Rails.application.config.active_job.use_big_decimal_serializeDeprecates config.active_support.to_time_preserves_timezone.
config.active_support.to_time_preserves_timezoneDeprecates DateAndTime::Compatibility.preserve_timezone.
DateAndTime::Compatibility.preserve_timezoneDeprecate SafeBuffer#clone_empty.
SafeBuffer#clone_emptyDeprecate usage of the singleton ActiveSupport::Deprecation.
ActiveSupport::DeprecationActiveSupport::Deprecation.warnActiveSupport::Deprecation.silencebehavior=disallowed_behavior=disallowed_warnings=Deprecate config.active_support.use_rfc4122_namespaced_uuids.
config.active_support.use_rfc4122_namespaced_uuidsDeprecate config.active_support.remove_deprecated_time_with_zone_name.
config.active_support.remove_deprecated_time_with_zone_nameDeprecate config.active_support.disable_to_s_conversion.
config.active_support.disable_to_s_conversionDeprecated initializing a ActiveSupport::Cache::MemCacheStore with an instance of Dalli::Client.
ActiveSupport::Cache::MemCacheStoreDalli::ClientActiveSupport::Deprecation behavior callbacks can now receive the deprecator instance as an argument.
ActiveSupport::DeprecationdebugActiveSupport::Deprecation#disallowed_warnings now affects the instance on which it is configured.
ActiveSupport::Deprecation#disallowed_warningsActiveSupport::DeprecationActiveSupport::Deprecation.disallowed_warningsActiveSupport::Deprecation.warnDeprecated :pool_size and :pool_timeout options for configuring connection pooling in cache stores.
:pool_size:pool_timeout:poolDeprecate preserving the pre-Ruby 2.4 behavior of to_time.
to_timefalseDeprecate Notification::Event's #children and #parent_of?
Notification::Event#children#parent_of?Deprecate rewhere argument on #merge.
rewhere#mergeDeprecate read_attribute(:id) returning the primary key if the primary key is not :id.
read_attribute(:id):id#idDeprecate name argument on #remove_connection.
name#remove_connectionDeprecate check_pending! in favor of check_all_pending!
check_pending!check_all_pending!Deprecate deferrable: true option of add_foreign_key.
add_foreign_keyDeprecate delegation from Base to connection_handler.
Baseconnection_handlerBase.clear_all_connections!Base.clear_active_connections!Base.clear_reloadable_connections!Base.flush_idle_connections!Deprecate quoting ActiveSupport::Duration as an integer.
ActiveSupport::DurationDeprecate all_connection_pools and make connection_pool_list more explicit.
all_connection_poolsconnection_pool_list:allSet scheduled_at attribute as a Time object instead of epoch seconds, and serialize and deserialize the value when enqueued.
scheduled_atenqueued_atAddress Selenium :capabilities deprecation warning.
:capabilitiesDeprecate Rails.application.config.action_controller.urlsafe_csrf_tokens.
Rails.application.config.action_controller.urlsafe_csrf_tokensDeprecate poltergeist and webkit (capybara-webkit) driver registration for system testing (they will be removed in Rails 7.1).
poltergeistwebkitcupriteDeprecate the ability to assign a single value to config.action_dispatch.trusted_proxies as RemoteIp middleware behaves inconsistently depending on whether this is configured with a single value or…
config.action_dispatch.trusted_proxiesRemoteIpDeprecate render locals to be assigned to instance variables.
renderDeprecate Tasks::DatabaseTasks.schema_file_type.
Tasks::DatabaseTasks.schema_file_typeAPI changes
Generated by DepDelta from published Ruby source. Not mixed with prose notes.
- removed:
class DummyCompiler < ERB::Compiler - removed:
class DummyERB < ERB - removed:
method DummyCompiler.compile_content(_, _) - removed:
method DummyERB.make_compiler(_) - removed:
module Css - added:
class DummyConfig - added:
constructor DummyConfig(_) - added:
method DummyConfig.to_s() - added:
static method Rails.deprecator() - added:
static method Rails.error()
- removed:
module Generators
- removed:
class AssetsGenerator < Rails::Generators::NamedBase - removed:
class ScaffoldGenerator < Rails::Generators::NamedBase - removed:
method AssetsGenerator.copy_stylesheet() - removed:
method ScaffoldGenerator.copy_stylesheet()
- added:
class ProfileReporter < Reporter - added:
constructor ProfileReporter(_ = …, _ = …) - added:
method ProfileReporter.record(_) - added:
method ProfileReporter.report()
- removed:
class AppUpdater - removed:
class Secrets - removed:
method AppBuilder.bin_when_updating() - removed:
method AppBuilder.config() - removed:
method AppBuilder.config_target_version() - removed:
method AppBuilder.config_when_updating() - removed:
method AppBuilder.credentials() - removed:
method AppBuilder.database_yml() - removed:
method AppBuilder.db() - removed:
method AppBuilder.lib() - removed:
method AppBuilder.log() - removed:
method AppBuilder.master_key() - removed:
method AppBuilder.package_json() - removed:
method AppBuilder.public_directory() - removed:
method AppBuilder.storage() - removed:
method AppBuilder.system_test() - removed:
method AppBuilder.test() - removed:
method AppBuilder.tmp() - removed:
method AppBuilder.vendor() - removed:
method AppBuilder.yarn_when_updating() - removed:
method Application.secrets() - removed:
method ConsoleMethods.app(_ = …) - removed:
method ConsoleMethods.controller() - removed:
method ConsoleMethods.helper() - removed:
method ConsoleMethods.new_session() - removed:
method ConsoleMethods.reload!(_ = …) - removed:
method DBConsole.config() - removed:
method PluginBuilder.gemfile_entry() - removed:
method PluginBuilder.test_dummy_assets() - removed:
method SourceAnnotationExtractor.extract_annotations_from(_, _) - removed:
module Autoloaders - removed:
property Application.secrets: writer - removed:
protected method Application.validate_secret_key_base(_) - removed:
static method AppUpdater.app_generator() - removed:
static method AppUpdater.invoke_from_app_generator(_) - removed:
static method Autoloaders.main() - removed:
static method Autoloaders.once() - removed:
static method Command.print_commands() - removed:
static method Secrets.decrypt(_) - removed:
static method Secrets.encrypt(_) - removed:
static method Secrets.key() - removed:
static method Secrets.parse(_, env:) - removed:
static method Secrets.read() - removed:
static method Secrets.read_for_editing() - removed:
static method Secrets.write(_) - removed:
static property Secrets.root: writer - changed:
class Server < ::Rack::Server → class Server < Rackup::Server - changed:
method Application.key_generator() → method Application.key_generator(_ = …) - changed:
method PluginBuilder.bin(_ = …) → method PluginBuilder.bin() - changed:
static method Autoloaders.each() → method Autoloaders.each() - changed:
static method Autoloaders.log!() → method Autoloaders.log!() - changed:
static method Autoloaders.zeitwerk_enabled?() → method Autoloaders.zeitwerk_enabled?() - changed:
static set Autoloaders.logger(_) → set Autoloaders.logger(_) - added:
class Autoloaders - added:
class HealthController < ActionController::Base - added:
class PwaController < Rails::ApplicationController - added:
class ZeitwerkChecker - added:
const Command.VERSION_MAPPINGS - added:
const InfoController.RFC2396_PARSER - added:
const Rackup.Server - added:
constructor Autoloaders() - added:
method AppBuilder.cifiles() - added:
method AppBuilder.dockerfiles() - added:
method AppBuilder.node_version() - added:
method AppBuilder.rubocop() - added:
method Application.deprecators() - added:
method Application.load_generators(_ = …) - added:
method Application.message_verifiers() - added:
method Application.name() - added:
method BacktraceCleaner.clean(_, _ = …) - added:
method BacktraceCleaner.clean_frame(_, _ = …) - added:
method BacktraceCleaner.filter(_, _ = …) - added:
method HealthController.show() - added:
method MailersController.download() - added:
method PluginBuilder.cifiles() - added:
method PluginBuilder.rubocop() - added:
method PluginBuilder.test_dummy_sprocket_assets() - added:
method PwaController.manifest() - added:
method PwaController.service_worker() - added:
method Railtie.inspect() - added:
method TestUnitReporter.prerecord(_, _) - added:
module Rackup - added:
property Application.autoloaders: reader - added:
property Autoloaders.main: reader - added:
property Autoloaders.once: reader - added:
protected method Application.ensure_generator_templates_added() - added:
protected static method Railtie.increment_load_index() - added:
protected static property Railtie.load_index: reader - added:
static method Command.application_root() - added:
static method Command.printing_commands() - added:
static method ConsoleMethods.include(_, ...) - added:
static method ConsoleMethods.raise_deprecation_warning() - added:
static method Railtie.<=>(_) - added:
static method ZeitwerkChecker.check()
- added:
method EdgeTask.badge_version() - added:
method EdgeTask.canonical_url() - added:
method StableTask.badge_version() - added:
method StableTask.canonical_url()
- removed:
property Configuration.autoloader: reader - removed:
property Configuration.enable_dependency_loading: accessor - removed:
property Configuration.read_encrypted_secrets: accessor - removed:
property Configuration.secret_key_base: accessor - removed:
set Configuration.autoloader(_) - changed:
property Configuration.log_level: accessor → property Configuration.log_level: reader - added:
method Configuration.autoload_lib(ignore:) - added:
method Configuration.autoload_lib_once(ignore:) - added:
method Configuration.enable_reloading() - added:
method Configuration.inspect() - added:
method Configuration.read_encrypted_secrets() - added:
method Configuration.reloading_enabled?() - added:
method Configuration.secret_key_base() - added:
property Configuration.assume_ssl: accessor - added:
property Configuration.broadcast_log_level: reader - added:
property Configuration.dom_testing_default_html_version: accessor - added:
property Configuration.log_file_size: accessor - added:
property Configuration.precompile_filter_parameters: accessor - added:
property Configuration.sandbox_by_default: accessor - added:
property Configuration.server_timing: accessor - added:
property Configuration.yjit: accessor - added:
property RoutesReloader.run_after_load_paths: writer - added:
set Configuration.enable_reloading(_) - added:
set Configuration.log_level(_) - added:
set Configuration.read_encrypted_secrets(_) - added:
set Configuration.secret_key_base(_)
- removed:
class MutexHook - removed:
constructor MutexHook(_ = …) - removed:
method MutexHook.complete(_) - removed:
method MutexHook.run() - added:
class MonitorHook - added:
constructor MonitorHook(_ = …) - added:
method MonitorHook.complete(_) - added:
method MonitorHook.run()
- added:
module Inflector - added:
static method Inflector.camelize(_, _) - added:
static method Inflector.inflect(_)
- removed:
class SecretsCommand < Rails::Command::Base - removed:
const ServerCommand.RACK_SERVERS - removed:
method Actions.require_application_and_environment!() - removed:
method Actions.require_environment!() - removed:
method SecretsCommand.edit() - removed:
method SecretsCommand.setup() - removed:
method SecretsCommand.show() - removed:
module Spellchecker - removed:
static method RunnerCommand.banner(*) - removed:
static method Spellchecker.suggest(_, from:) - changed:
method Base.help() → static method Base.help(_, *) - changed:
method EncryptedCommand.edit(_) → method EncryptedCommand.edit(*) - changed:
method EncryptedCommand.show(_) → method EncryptedCommand.show(*) - changed:
static method Base.banner(*) → static method Base.banner(_ = …, *) - changed:
static method Base.executable() → static method Base.executable(_ = …) - added:
class AboutCommand < Base - added:
class BootCommand < Base - added:
class CorrectableNameError < StandardError - added:
class DevcontainerCommand < Base - added:
class GemHelpCommand < Base - added:
class MiddlewareCommand < Base - added:
class RestartCommand < Base - added:
class SecretCommand < Base - added:
class UnrecognizedCommandError < CorrectableNameError - added:
class UnusedRoutesCommand < Rails::Command::Base - added:
const ServerCommand.RACK_HANDLERS - added:
const ServerCommand.RACK_HANDLER_GEMS - added:
const ServerCommand.RECOMMENDED_SERVER - added:
const TestCommand.EXACT_TEST_ARGUMENT_PATTERN - added:
constructor CorrectableNameError(_, _, _) - added:
constructor EnvironmentArgument(...) - added:
constructor UnrecognizedCommandError(_) - added:
method AboutCommand.perform() - added:
method Actions.boot_application!() - added:
method Actions.load_environment_config!() - added:
method BootCommand.perform(*) - added:
method CorrectableNameError.corrections() - added:
method CorrectableNameError.detailed_message(...) - added:
method DevcontainerCommand.perform(*) - added:
method GemHelpCommand.perform() - added:
method HelpCommand.help_extended(*) - added:
method MiddlewareCommand.perform() - added:
method RestartCommand.perform() - added:
method SecretCommand.perform() - added:
method TestCommand.all(*) - added:
method TestCommand.functionals(*) - added:
method TestCommand.generators(*) - added:
method TestCommand.system(*) - added:
method TestCommand.units(*) - added:
method UnusedRoutesCommand.perform(*) - added:
module App - added:
property CorrectableNameError.name: reader - added:
static method Base.class_usage() - added:
static method TestCommand.executable(*)
- added:
class UpdateCommand < Base - added:
method UpdateCommand.active_storage() - added:
method UpdateCommand.bin() - added:
method UpdateCommand.configs() - added:
method UpdateCommand.perform() - added:
method UpdateCommand.public_directory()
- removed:
method Diffing.ensure_rails_credentials_driver_is_set() - added:
const Diffing.GITATTRIBUTES_ENTRY - added:
method Diffing.disenroll_project_from_credentials_diffing() - added:
method Diffing.ensure_diffing_driver_is_configured()
- changed:
method ChangeCommand.perform() → method ChangeCommand.perform(*)
- added:
class RouteInfo - added:
constructor RouteInfo(_) - added:
method RouteInfo.unused?()
- changed:
method MiddlewareStackProxy.delete(*) → method MiddlewareStackProxy.delete(...) - changed:
method MiddlewareStackProxy.insert(*) → method MiddlewareStackProxy.insert(...) - changed:
method MiddlewareStackProxy.insert_after(*) → method MiddlewareStackProxy.insert_after(...) - changed:
method MiddlewareStackProxy.insert_before(*) → method MiddlewareStackProxy.insert_before(...) - changed:
method MiddlewareStackProxy.move(*) → method MiddlewareStackProxy.move(...) - changed:
method MiddlewareStackProxy.move_after(*) → method MiddlewareStackProxy.move_after(...) - changed:
method MiddlewareStackProxy.move_before(*) → method MiddlewareStackProxy.move_before(...) - changed:
method MiddlewareStackProxy.swap(*) → method MiddlewareStackProxy.swap(...) - changed:
method MiddlewareStackProxy.unshift(*) → method MiddlewareStackProxy.unshift(...) - changed:
method MiddlewareStackProxy.use(*) → method MiddlewareStackProxy.use(...) - added:
method Generators.apply_rubocop_autocorrect_after_generate!()
- removed:
method BacktraceCleaner.filter_backtrace(_) - removed:
module BacktraceCleaner - added:
class AppInstance < NewSession - added:
class ControllerHelper < RailsHelperBase - added:
class ControllerInstance < RailsHelperBase - added:
class IRBConsole - added:
class NewSession < RailsHelperBase - added:
class RailsHelperBase < IRB::HelperMethod::Base - added:
class ReloadHelper < RailsHelperBase - added:
constructor IRBConsole(_) - added:
method AppInstance.execute(_ = …) - added:
method ControllerHelper.execute() - added:
method ControllerInstance.execute() - added:
method IRBConsole.colorized_env() - added:
method IRBConsole.name() - added:
method IRBConsole.start() - added:
method NewSession.execute(*) - added:
method ReloadHelper.execute()
- removed:
method Configuration.autoload_once_paths() - removed:
method Configuration.autoload_paths() - removed:
method Configuration.eager_load_paths() - added:
method Configuration.all_autoload_once_paths() - added:
method Configuration.all_autoload_paths() - added:
method Configuration.all_eager_load_paths() - added:
property Configuration.autoload_once_paths: reader - added:
property Configuration.autoload_paths: reader - added:
property Configuration.eager_load_paths: reader
- removed:
class ARGVScrubber - removed:
class AssetsGenerator < NamedBase - removed:
class PluginGenerator < AppBase - removed:
const AppGenerator.WEBPACKS - removed:
const Database.JDBC_DATABASES - removed:
constructor ARGVScrubber(_ = …) - removed:
constructor AppGenerator(*) - removed:
constructor Database(*) - removed:
constructor PluginGenerator(*) - removed:
method ARGVScrubber.prepare!() - removed:
method AppGenerator.create_active_record_files() - removed:
method AppGenerator.create_app_files() - removed:
method AppGenerator.create_bin_files() - removed:
method AppGenerator.create_boot_file() - removed:
method AppGenerator.create_config_files() - removed:
method AppGenerator.create_credentials() - removed:
method AppGenerator.create_db_files() - removed:
method AppGenerator.create_lib_files() - removed:
method AppGenerator.create_log_files() - removed:
method AppGenerator.create_master_key() - removed:
method AppGenerator.create_public_files() - removed:
method AppGenerator.create_root_files() - removed:
method AppGenerator.create_storage_files() - removed:
method AppGenerator.create_system_test_files() - removed:
method AppGenerator.create_test_files() - removed:
method AppGenerator.create_tmp_files() - removed:
method AppGenerator.create_vendor_files() - removed:
method AppGenerator.delete_action_cable_files_skipping_action_cable() - removed:
method AppGenerator.delete_action_mailer_files_skipping_action_mailer() - removed:
method AppGenerator.delete_active_job_folder_if_skipping_active_job() - removed:
method AppGenerator.delete_api_initializers() - removed:
method AppGenerator.delete_app_assets_if_api_option() - removed:
method AppGenerator.delete_app_helpers_if_api_option() - removed:
method AppGenerator.delete_app_views_if_api_option() - removed:
method AppGenerator.delete_application_record_skipping_active_record() - removed:
method AppGenerator.delete_assets_initializer_skipping_sprockets() - removed:
method AppGenerator.delete_js_folder_skipping_javascript() - removed:
method AppGenerator.delete_js_packs_when_minimal_skipping_webpack() - removed:
method AppGenerator.delete_new_framework_defaults() - removed:
method AppGenerator.delete_non_api_initializers_if_api_option() - removed:
method AppGenerator.delete_public_files_if_api_option() - removed:
method AppGenerator.display_upgrade_guide_info() - removed:
method AppGenerator.finish_template() - removed:
method AppGenerator.run_after_bundle_callbacks() - removed:
method AppGenerator.update_active_storage() - removed:
method AppGenerator.update_bin_files() - removed:
method AppGenerator.update_bin_yarn() - removed:
method AppGenerator.update_config_files() - removed:
method CredentialsGenerator.add_credentials_file_silently(_ = …) - removed:
method Database.convert_database_option_for_jruby() - removed:
method Database.gem_for_database(_ = …) - removed:
method PluginGenerator.create_app_files() - removed:
method PluginGenerator.create_assets_manifest_file() - removed:
method PluginGenerator.create_bin_files() - removed:
method PluginGenerator.create_config_files() - removed:
method PluginGenerator.create_lib_files() - removed:
method PluginGenerator.create_public_stylesheets_files() - removed:
method PluginGenerator.create_root_files() - removed:
method PluginGenerator.create_test_dummy_files() - removed:
method PluginGenerator.create_test_files() - removed:
method PluginGenerator.finish_template() - removed:
method PluginGenerator.name() - removed:
method PluginGenerator.namespaced_name() - removed:
method PluginGenerator.plugin_path() - removed:
method PluginGenerator.underscored_name() - removed:
method PluginGenerator.update_gemfile() - removed:
method ScaffoldGenerator.handle_skip() - removed:
module Database - removed:
static method ARGVScrubber.default_rc_file() - removed:
static method AppGenerator.banner() - changed:
class AppGenerator < AppBase → class AppGenerator - added:
class Database - added:
class DevcontainerGenerator < Base - added:
const AppBase.ASSET_PIPELINE_OPTIONS - added:
const AppBase.BUN_VERSION - added:
const AppBase.CSS_OPTIONS - added:
const AppBase.JAVASCRIPT_OPTIONS - added:
const AppBase.NODE_LTS_VERSION - added:
const AppBase.OPTION_IMPLICATIONS - added:
const BenchmarkGenerator.IPS_GEM_USED_REGEXP - added:
const GeneratedAttribute.DEFAULT_TYPES - added:
method Database.base_package() - added:
method Database.build_package() - added:
method Database.feature() - added:
method Database.feature_name() - added:
method Database.gem() - added:
method Database.host() - added:
method Database.name() - added:
method Database.port() - added:
method Database.service() - added:
method Database.socket() - added:
method Database.volume() - added:
method DevcontainerGenerator.create_devcontainer() - added:
method DevcontainerGenerator.update_application_system_test_case() - added:
method DevcontainerGenerator.update_database_yml() - added:
method GeneratedAttribute.to_s() - added:
static method AppBase.edge_branch() - added:
static method Database.all() - added:
static method Database.build(_) - added:
static method GeneratedAttribute.dangerous_name?(_) - added:
static method GeneratedAttribute.valid_index_type?(_) - added:
static method GeneratedAttribute.valid_type?(_) - added:
static method MigrationGenerator.exit_on_failure?() - added:
static method ResourceGenerator.desc(_ = …)
- removed:
method GemfileEntry.version() - added:
method GemfileEntry.to_s() - added:
static method GemfileEntry.floats(_, _ = …)
- added:
class MariaDB < Database - added:
class MySQL < Database - added:
class Null < Database - added:
class PostgreSQL < Database - added:
class SQLite3 < Database - added:
method MariaDB.base_package() - added:
method MariaDB.build_package() - added:
method MariaDB.feature_name() - added:
method MariaDB.gem() - added:
method MariaDB.name() - added:
method MariaDB.port() - added:
method MariaDB.service() - added:
method MySQL.base_package() - added:
method MySQL.build_package() - added:
method MySQL.feature_name() - added:
method MySQL.gem() - added:
method MySQL.name() - added:
method MySQL.port() - added:
method MySQL.service() - added:
method MySqlSocket.host() - added:
method MySqlSocket.socket() - added:
method Null.base_package() - added:
method Null.build_package() - added:
method Null.feature_name() - added:
method Null.name() - added:
method Null.port() - added:
method Null.service() - added:
method Null.volume() - added:
method PostgreSQL.base_package() - added:
method PostgreSQL.build_package() - added:
method PostgreSQL.feature_name() - added:
method PostgreSQL.gem() - added:
method PostgreSQL.name() - added:
method PostgreSQL.port() - added:
method PostgreSQL.service() - added:
method SQLite3.base_package() - added:
method SQLite3.build_package() - added:
method SQLite3.feature_name() - added:
method SQLite3.gem() - added:
method SQLite3.name() - added:
method SQLite3.port() - added:
method SQLite3.service() - added:
module MySqlSocket
- added:
const ChangeGenerator.BASE_PACKAGES - added:
const ChangeGenerator.BUILD_PACKAGES - added:
method ChangeGenerator.edit_devcontainer_files() - added:
method ChangeGenerator.edit_dockerfile()
- removed:
method Behaviour.create_generated_attribute(_, _ = …, _ = …) - removed:
method Behaviour.generator(_ = …, _ = …, _ = …) - removed:
method Behaviour.run_generator(_ = …, _ = …) - removed:
module Behaviour - added:
method Assertions.assert_initializer(_, *) - added:
method Behavior.create_generated_attribute(_, _ = …, _ = …) - added:
method Behavior.generator(_ = …, _ = …, _ = …) - added:
method Behavior.run_generator(_ = …, _ = …) - added:
module Behavior
- added:
method ClassMethods.arguments(_) - added:
method ClassMethods.destination(_) - added:
method ClassMethods.tests(_) - added:
module ClassMethods
- removed:
method ClassMethods.arguments(_) - removed:
method ClassMethods.destination(_) - removed:
method ClassMethods.tests(_) - removed:
module ClassMethods
- added:
method Configuration.after_routes_loaded()
- removed:
class MissingKeyError < RuntimeError - removed:
constructor MissingKeyError()
- added:
class ParserExtractor < Struct.new(:pattern) - added:
class PatternExtractor < Struct.new(:pattern) - added:
method ParserExtractor.annotations(_) - added:
method PatternExtractor.annotations(_)
- added:
class Parser < Ripper - added:
constructor Parser(_, pattern:) - added:
method Parser.on_comment(_) - added:
property Parser.comments: reader - added:
property Parser.pattern: reader
- removed:
static method Runner.rake_run(_ = …) - added:
class InvalidTestError < ArgumentError - added:
class TestParser < Ripper - added:
const Runner.PATH_ARGUMENT_PATTERN - added:
const Runner.TEST_FOLDERS - added:
constructor InvalidTestError(_, _) - added:
constructor TestParser(*) - added:
method InvalidTestError.backtrace(*) - added:
method TestParser.first_arg(_, *) - added:
method TestParser.just_lineno(*) - added:
method TestParser.on_arg_paren(_, *) - added:
method TestParser.on_args_add(_, _) - added:
method TestParser.on_args_add_block(_, *) - added:
method TestParser.on_args_new() - added:
method TestParser.on_bodystmt(_, *) - added:
method TestParser.on_brace_block(*) - added:
method TestParser.on_command(_, *) - added:
method TestParser.on_command_call(*, _, _) - added:
method TestParser.on_def(_, *) - added:
method TestParser.on_do_block(*) - added:
method TestParser.on_ident(*) - added:
method TestParser.on_method_add_arg(_, *) - added:
method TestParser.on_method_add_block(_, _) - added:
method TestParser.on_stmts_add(_, *) - added:
method TestParser.on_stmts_new(*) - added:
method TestParser.parse() - added:
static method Runner.run_from_rake(_, _ = …) - added:
static method TestParser.definition_for(_)