From 4f8e4f9b84d20009117afa6b6c47f39f4838d5aa Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Kowalski Date: Mon, 29 Dec 2025 09:15:33 +0100 Subject: [PATCH 01/11] Relax Ruby version requirement --- activeadmin-searchable_select.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activeadmin-searchable_select.gemspec b/activeadmin-searchable_select.gemspec index 664bd4f..c257d83 100644 --- a/activeadmin-searchable_select.gemspec +++ b/activeadmin-searchable_select.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |spec| spec.files = `git ls-files -z`.split("\x0") spec.require_paths = ['lib'] - spec.required_ruby_version = ['>= 2.1', '< 4'] + spec.required_ruby_version = '>= 2.1' spec.add_development_dependency 'bundler', ['>= 1.5', '< 3'] spec.add_development_dependency 'rake' From 2da6ffed0d7102f287c80d4cdf4071d6e6353e90 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 10:27:17 +0100 Subject: [PATCH 02/11] Add Ruby 4.0 to tests workflow matrix --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a2d4b05..f573d29 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,6 +27,8 @@ jobs: gemfile: gemfiles/rails_6.x_active_admin_3.x.gemfile - ruby-version: '3.0' gemfile: gemfiles/rails_7.x_active_admin_3.x.gemfile + - ruby-version: '4.0' + gemfile: gemfiles/rails_7.x_active_admin_3.x.gemfile env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} From dba0f38c1e191e519f0e1bbc6c4bc1949b911b23 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 10:37:36 +0100 Subject: [PATCH 03/11] Relax Bundler version requirement --- activeadmin-searchable_select.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activeadmin-searchable_select.gemspec b/activeadmin-searchable_select.gemspec index c257d83..2476c0f 100644 --- a/activeadmin-searchable_select.gemspec +++ b/activeadmin-searchable_select.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '>= 2.1' - spec.add_development_dependency 'bundler', ['>= 1.5', '< 3'] + spec.add_development_dependency 'bundler', '>= 1.5' spec.add_development_dependency 'rake' spec.add_development_dependency 'appraisal', '~> 2.2' spec.add_development_dependency 'rspec-rails', '~> 3.6' From 855258abf0df92234e2bd7d52180af3b986b6904 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 10:45:28 +0100 Subject: [PATCH 04/11] Fix Ruby 3.0+ compatibility in test suite Ruby 3.0 no longer auto-loads Logger from the standard library. ActiveSupport 6.1 expects it to be available, causing tests to fail with "uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger". --- spec/rails_helper.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index eac0bd0..cc843e4 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,5 +1,6 @@ ENV['RAILS_ENV'] ||= 'test' +require 'logger' require 'combustion' Combustion.initialize!(:active_record, :action_controller, :action_view, :sprockets) From 72651ef45d34110fcbc77a6ffdba4a87c82979ad Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 10:58:38 +0100 Subject: [PATCH 05/11] Relax rspec-rails version requirement Rails 7.2 removed the `fixture_path=` method which older rspec-rails versions rely on. Allowing rspec-rails >= 3.6 lets Bundler pick a compatible version for each Rails version in the test matrix. --- activeadmin-searchable_select.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activeadmin-searchable_select.gemspec b/activeadmin-searchable_select.gemspec index 2476c0f..6e878e8 100644 --- a/activeadmin-searchable_select.gemspec +++ b/activeadmin-searchable_select.gemspec @@ -19,7 +19,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'bundler', '>= 1.5' spec.add_development_dependency 'rake' spec.add_development_dependency 'appraisal', '~> 2.2' - spec.add_development_dependency 'rspec-rails', '~> 3.6' + spec.add_development_dependency 'rspec-rails', '>= 3.6' spec.add_development_dependency 'combustion', '~> 1.0' spec.add_development_dependency 'database_cleaner-active_record', '~> 2.1' spec.add_development_dependency 'sqlite3', '~> 1.3' From 77011efbf9eb290be7fe3157562d1ea732742320 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 11:03:24 +0100 Subject: [PATCH 06/11] Replace webdrivers with Selenium Manager The webdrivers gem has path handling bugs and is deprecated. Selenium 4.11+ includes Selenium Manager which handles driver downloads automatically without external dependencies. --- activeadmin-searchable_select.gemspec | 3 +-- spec/support/capybara.rb | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/activeadmin-searchable_select.gemspec b/activeadmin-searchable_select.gemspec index 6e878e8..04ea867 100644 --- a/activeadmin-searchable_select.gemspec +++ b/activeadmin-searchable_select.gemspec @@ -26,8 +26,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'capybara', '~> 3.9' spec.add_development_dependency 'puma', '~> 5.0' - spec.add_development_dependency 'selenium-webdriver', '~> 4.1' - spec.add_development_dependency 'webdrivers', '= 5.3.0' + spec.add_development_dependency 'selenium-webdriver', '>= 4.11' spec.add_development_dependency 'coffee-rails' spec.add_development_dependency 'rails' diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb index 3c499d6..0686082 100644 --- a/spec/support/capybara.rb +++ b/spec/support/capybara.rb @@ -1,6 +1,5 @@ require 'capybara/rspec' require 'selenium-webdriver' -require 'webdrivers/chromedriver' Capybara.javascript_driver = :selenium_chrome_headless From 4e26907dc0bd11fec726f9b5aaa40e0fcdda0721 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 11:09:28 +0100 Subject: [PATCH 07/11] Drop Ruby 2.x and Rails 5.x support Ruby 2.6/2.7 and Rails 5.x are end-of-life. Modern selenium-webdriver requires Ruby 3.0+, making continued Ruby 2.x testing impractical. --- .github/workflows/tests.yml | 14 +++----------- activeadmin-searchable_select.gemspec | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f573d29..1aa92ce 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,20 +13,12 @@ jobs: fail-fast: false matrix: ruby-version: - - '2.6' - - '2.7' + - '3.0' gemfile: - - gemfiles/rails_5.1_active_admin_1.x.gemfile - - gemfiles/rails_5.x_active_admin_1.x.gemfile - - gemfiles/rails_5.x_active_admin_2.x.gemfile - gemfiles/rails_6.x_active_admin_2.x.gemfile + - gemfiles/rails_6.x_active_admin_3.x.gemfile + - gemfiles/rails_7.x_active_admin_3.x.gemfile include: - - ruby-version: '3.0' - gemfile: gemfiles/rails_6.x_active_admin_2.x.gemfile - - ruby-version: '3.0' - gemfile: gemfiles/rails_6.x_active_admin_3.x.gemfile - - ruby-version: '3.0' - gemfile: gemfiles/rails_7.x_active_admin_3.x.gemfile - ruby-version: '4.0' gemfile: gemfiles/rails_7.x_active_admin_3.x.gemfile diff --git a/activeadmin-searchable_select.gemspec b/activeadmin-searchable_select.gemspec index 04ea867..4d590fb 100644 --- a/activeadmin-searchable_select.gemspec +++ b/activeadmin-searchable_select.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |spec| spec.files = `git ls-files -z`.split("\x0") spec.require_paths = ['lib'] - spec.required_ruby_version = '>= 2.1' + spec.required_ruby_version = '>= 3.0' spec.add_development_dependency 'bundler', '>= 1.5' spec.add_development_dependency 'rake' From af91c5558df0669073f6c4fa20fd1f9e3d5b8f73 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 11:12:02 +0100 Subject: [PATCH 08/11] Fix error expectation tests on Rails 7.2+ Rails 7.2 changed the default for show_exceptions in tests from false to :rescuable, causing exceptions during requests to be rescued instead of raised. Explicitly disable exception handling in tests. --- spec/rails_helper.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index cc843e4..6742a39 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -4,6 +4,12 @@ require 'combustion' Combustion.initialize!(:active_record, :action_controller, :action_view, :sprockets) +if Rails.version >= '7.1' + Rails.application.config.action_dispatch.show_exceptions = :none +else + Rails.application.config.action_dispatch.show_exceptions = false +end + require 'rspec/rails' require 'support/reset_settings' From bd4d7c23076468aaafea762e621d1907e2bdff4f Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 11:15:37 +0100 Subject: [PATCH 09/11] Relax sqlite3 version requirement Rails 8 requires sqlite3 >= 2.1. Allowing >= 1.3 lets Bundler pick a compatible version for each Rails version. --- activeadmin-searchable_select.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activeadmin-searchable_select.gemspec b/activeadmin-searchable_select.gemspec index 4d590fb..3cf494b 100644 --- a/activeadmin-searchable_select.gemspec +++ b/activeadmin-searchable_select.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rspec-rails', '>= 3.6' spec.add_development_dependency 'combustion', '~> 1.0' spec.add_development_dependency 'database_cleaner-active_record', '~> 2.1' - spec.add_development_dependency 'sqlite3', '~> 1.3' + spec.add_development_dependency 'sqlite3', '>= 1.3' spec.add_development_dependency 'capybara', '~> 3.9' spec.add_development_dependency 'puma', '~> 5.0' From 3e656a89b0108487b092b20b6831c286c9ce66ce Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 11:17:56 +0100 Subject: [PATCH 10/11] Add Rails 8 to test matrix --- .github/workflows/tests.yml | 3 +++ Appraisals | 5 +++++ gemfiles/rails_8.x_active_admin_3.x.gemfile | 9 +++++++++ 3 files changed, 17 insertions(+) create mode 100644 gemfiles/rails_8.x_active_admin_3.x.gemfile diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1aa92ce..2c986f4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,9 +18,12 @@ jobs: - gemfiles/rails_6.x_active_admin_2.x.gemfile - gemfiles/rails_6.x_active_admin_3.x.gemfile - gemfiles/rails_7.x_active_admin_3.x.gemfile + - gemfiles/rails_8.x_active_admin_3.x.gemfile include: - ruby-version: '4.0' gemfile: gemfiles/rails_7.x_active_admin_3.x.gemfile + - ruby-version: '4.0' + gemfile: gemfiles/rails_8.x_active_admin_3.x.gemfile env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} diff --git a/Appraisals b/Appraisals index 086d5fe..515ced9 100644 --- a/Appraisals +++ b/Appraisals @@ -27,3 +27,8 @@ appraise 'rails-7.x-active-admin-3.x' do gem 'rails', '~> 7.1' gem 'activeadmin', '~> 3.0' end + +appraise 'rails-8.x-active-admin-3.x' do + gem 'rails', '~> 8.0' + gem 'activeadmin', '~> 3.0' +end diff --git a/gemfiles/rails_8.x_active_admin_3.x.gemfile b/gemfiles/rails_8.x_active_admin_3.x.gemfile new file mode 100644 index 0000000..fd2b1aa --- /dev/null +++ b/gemfiles/rails_8.x_active_admin_3.x.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "sass-rails" +gem "rails", "~> 8.0" +gem "activeadmin", "~> 3.0" + +gemspec path: "../" From a0b85c80cfbc3ef2cdba9980d50c7e0b6f6bcff3 Mon Sep 17 00:00:00 2001 From: Tim Fischbach Date: Fri, 2 Jan 2026 11:27:03 +0100 Subject: [PATCH 11/11] Fix sqlite3 compatibility in test matrix - Use Ruby 3.3 instead of 3.0 (3.0 is EOL, 3.3 supports sqlite3 2.x) - Pin sqlite3 ~> 1.4 for Rails 6.x (required by activerecord 6.1) --- .github/workflows/tests.yml | 2 +- Appraisals | 2 ++ gemfiles/rails_6.x_active_admin_2.x.gemfile | 1 + gemfiles/rails_6.x_active_admin_3.x.gemfile | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2c986f4..bed7e61 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,7 +13,7 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.0' + - '3.3' gemfile: - gemfiles/rails_6.x_active_admin_2.x.gemfile - gemfiles/rails_6.x_active_admin_3.x.gemfile diff --git a/Appraisals b/Appraisals index 515ced9..a8e950d 100644 --- a/Appraisals +++ b/Appraisals @@ -16,11 +16,13 @@ end appraise 'rails-6.x-active-admin-2.x' do gem 'rails', '~> 6.1' gem 'activeadmin', '~> 2.0' + gem 'sqlite3', '~> 1.4' end appraise 'rails-6.x-active-admin-3.x' do gem 'rails', '~> 6.1' gem 'activeadmin', '~> 3.0' + gem 'sqlite3', '~> 1.4' end appraise 'rails-7.x-active-admin-3.x' do diff --git a/gemfiles/rails_6.x_active_admin_2.x.gemfile b/gemfiles/rails_6.x_active_admin_2.x.gemfile index a10ce61..2281328 100644 --- a/gemfiles/rails_6.x_active_admin_2.x.gemfile +++ b/gemfiles/rails_6.x_active_admin_2.x.gemfile @@ -5,5 +5,6 @@ source "https://rubygems.org" gem "sass-rails" gem "rails", "~> 6.1" gem "activeadmin", "~> 2.0" +gem "sqlite3", "~> 1.4" gemspec path: "../" diff --git a/gemfiles/rails_6.x_active_admin_3.x.gemfile b/gemfiles/rails_6.x_active_admin_3.x.gemfile index b86b845..fef869f 100644 --- a/gemfiles/rails_6.x_active_admin_3.x.gemfile +++ b/gemfiles/rails_6.x_active_admin_3.x.gemfile @@ -5,5 +5,6 @@ source "https://rubygems.org" gem "sass-rails" gem "rails", "~> 6.1" gem "activeadmin", "~> 3.0" +gem "sqlite3", "~> 1.4" gemspec path: "../"