From c69f7346c4209e8ba2fd872b70bf431488e2c26e Mon Sep 17 00:00:00 2001 From: Igor Fedoronchuk Date: Thu, 1 Oct 2026 13:47:04 +0200 Subject: [PATCH 1/3] ci: drop EOL Ruby from the matrix Ruby 3.2 reached end of life on 2026-03-31 (endoflife.date/ruby), so CI no longer needs to prove the gem works there. Ruby 4.0 (eol 2029-03-31) takes its place alongside 3.3 (security-only until 2027-03-31) and 3.4. No exclude rules: every Ruby in the matrix runs against both gemfiles. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e545741..d89df2b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['3.2', '3.3', '3.4'] + ruby: ['3.3', '3.4', '4.0'] gemfile: - gemfiles/activeadmin_3.5.gemfile - gemfiles/activeadmin_4.0.gemfile From ee69968a46f591232d0e8845d7c0f01aedb8a46b Mon Sep 17 00:00:00 2001 From: Igor Fedoronchuk Date: Thu, 1 Oct 2026 13:50:47 +0200 Subject: [PATCH 2/3] chore: move the gemfiles off EOL Rails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rails 7.2 reached end of life on 2026-08-09 (endoflife.date/rails), so the ActiveAdmin 3.5 leg now pins Rails 8.0. ActiveAdmin 3.5.2 resolves and passes against it with the existing sprockets-rails / sassc-rails stack and omniauth_openid_connect 0.6.1 — all four dummy-app suites are green on Ruby 3.4.10. The ActiveAdmin 4.0 leg stays on Rails 8.0 for now. Rails 8.1 is not usable yet: railties 8.1 added `delegate_missing_to :@collection` to Rails::Initializable::Collection but rails/initializable.rb only requires "tsort", and rails/railtie.rb requires it before any ActiveSupport core ext. This gem requires "rails/railtie" directly (lib/activeadmin-oidc.rb) so loading it raises NoMethodError: undefined method `delegate_missing_to` for class Rails::Initializable::Collection A bare `require "rails/railtie"` reproduces this with no ActiveAdmin in the picture, and it does not happen on Rails 8.0. Both pins stay three-segment on purpose: a two-segment `~> 8.0` means >= 8.0, < 9.0 and would silently resolve to 8.1, so the leg would stop testing the version it claims to. Rails 8.0 goes EOL on 2026-11-07, so this needs a follow-up. --- gemfiles/activeadmin_3.5.gemfile | 2 +- gemfiles/activeadmin_4.0.gemfile | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gemfiles/activeadmin_3.5.gemfile b/gemfiles/activeadmin_3.5.gemfile index 2fdf8c4..f4cc083 100644 --- a/gemfiles/activeadmin_3.5.gemfile +++ b/gemfiles/activeadmin_3.5.gemfile @@ -6,7 +6,7 @@ gemspec path: ".." # ActiveAdmin 3.5 line: classic Sprockets + Sassc asset pipeline. gem "activeadmin", "~> 3.5.0" -gem "rails", "~> 7.2.0" +gem "rails", "~> 8.0.0" # openid_connect 1.x line (httpclient-based, no faraday dep). Pinning the # 0.6.x series here keeps CI exercising the pre-faraday strategy path. diff --git a/gemfiles/activeadmin_4.0.gemfile b/gemfiles/activeadmin_4.0.gemfile index 538c275..f649b68 100644 --- a/gemfiles/activeadmin_4.0.gemfile +++ b/gemfiles/activeadmin_4.0.gemfile @@ -8,6 +8,9 @@ gemspec path: ".." # the Sprockets/Sassc pipeline with Propshaft + importmap + cssbundling + # Tailwind, so the asset gems differ entirely from the 3.5 gemfile. gem "activeadmin", ">= 4.0.0.beta", "< 5" +# Blocked on Rails 8.1: railties 8.1 calls `delegate_missing_to` in +# Rails::Initializable::Collection without requiring the ActiveSupport +# core ext, so this gem's `require "rails/railtie"` raises NoMethodError. gem "rails", "~> 8.0.0" # openid_connect 2.x line (faraday 2.x). From b9860cfb996068c3cdef2cbbf353296c3f10a839 Mon Sep 17 00:00:00 2001 From: Igor Fedoronchuk Date: Thu, 1 Oct 2026 13:50:59 +0200 Subject: [PATCH 3/3] chore: raise the gemspec Ruby floor to 3.3 Ruby 3.2 went EOL on 2026-03-31 and is no longer in CI, so the gem no longer claims to support it. Ruby 3.3 is the new floor. The rails (>= 7.2, < 9) and activeadmin (>= 3.5, < 5) runtime constraints are deliberately untouched: dropping a Rails version from CI is not evidence the gem stopped working on it, and raising a runtime floor would be a breaking change for consumers. --- activeadmin-oidc.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activeadmin-oidc.gemspec b/activeadmin-oidc.gemspec index 80e9904..55cc693 100644 --- a/activeadmin-oidc.gemspec +++ b/activeadmin-oidc.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |spec| spec.license = "MIT" spec.homepage = "https://github.com/activeadmin-plugins/activeadmin-oidc" - spec.required_ruby_version = ">= 3.2.0" + spec.required_ruby_version = ">= 3.3.0" spec.files = Dir[ "lib/**/*",