From 6ba2fdb2fe85751b573aadd05608471daf1a44ff Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Sat, 30 Dec 2023 19:46:43 +0100 Subject: [PATCH] Bump the required Ruby version to 3.1.0 Until now, Rails only droped compatibility with older rubies on new majors, but I propose to change this policy because it causes us to either keep compatibility with long EOLed rubies or to bump the Rails major more often, and to drop multiple Ruby versions at once when we bump the major. In my opinion it's a bad alignments of incentives. And we'd be much better to just drop support in new minors whenever they go EOL (so 3 years). Also Ruby being an upstream dependency, it's not even a semver violation AFAICT. Since Rails 7.2 isn't planned before a few months, we can already drop Ruby 3.0 as it will be EOL in March. --- actioncable/actioncable.gemspec | 2 +- actionmailbox/actionmailbox.gemspec | 2 +- actionmailer/actionmailer.gemspec | 2 +- actionpack/actionpack.gemspec | 2 +- actiontext/actiontext.gemspec | 2 +- actionview/actionview.gemspec | 2 +- activejob/activejob.gemspec | 2 +- activemodel/activemodel.gemspec | 2 +- activerecord/activerecord.gemspec | 2 +- activestorage/activestorage.gemspec | 2 +- activesupport/activesupport.gemspec | 2 +- rails.gemspec | 2 +- railties/railties.gemspec | 2 +- tools/rail_inspector/rail_inspector.gemspec | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/actioncable/actioncable.gemspec b/actioncable/actioncable.gemspec index ca4a888c4d..932f7ae808 100644 --- a/actioncable/actioncable.gemspec +++ b/actioncable/actioncable.gemspec @@ -9,7 +9,7 @@ s.summary = "WebSocket framework for Rails." s.description = "Structure many real-time application concerns into channels over a single WebSocket connection." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/actionmailbox/actionmailbox.gemspec b/actionmailbox/actionmailbox.gemspec index 6f07f54e47..f6d09e79a8 100644 --- a/actionmailbox/actionmailbox.gemspec +++ b/actionmailbox/actionmailbox.gemspec @@ -9,7 +9,7 @@ s.summary = "Inbound email handling framework." s.description = "Receive and process incoming emails in Rails applications." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/actionmailer/actionmailer.gemspec b/actionmailer/actionmailer.gemspec index 602bb15ca6..6af02c1bbe 100644 --- a/actionmailer/actionmailer.gemspec +++ b/actionmailer/actionmailer.gemspec @@ -9,7 +9,7 @@ s.summary = "Email composition and delivery framework (part of Rails)." s.description = "Email on Rails. Compose, deliver, and test emails using the familiar controller/view pattern. First-class support for multipart email and attachments." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/actionpack/actionpack.gemspec b/actionpack/actionpack.gemspec index c4a311dd2c..d144f4d4b8 100644 --- a/actionpack/actionpack.gemspec +++ b/actionpack/actionpack.gemspec @@ -9,7 +9,7 @@ s.summary = "Web-flow and rendering framework putting the VC in MVC (part of Rails)." s.description = "Web apps on Rails. Simple, battle-tested conventions for building and testing MVC web applications. Works with any Rack-compatible server." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/actiontext/actiontext.gemspec b/actiontext/actiontext.gemspec index 5fbf777b80..058bf24e78 100644 --- a/actiontext/actiontext.gemspec +++ b/actiontext/actiontext.gemspec @@ -9,7 +9,7 @@ s.summary = "Rich text framework." s.description = "Edit and display rich text in Rails applications." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/actionview/actionview.gemspec b/actionview/actionview.gemspec index 06d8e3ac5d..e6ebb2c7dd 100644 --- a/actionview/actionview.gemspec +++ b/actionview/actionview.gemspec @@ -9,7 +9,7 @@ s.summary = "Rendering framework putting the V in MVC (part of Rails)." s.description = "Simple, battle-tested conventions and helpers for building web pages." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/activejob/activejob.gemspec b/activejob/activejob.gemspec index cf0be7e0ca..4a739293d2 100644 --- a/activejob/activejob.gemspec +++ b/activejob/activejob.gemspec @@ -9,7 +9,7 @@ s.summary = "Job framework with pluggable queues." s.description = "Declare job classes that can be run by a variety of queuing backends." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/activemodel/activemodel.gemspec b/activemodel/activemodel.gemspec index d300addabe..4f0696814a 100644 --- a/activemodel/activemodel.gemspec +++ b/activemodel/activemodel.gemspec @@ -9,7 +9,7 @@ s.summary = "A toolkit for building modeling frameworks (part of Rails)." s.description = "A toolkit for building modeling frameworks like Active Record. Rich support for attributes, callbacks, validations, serialization, internationalization, and testing." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/activerecord/activerecord.gemspec b/activerecord/activerecord.gemspec index 016528bfdc..c235d33fdc 100644 --- a/activerecord/activerecord.gemspec +++ b/activerecord/activerecord.gemspec @@ -9,7 +9,7 @@ s.summary = "Object-relational mapper framework (part of Rails)." s.description = "Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes. Strong conventions for associations, validations, aggregations, migrations, and testing come baked-in." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/activestorage/activestorage.gemspec b/activestorage/activestorage.gemspec index 8adcc5a931..863a275a54 100644 --- a/activestorage/activestorage.gemspec +++ b/activestorage/activestorage.gemspec @@ -9,7 +9,7 @@ s.summary = "Local and cloud file storage framework." s.description = "Attach cloud and local files in Rails applications." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/activesupport/activesupport.gemspec b/activesupport/activesupport.gemspec index ce8603293e..17fb20f2a4 100644 --- a/activesupport/activesupport.gemspec +++ b/activesupport/activesupport.gemspec @@ -9,7 +9,7 @@ s.summary = "A toolkit of support libraries and Ruby core extensions extracted from the Rails framework." s.description = "A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Rich support for multibyte strings, internationalization, time zones, and testing." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/rails.gemspec b/rails.gemspec index 7c3c785437..de27c27314 100644 --- a/rails.gemspec +++ b/rails.gemspec @@ -9,7 +9,7 @@ s.summary = "Full-stack web application framework." s.description = "Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.required_rubygems_version = ">= 1.8.11" s.license = "MIT" diff --git a/railties/railties.gemspec b/railties/railties.gemspec index 1ad7f49062..044a89de1c 100644 --- a/railties/railties.gemspec +++ b/railties/railties.gemspec @@ -9,7 +9,7 @@ s.summary = "Tools for creating, working with, and running Rails applications." s.description = "Rails internals: application bootup, plugins, generators, and rake tasks." - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.1.0" s.license = "MIT" diff --git a/tools/rail_inspector/rail_inspector.gemspec b/tools/rail_inspector/rail_inspector.gemspec index 1655e34810..b23a6bfef9 100644 --- a/tools/rail_inspector/rail_inspector.gemspec +++ b/tools/rail_inspector/rail_inspector.gemspec @@ -11,7 +11,7 @@ spec.summary = "A collection of linters for rails/rails" spec.homepage = "https://github.com/skipkayhil/rail_inspector" spec.license = "MIT" - spec.required_ruby_version = ">= 2.7.0" + spec.required_ruby_version = ">= 3.1.0" spec.metadata["homepage_uri"] = spec.homepage spec.metadata["source_code_uri"] = spec.homepage