From d60ada49c3d3a379d601bdb40a9b2c03ed29515d Mon Sep 17 00:00:00 2001 From: Nicholas La Roux Date: Sun, 13 Jul 2025 14:36:09 -0400 Subject: [PATCH] =?UTF-8?q?Drop=20support=20for=20no-longer-supported=20Ra?= =?UTF-8?q?ils=207.0=20and=20clean=20up=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 1 - Gemfile | 2 +- Gemfile.lock | 10 +++--- Rakefile | 3 -- .../maintenance_tasks/task_job_concern.rb | 4 +-- app/models/maintenance_tasks/run.rb | 12 ++----- app/models/maintenance_tasks/task.rb | 6 +--- bin/rails | 3 -- gemfiles/rails_7_0.gemfile | 9 ----- lib/maintenance_tasks/engine.rb | 6 ++-- maintenance_tasks.gemspec | 2 +- test/application_system_test_case.rb | 4 --- test/dummy/Rakefile | 3 -- test/dummy/bin/rails | 3 -- test/jobs/maintenance_tasks/task_job_test.rb | 33 ------------------- test/test_helper.rb | 1 - 16 files changed, 14 insertions(+), 88 deletions(-) delete mode 100644 gemfiles/rails_7_0.gemfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 298c830e7..ddfcd06d5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,6 @@ jobs: fail-fast: false matrix: gemfile: - - gemfiles/rails_7_0.gemfile - gemfiles/rails_7_1.gemfile - gemfiles/rails_7_2.gemfile - Gemfile # current minor release diff --git a/Gemfile b/Gemfile index 9a78b6794..add2c67ee 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ gem "debug" gem "mocha" gem "puma" if !@rails_gem_requirement - gem "rails", ">= 7.0" + gem "rails", ">= 7.1" ruby ">= 3.2.0" else # causes Dependabot to ignore the next line and update the previous gem "rails" diff --git a/Gemfile.lock b/Gemfile.lock index b47f2675d..c6b668944 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,12 +2,12 @@ PATH remote: . specs: maintenance_tasks (2.12.0) - actionpack (>= 7.0) - activejob (>= 7.0) - activerecord (>= 7.0) + actionpack (>= 7.1) + activejob (>= 7.1) + activerecord (>= 7.1) csv job-iteration (>= 1.3.6) - railties (>= 7.0) + railties (>= 7.1) zeitwerk (>= 2.6.2) GEM @@ -320,7 +320,7 @@ DEPENDENCIES maintenance_tasks! mocha puma - rails (>= 7.0) + rails (>= 7.1) rubocop rubocop-shopify selenium-webdriver diff --git a/Rakefile b/Rakefile index fcd8e4da6..0714cadc6 100644 --- a/Rakefile +++ b/Rakefile @@ -6,9 +6,6 @@ rescue LoadError puts "You must `gem install bundler` and `bundle install` to run rake tasks" end -# Only necessary for activesupport <= 7.0 and concurrent-ruby >= 1.3.5 -require "logger" # https://github.com/rails/rails/issues/54260 - require "rdoc/task" RDoc::Task.new(:rdoc) do |rdoc| rdoc.rdoc_dir = "rdoc" diff --git a/app/jobs/concerns/maintenance_tasks/task_job_concern.rb b/app/jobs/concerns/maintenance_tasks/task_job_concern.rb index 4293354e4..b0d526cec 100644 --- a/app/jobs/concerns/maintenance_tasks/task_job_concern.rb +++ b/app/jobs/concerns/maintenance_tasks/task_job_concern.rb @@ -193,10 +193,8 @@ def on_error(error) if MaintenanceTasks.instance_variable_get(:@error_handler) errored_element = task_context.delete(:errored_element) MaintenanceTasks.error_handler.call(error, task_context.except(:run_id, :tick_count), errored_element) - elsif Rails.gem_version >= Gem::Version.new("7.1") - Rails.error.report(error, context: task_context, source: "maintenance-tasks") else - Rails.error.report(error, handled: true, context: task_context) + Rails.error.report(error, context: task_context, source: "maintenance-tasks") end end diff --git a/app/models/maintenance_tasks/run.rb b/app/models/maintenance_tasks/run.rb index 7d330bcdf..a671f1bcd 100644 --- a/app/models/maintenance_tasks/run.rb +++ b/app/models/maintenance_tasks/run.rb @@ -44,15 +44,9 @@ class Run < ApplicationRecord attr_readonly :task_name - if Rails.gem_version >= Gem::Version.new("7.1.alpha") - serialize :backtrace, coder: YAML - serialize :arguments, coder: JSON - serialize :metadata, coder: JSON - else - serialize :backtrace - serialize :arguments, JSON - serialize :metadata, JSON - end + serialize :backtrace, coder: YAML + serialize :arguments, coder: JSON + serialize :metadata, coder: JSON scope :active, -> { where(status: ACTIVE_STATUSES) } scope :completed, -> { where(status: COMPLETED_STATUSES) } diff --git a/app/models/maintenance_tasks/task.rb b/app/models/maintenance_tasks/task.rb index ff18544eb..ff3eae695 100644 --- a/app/models/maintenance_tasks/task.rb +++ b/app/models/maintenance_tasks/task.rb @@ -238,11 +238,7 @@ def after_error(*filter_list, &block) # By default: { source: "maintenance_tasks" } or (Rails { handled: true }. def report_on(*exceptions, **report_options) rescue_from(*exceptions) do |exception| - if Rails.gem_version >= Gem::Version.new("7.1") - Rails.error.report(exception, source: "maintenance_tasks", **report_options) - else - Rails.error.report(exception, handled: true, **report_options) - end + Rails.error.report(exception, source: "maintenance_tasks", **report_options) end end diff --git a/bin/rails b/bin/rails index 6ec218a0d..855cf948e 100755 --- a/bin/rails +++ b/bin/rails @@ -12,7 +12,4 @@ APP_PATH = File.expand_path("../test/dummy/config/application", __dir__) ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"]) -# Only necessary for activesupport <= 7.0 and concurrent-ruby >= 1.3.5 -require "logger" # https://github.com/rails/rails/issues/54260 - require "rails/engine/commands" diff --git a/gemfiles/rails_7_0.gemfile b/gemfiles/rails_7_0.gemfile deleted file mode 100644 index b28174f8e..000000000 --- a/gemfiles/rails_7_0.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -@rails_gem_requirement = "~> 7.0.4" -@sqlite3_requirement = "~> 1.4" - -eval_gemfile "../Gemfile" -gem "bigdecimal" -gem "drb" -gem "mutex_m" diff --git a/lib/maintenance_tasks/engine.rb b/lib/maintenance_tasks/engine.rb index 35383d99d..185a22f3a 100644 --- a/lib/maintenance_tasks/engine.rb +++ b/lib/maintenance_tasks/engine.rb @@ -21,10 +21,8 @@ class Engine < ::Rails::Engine MaintenanceTasks.backtrace_cleaner = Rails.backtrace_cleaner end - if Rails.gem_version >= Gem::Version.new("7.1") - initializer "maintenance_tasks.deprecator" do - Rails.application.deprecators[:maintenance_tasks] = MaintenanceTasks.deprecator - end + initializer "maintenance_tasks.deprecator" do + Rails.application.deprecators[:maintenance_tasks] = MaintenanceTasks.deprecator end config.to_prepare do diff --git a/maintenance_tasks.gemspec b/maintenance_tasks.gemspec index ac713051a..08107be1e 100644 --- a/maintenance_tasks.gemspec +++ b/maintenance_tasks.gemspec @@ -21,7 +21,7 @@ Gem::Specification.new do |spec| spec.bindir = "exe" spec.executables = ["maintenance_tasks"] - minimum_rails_version = "7.0" + minimum_rails_version = "7.1" spec.add_dependency("actionpack", ">= #{minimum_rails_version}") spec.add_dependency("activejob", ">= #{minimum_rails_version}") spec.add_dependency("activerecord", ">= #{minimum_rails_version}") diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index 5cf233e39..a124c5f97 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -19,10 +19,6 @@ config.ignore_hidden_elements = false end -if Rails.gem_version < Gem::Version.new("7.1") - Selenium::WebDriver.logger.ignore(:capabilities) -end - class ApplicationSystemTestCase < ActionDispatch::SystemTestCase include ActiveJob::TestHelper diff --git a/test/dummy/Rakefile b/test/dummy/Rakefile index b2724102d..c4f952387 100644 --- a/test/dummy/Rakefile +++ b/test/dummy/Rakefile @@ -1,8 +1,5 @@ # frozen_string_literal: true -# Only necessary for activesupport <= 7.0 and concurrent-ruby >= 1.3.5 -require "logger" # https://github.com/rails/rails/issues/54260 - require_relative "config/application" Rails.application.load_tasks diff --git a/test/dummy/bin/rails b/test/dummy/bin/rails index d1eacd170..1addfe147 100755 --- a/test/dummy/bin/rails +++ b/test/dummy/bin/rails @@ -4,7 +4,4 @@ APP_PATH = File.expand_path("../config/application", __dir__) require_relative "../config/boot" -# Only necessary for activesupport <= 7.0 and concurrent-ruby >= 1.3.5 -require "logger" # https://github.com/rails/rails/issues/54260 - require "rails/commands" diff --git a/test/jobs/maintenance_tasks/task_job_test.rb b/test/jobs/maintenance_tasks/task_job_test.rb index 3e1e01d3d..1f84650c4 100644 --- a/test/jobs/maintenance_tasks/task_job_test.rb +++ b/test/jobs/maintenance_tasks/task_job_test.rb @@ -774,38 +774,5 @@ class << self assert_equal(report.context.slice(:more), { more: true }) assert_equal(report.severity, :info) end - - private - - if Rails.gem_version < Gem::Version.new("7.1.0") - Report = Struct.new(:exception, :handled, :severity, :context, :source, keyword_init: true) - - def assert_error_reported(error = nil, &block) - reporter = Class.new do - def reports - @reports ||= [] - end - - def report(exception, **kwargs) - reports << Report.new(exception: exception, **kwargs) - end - end.new - - Rails.error.subscribe(reporter) - - yield - - if error - report = reporter.reports.detect { |report| report.exception.is_a?(error) } - assert(report, "No #{error} reported!") - report - else - assert_not_empty(reporter.reports, "No errors reported!") - reporter.reports.first - end - ensure - Rails.error.instance_variable_get(:@subscribers).delete(reporter) - end - end end end diff --git a/test/test_helper.rb b/test/test_helper.rb index 154aee82b..5c6abc95a 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -46,7 +46,6 @@ def warn(message) # To be removed once warnings are fixed in selenium-webdriver and sprockets. # This is noisy, so ignoring completely for now. return if message.match?("URI::RFC3986_PARSER.(un)?escape is obsolete.") - return if Rails.gem_version < "7.1" && message.match?(/the block passed to .* may be ignored/) raise message.to_s end