From 0e5bb6a2cbe7327b99666b5ea60734bd040a8962 Mon Sep 17 00:00:00 2001 From: "Eddie Li (ADZ)" Date: Thu, 24 Sep 2026 12:45:40 +0800 Subject: [PATCH] Support Rails 8.0/8.1 and Ruby 3.3/3.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Widen rails dependency to >= 6.1, < 8.2 - Add Appraisal + gemfiles for Rails 8.0.5.1 and 8.1.3.1 × Ruby 3.3/3.4 - Extend GitHub Actions matrix with Ruby 3.3.12 and 3.4.11 cells - Add csv runtime dependency (Ruby 3.4 stdlib extraction) - Loosen sqlite3 dev dependency to >= 1.4, < 2 (1.4.4 fails to build on newer Rubies) - Bump version to 4.0.2 --- .github/workflows/test.yml | 10 ++++++++++ Appraisals | 24 ++++++++++++++++++++++++ Gemfile.lock | 17 ++++++++++++----- gemfiles/ruby_3.3_rails_8.0.gemfile | 9 +++++++++ gemfiles/ruby_3.3_rails_8.1.gemfile | 9 +++++++++ gemfiles/ruby_3.4_rails_8.0.gemfile | 9 +++++++++ gemfiles/ruby_3.4_rails_8.1.gemfile | 9 +++++++++ lib/super_tools/version.rb | 2 +- super_tools.gemspec | 5 +++-- 9 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 gemfiles/ruby_3.3_rails_8.0.gemfile create mode 100644 gemfiles/ruby_3.3_rails_8.1.gemfile create mode 100644 gemfiles/ruby_3.4_rails_8.0.gemfile create mode 100644 gemfiles/ruby_3.4_rails_8.1.gemfile diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eedfe56a..84eb6c92 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,6 +30,16 @@ jobs: gemfile: gemfiles/ruby_3.1_rails_6.gemfile - ruby: '3.1.7' gemfile: gemfiles/ruby_3.1_rails_7.gemfile + # Ruby 3.3.12 + Rails 8 + - ruby: '3.3.12' + gemfile: gemfiles/ruby_3.3_rails_8.0.gemfile + - ruby: '3.3.12' + gemfile: gemfiles/ruby_3.3_rails_8.1.gemfile + # Ruby 3.4.11 + Rails 8 + - ruby: '3.4.11' + gemfile: gemfiles/ruby_3.4_rails_8.0.gemfile + - ruby: '3.4.11' + gemfile: gemfiles/ruby_3.4_rails_8.1.gemfile env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} steps: diff --git a/Appraisals b/Appraisals index e826cd0c..2bd706a6 100644 --- a/Appraisals +++ b/Appraisals @@ -27,3 +27,27 @@ end appraise "ruby-3.1-rails-7" do gem "rails", "~> 7.0.0" end + +# Ruby 3.3 with Rails 8.0.5.1 +appraise "ruby-3.3-rails-8.0" do + gem "rails", "8.0.5.1" + gem "sqlite3", ">= 1.7", "< 3" +end + +# Ruby 3.3 with Rails 8.1.3.1 +appraise "ruby-3.3-rails-8.1" do + gem "rails", "8.1.3.1" + gem "sqlite3", ">= 1.7", "< 3" +end + +# Ruby 3.4 with Rails 8.0.5.1 +appraise "ruby-3.4-rails-8.0" do + gem "rails", "8.0.5.1" + gem "sqlite3", ">= 1.7", "< 3" +end + +# Ruby 3.4 with Rails 8.1.3.1 +appraise "ruby-3.4-rails-8.1" do + gem "rails", "8.1.3.1" + gem "sqlite3", ">= 1.7", "< 3" +end diff --git a/Gemfile.lock b/Gemfile.lock index d90e684c..bd4b373b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,13 +10,14 @@ GIT PATH remote: . specs: - super_tools (4.0.0) + super_tools (4.0.2) + csv dry-logic (= 1.2.0) dry-types (= 1.5.1) fast_excel forwardable nokogiri (>= 1.6) - rails (>= 6.1, < 8) + rails (>= 6.1, < 8.2) reform (= 2.6.2) reform-rails roo @@ -103,6 +104,7 @@ GEM descendants_tracker (~> 0.0.1) concurrent-ruby (1.3.6) crass (1.0.6) + csv (3.3.6) date (3.5.1) declarative (0.0.20) descendants_tracker (0.0.4) @@ -151,6 +153,7 @@ GEM marcel (1.1.0) method_source (1.1.0) mini_mime (1.1.5) + mini_portile2 (2.8.9) minitest (5.26.1) net-imap (0.4.23) date @@ -162,6 +165,9 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) + nokogiri (1.15.7) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) nokogiri (1.15.7-arm64-darwin) racc (~> 1.4) nokogiri (1.15.7-x86_64-linux) @@ -232,7 +238,8 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (1.4.4) + sqlite3 (1.7.3-arm64-darwin) + sqlite3 (1.7.3-x86_64-linux) thor (1.2.1) thread_safe (0.3.6) timeout (0.6.0) @@ -265,9 +272,9 @@ DEPENDENCIES rake (>= 12.2) reform-rails! shoulda-context - sqlite3 (= 1.4.4) + sqlite3 (>= 1.4, < 2) super_tools! warning BUNDLED WITH - 2.3.14 + 2.7.2 diff --git a/gemfiles/ruby_3.3_rails_8.0.gemfile b/gemfiles/ruby_3.3_rails_8.0.gemfile new file mode 100644 index 00000000..a81990cd --- /dev/null +++ b/gemfiles/ruby_3.3_rails_8.0.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails" +gem "rails", "8.0.5.1" +gem "sqlite3", ">= 1.7", "< 3" + +gemspec path: "../" diff --git a/gemfiles/ruby_3.3_rails_8.1.gemfile b/gemfiles/ruby_3.3_rails_8.1.gemfile new file mode 100644 index 00000000..c51f27cd --- /dev/null +++ b/gemfiles/ruby_3.3_rails_8.1.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails" +gem "rails", "8.1.3.1" +gem "sqlite3", ">= 1.7", "< 3" + +gemspec path: "../" diff --git a/gemfiles/ruby_3.4_rails_8.0.gemfile b/gemfiles/ruby_3.4_rails_8.0.gemfile new file mode 100644 index 00000000..a81990cd --- /dev/null +++ b/gemfiles/ruby_3.4_rails_8.0.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails" +gem "rails", "8.0.5.1" +gem "sqlite3", ">= 1.7", "< 3" + +gemspec path: "../" diff --git a/gemfiles/ruby_3.4_rails_8.1.gemfile b/gemfiles/ruby_3.4_rails_8.1.gemfile new file mode 100644 index 00000000..c51f27cd --- /dev/null +++ b/gemfiles/ruby_3.4_rails_8.1.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails" +gem "rails", "8.1.3.1" +gem "sqlite3", ">= 1.7", "< 3" + +gemspec path: "../" diff --git a/lib/super_tools/version.rb b/lib/super_tools/version.rb index 2896e1dd..86a9cee0 100644 --- a/lib/super_tools/version.rb +++ b/lib/super_tools/version.rb @@ -1,3 +1,3 @@ module SuperTools - VERSION = "4.0.1" + VERSION = "4.0.2" end diff --git a/super_tools.gemspec b/super_tools.gemspec index 07b622b5..aa966cf2 100644 --- a/super_tools.gemspec +++ b/super_tools.gemspec @@ -28,11 +28,12 @@ Gem::Specification.new do |spec| spec.add_development_dependency "minitest", "~> 5.0" spec.add_development_dependency "shoulda-context" spec.add_development_dependency "warning" - spec.add_development_dependency "sqlite3", "1.4.4" + spec.add_development_dependency "sqlite3", ">= 1.4", "< 2" spec.add_development_dependency "appraisal" - spec.add_dependency "rails", ">= 6.1", "< 8" + spec.add_dependency "rails", ">= 6.1", "< 8.2" spec.add_dependency "nokogiri", ">= 1.6" + spec.add_dependency "csv" spec.add_dependency "fast_excel" spec.add_dependency "roo" spec.add_dependency "roo-xls", "1.2.0"