From 368c869964f682654bd2cf18b248edf5de234513 Mon Sep 17 00:00:00 2001 From: Dennis Schreiner Date: Fri, 20 Feb 2026 09:21:10 +0100 Subject: [PATCH] Add support for Ruby 4.0 and Rails 8.1 --- .github/workflows/test.yml | 21 ++++++-- CHANGELOG.md | 3 ++ Gemfile.7.2.pg | 2 +- Gemfile.7.2.pg.lock | 21 +++++--- Gemfile.8.0.pg | 2 +- Gemfile.8.0.pg.lock | 23 +++++---- Gemfile.8.1.pg | 15 ++++++ Gemfile.8.1.pg.lock | 98 ++++++++++++++++++++++++++++++++++++++ has_defaults.gemspec | 2 +- 9 files changed, 165 insertions(+), 22 deletions(-) create mode 100644 Gemfile.8.1.pg create mode 100644 Gemfile.8.1.pg.lock diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ec88320..35d4a53 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,7 @@ jobs: fail-fast: false matrix: include: + # legacy - If a version breaks, just drop it, don't fix it. - ruby: 2.7.4 gemfile: Gemfile.6.1.pg - ruby: 2.7.4 @@ -33,22 +34,34 @@ jobs: gemfile: Gemfile.6.1.pg - ruby: 3.2.1 gemfile: Gemfile.7.0.pg - - ruby: 3.2.1 - gemfile: Gemfile.8.0.pg - ruby: 3.3.6 gemfile: Gemfile.7.0.pg - ruby: 3.3.6 gemfile: Gemfile.7.1.pg + - ruby: 3.4.1 + gemfile: Gemfile.7.1.pg + + # Officially supported + - ruby: 3.2.1 + gemfile: Gemfile.8.0.pg + - ruby: 3.2.1 + gemfile: Gemfile.8.1.pg - ruby: 3.3.6 gemfile: Gemfile.7.2.pg - ruby: 3.3.6 gemfile: Gemfile.8.0.pg - - ruby: 3.4.1 - gemfile: Gemfile.7.1.pg - ruby: 3.4.1 gemfile: Gemfile.7.2.pg - ruby: 3.4.1 gemfile: Gemfile.8.0.pg + - ruby: 3.4.1 + gemfile: Gemfile.8.1.pg + - ruby: 4.0.0 + gemfile: Gemfile.7.2.pg + - ruby: 4.0.0 + gemfile: Gemfile.8.0.pg + - ruby: 4.0.0 + gemfile: Gemfile.8.1.pg env: BUNDLE_GEMFILE: "${{ matrix.gemfile }}" steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 25f258d..be93066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,11 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html ## Unreleased ### Breaking changes +- Drop support for Ruby < 2.7 ### Compatible changes +- Add support for Ruby 4.0 +- Add support for Rails 8.1 ## 1.3.0 - 2025-01-29 diff --git a/Gemfile.7.2.pg b/Gemfile.7.2.pg index 17f65c1..19d8c02 100644 --- a/Gemfile.7.2.pg +++ b/Gemfile.7.2.pg @@ -9,7 +9,7 @@ gem 'rake' gem 'database_cleaner' gem 'rspec', '~>3.5' gem 'gemika', '>=0.8.1' -gem 'pry-byebug', '>=3.10.1' +gem 'pry-byebug', '>=3.11.0' # Gem under test gem 'has_defaults', path: '.' diff --git a/Gemfile.7.2.pg.lock b/Gemfile.7.2.pg.lock index 1dfe320..c650dd4 100644 --- a/Gemfile.7.2.pg.lock +++ b/Gemfile.7.2.pg.lock @@ -28,7 +28,8 @@ GEM base64 (0.2.0) benchmark (0.4.0) bigdecimal (3.1.8) - byebug (11.1.3) + byebug (13.0.0) + reline (>= 0.6.0) coderay (1.1.3) concurrent-ruby (1.3.4) connection_pool (2.4.1) @@ -43,17 +44,23 @@ GEM gemika (0.8.3) i18n (1.14.6) concurrent-ruby (~> 1.0) + io-console (0.8.2) logger (1.6.1) method_source (1.1.0) - minitest (5.25.2) + minitest (6.0.1) + prism (~> 1.5) pg (1.5.9) - pry (0.14.2) + prism (1.9.0) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) + reline (>= 0.6.0) + pry-byebug (3.12.0) + byebug (~> 13.0) + pry (>= 0.13, < 0.17) rake (13.2.1) + reline (0.6.3) + io-console (~> 0.5) rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -81,7 +88,7 @@ DEPENDENCIES gemika (>= 0.8.1) has_defaults! pg (>= 1.3) - pry-byebug (>= 3.10.1) + pry-byebug (>= 3.11.0) rake rspec (~> 3.5) diff --git a/Gemfile.8.0.pg b/Gemfile.8.0.pg index b8fd248..6dace46 100644 --- a/Gemfile.8.0.pg +++ b/Gemfile.8.0.pg @@ -9,7 +9,7 @@ gem 'rake' gem 'database_cleaner' gem 'rspec', '~>3.5' gem 'gemika', '>=0.8.1' -gem 'pry-byebug', '>=3.10.1' +gem 'pry-byebug', '>=3.11.0' # Gem under test gem 'has_defaults', path: '.' diff --git a/Gemfile.8.0.pg.lock b/Gemfile.8.0.pg.lock index 1a808f3..dde2ce5 100644 --- a/Gemfile.8.0.pg.lock +++ b/Gemfile.8.0.pg.lock @@ -29,7 +29,8 @@ GEM base64 (0.2.0) benchmark (0.4.0) bigdecimal (3.1.9) - byebug (11.1.3) + byebug (13.0.0) + reline (>= 0.6.0) coderay (1.1.3) concurrent-ruby (1.3.5) connection_pool (2.5.0) @@ -44,17 +45,23 @@ GEM gemika (0.8.4) i18n (1.14.6) concurrent-ruby (~> 1.0) + io-console (0.8.2) logger (1.6.5) method_source (1.1.0) - minitest (5.25.4) + minitest (6.0.1) + prism (~> 1.5) pg (1.5.9) - pry (0.14.2) + prism (1.9.0) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) + reline (>= 0.6.0) + pry-byebug (3.12.0) + byebug (~> 13.0) + pry (>= 0.13, < 0.17) rake (13.2.1) + reline (0.6.3) + io-console (~> 0.5) rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -75,7 +82,7 @@ GEM uri (1.0.2) PLATFORMS - x86_64-linux + ruby DEPENDENCIES activerecord (~> 8.0.0) @@ -83,7 +90,7 @@ DEPENDENCIES gemika (>= 0.8.1) has_defaults! pg (>= 1.3) - pry-byebug (>= 3.10.1) + pry-byebug (>= 3.11.0) rake rspec (~> 3.5) diff --git a/Gemfile.8.1.pg b/Gemfile.8.1.pg new file mode 100644 index 0000000..4b5f255 --- /dev/null +++ b/Gemfile.8.1.pg @@ -0,0 +1,15 @@ +source 'https://rubygems.org' + +# Runtime dependencies +gem 'activerecord', '~>8.1.0' +gem 'pg', '>=1.3' + +# Development dependencies +gem 'rake' +gem 'database_cleaner' +gem 'rspec', '~>3.5' +gem 'gemika', '>=0.8.1' +gem 'pry-byebug', '>=3.11.0' + +# Gem under test +gem 'has_defaults', path: '.' diff --git a/Gemfile.8.1.pg.lock b/Gemfile.8.1.pg.lock new file mode 100644 index 0000000..2a5bc63 --- /dev/null +++ b/Gemfile.8.1.pg.lock @@ -0,0 +1,98 @@ +PATH + remote: . + specs: + has_defaults (1.3.0) + activerecord + +GEM + remote: https://rubygems.org/ + specs: + activemodel (8.1.2) + activesupport (= 8.1.2) + activerecord (8.1.2) + activemodel (= 8.1.2) + activesupport (= 8.1.2) + timeout (>= 0.4.0) + activesupport (8.1.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + base64 (0.3.0) + bigdecimal (4.0.1) + byebug (13.0.0) + reline (>= 0.6.0) + coderay (1.1.3) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) + database_cleaner (2.1.0) + database_cleaner-active_record (>= 2, < 3) + database_cleaner-active_record (2.2.2) + activerecord (>= 5.a) + database_cleaner-core (~> 2.0) + database_cleaner-core (2.0.1) + diff-lcs (1.6.2) + drb (2.2.3) + gemika (2.0.0) + i18n (1.14.8) + concurrent-ruby (~> 1.0) + io-console (0.8.2) + json (2.18.1) + logger (1.7.0) + method_source (1.1.0) + minitest (6.0.1) + prism (~> 1.5) + pg (1.6.3-x86_64-linux) + prism (1.9.0) + pry (0.16.0) + coderay (~> 1.1) + method_source (~> 1.0) + reline (>= 0.6.0) + pry-byebug (3.12.0) + byebug (~> 13.0) + pry (>= 0.13, < 0.17) + rake (13.3.1) + reline (0.6.3) + io-console (~> 0.5) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.7) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) + securerandom (0.4.1) + timeout (0.6.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uri (1.0.2) + +PLATFORMS + ruby + +DEPENDENCIES + activerecord (~> 8.1.0) + database_cleaner + gemika (>= 0.8.1) + has_defaults! + pg (>= 1.3) + pry-byebug (>= 3.11.0) + rake + rspec (~> 3.5) + +BUNDLED WITH + 2.4.7 diff --git a/has_defaults.gemspec b/has_defaults.gemspec index 38c8b00..67a9c17 100644 --- a/has_defaults.gemspec +++ b/has_defaults.gemspec @@ -5,7 +5,7 @@ require "has_defaults/version" Gem::Specification.new do |spec| spec.name = 'has_defaults' spec.version = HasDefaults::VERSION - spec.required_ruby_version = '>= 2.3.0' + spec.required_ruby_version = '>= 2.7.4' spec.authors = ['Henning Koch'] spec.email = ['henning.koch@makandra.de']