From 055f0c493a41d0efe9b796744ad9f4ef33a768a5 Mon Sep 17 00:00:00 2001 From: Tristan Starck Date: Tue, 28 Jan 2025 15:03:24 -0800 Subject: [PATCH 1/6] Add base64, bigdecimal, and mutex_m to gemfiles to support Ruby 3.4 --- Gemfile | 4 ++++ Gemfile.lock | 5 ++++- gemfiles/activerecord_6_0.gemfile | 3 +++ gemfiles/activerecord_6_1.gemfile | 3 +++ gemfiles/activerecord_7_0.gemfile | 3 +++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 58af925..81ad8bb 100644 --- a/Gemfile +++ b/Gemfile @@ -16,3 +16,7 @@ gem 'ruby-prof' gem 'ruby-prof-flamegraph' gem 'simplecov' gem 'simplecov-lcov' + +gem "base64", "~> 0.1.1" +gem "bigdecimal", "~> 3.1" +gem "mutex_m", "~> 0.1.2" diff --git a/Gemfile.lock b/Gemfile.lock index da74bff..b7b84aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,6 +109,9 @@ PLATFORMS DEPENDENCIES activerecord-data_classification! appraisal + base64 (~> 0.1.1) + bigdecimal (~> 3.1) + mutex_m (~> 0.1.2) rake rspec rspec-mocks @@ -121,4 +124,4 @@ DEPENDENCIES simplecov-lcov BUNDLED WITH - 2.4.17 + 2.6.2 diff --git a/gemfiles/activerecord_6_0.gemfile b/gemfiles/activerecord_6_0.gemfile index de453cb..92edf26 100644 --- a/gemfiles/activerecord_6_0.gemfile +++ b/gemfiles/activerecord_6_0.gemfile @@ -13,6 +13,9 @@ gem "ruby-prof" gem "ruby-prof-flamegraph" gem "simplecov" gem "simplecov-lcov" +gem "base64", "~> 0.1.1" +gem "bigdecimal", "~> 3.1" +gem "mutex_m", "~> 0.1.2" gem "activerecord", "~> 6.0.0" gemspec path: "../" diff --git a/gemfiles/activerecord_6_1.gemfile b/gemfiles/activerecord_6_1.gemfile index 584d25d..7945a6b 100644 --- a/gemfiles/activerecord_6_1.gemfile +++ b/gemfiles/activerecord_6_1.gemfile @@ -13,6 +13,9 @@ gem "ruby-prof" gem "ruby-prof-flamegraph" gem "simplecov" gem "simplecov-lcov" +gem "base64", "~> 0.1.1" +gem "bigdecimal", "~> 3.1" +gem "mutex_m", "~> 0.1.2" gem "activesupport", "~> 6.1.0" gemspec path: "../" diff --git a/gemfiles/activerecord_7_0.gemfile b/gemfiles/activerecord_7_0.gemfile index a3f987e..29b995e 100644 --- a/gemfiles/activerecord_7_0.gemfile +++ b/gemfiles/activerecord_7_0.gemfile @@ -13,6 +13,9 @@ gem "ruby-prof" gem "ruby-prof-flamegraph" gem "simplecov" gem "simplecov-lcov" +gem "base64", "~> 0.1.1" +gem "bigdecimal", "~> 3.1" +gem "mutex_m", "~> 0.1.2" gem "activerecord", "~> 7.0.0" gemspec path: "../" From 7c995e13f5026e41068507500a3694878138f69b Mon Sep 17 00:00:00 2001 From: Tristan Starck Date: Tue, 28 Jan 2025 15:10:24 -0800 Subject: [PATCH 2/6] Add concurrent-ruby to gemfiles to fix tests in Rails < 7.1 --- Gemfile | 2 ++ Gemfile.lock | 3 ++- gemfiles/activerecord_6_0.gemfile | 1 + gemfiles/activerecord_6_1.gemfile | 1 + gemfiles/activerecord_7_0.gemfile | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 81ad8bb..6cc5dcb 100644 --- a/Gemfile +++ b/Gemfile @@ -20,3 +20,5 @@ gem 'simplecov-lcov' gem "base64", "~> 0.1.1" gem "bigdecimal", "~> 3.1" gem "mutex_m", "~> 0.1.2" + +gem "concurrent-ruby", "~> 1.3", "< 1.3.5" diff --git a/Gemfile.lock b/Gemfile.lock index b7b84aa..1e7fa33 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -32,7 +32,7 @@ GEM ast (2.4.2) base64 (0.1.1) bigdecimal (3.1.4) - concurrent-ruby (1.2.2) + concurrent-ruby (1.3.4) connection_pool (2.4.1) diff-lcs (1.5.0) docile (1.4.0) @@ -111,6 +111,7 @@ DEPENDENCIES appraisal base64 (~> 0.1.1) bigdecimal (~> 3.1) + concurrent-ruby (~> 1.3, < 1.3.5) mutex_m (~> 0.1.2) rake rspec diff --git a/gemfiles/activerecord_6_0.gemfile b/gemfiles/activerecord_6_0.gemfile index 92edf26..8c07750 100644 --- a/gemfiles/activerecord_6_0.gemfile +++ b/gemfiles/activerecord_6_0.gemfile @@ -16,6 +16,7 @@ gem "simplecov-lcov" gem "base64", "~> 0.1.1" gem "bigdecimal", "~> 3.1" gem "mutex_m", "~> 0.1.2" +gem "concurrent-ruby", "~> 1.3", "< 1.3.5" gem "activerecord", "~> 6.0.0" gemspec path: "../" diff --git a/gemfiles/activerecord_6_1.gemfile b/gemfiles/activerecord_6_1.gemfile index 7945a6b..187d08f 100644 --- a/gemfiles/activerecord_6_1.gemfile +++ b/gemfiles/activerecord_6_1.gemfile @@ -16,6 +16,7 @@ gem "simplecov-lcov" gem "base64", "~> 0.1.1" gem "bigdecimal", "~> 3.1" gem "mutex_m", "~> 0.1.2" +gem "concurrent-ruby", "~> 1.3", "< 1.3.5" gem "activesupport", "~> 6.1.0" gemspec path: "../" diff --git a/gemfiles/activerecord_7_0.gemfile b/gemfiles/activerecord_7_0.gemfile index 29b995e..2264abf 100644 --- a/gemfiles/activerecord_7_0.gemfile +++ b/gemfiles/activerecord_7_0.gemfile @@ -16,6 +16,7 @@ gem "simplecov-lcov" gem "base64", "~> 0.1.1" gem "bigdecimal", "~> 3.1" gem "mutex_m", "~> 0.1.2" +gem "concurrent-ruby", "~> 1.3", "< 1.3.5" gem "activerecord", "~> 7.0.0" gemspec path: "../" From d6a558aaf4913807ded0a0118738eabf27f16cb8 Mon Sep 17 00:00:00 2001 From: Tristan Starck Date: Tue, 28 Jan 2025 15:28:22 -0800 Subject: [PATCH 3/6] use optimistic flag for bundle add --- Gemfile | 7 ++++--- Gemfile.lock | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 6cc5dcb..d25ffb9 100644 --- a/Gemfile +++ b/Gemfile @@ -17,8 +17,9 @@ gem 'ruby-prof-flamegraph' gem 'simplecov' gem 'simplecov-lcov' -gem "base64", "~> 0.1.1" -gem "bigdecimal", "~> 3.1" -gem "mutex_m", "~> 0.1.2" gem "concurrent-ruby", "~> 1.3", "< 1.3.5" + +gem "base64", ">= 0.1.1" +gem "bigdecimal", ">= 3.1" +gem "mutex_m", ">= 0.1.2" diff --git a/Gemfile.lock b/Gemfile.lock index 1e7fa33..af0b765 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,10 +109,10 @@ PLATFORMS DEPENDENCIES activerecord-data_classification! appraisal - base64 (~> 0.1.1) - bigdecimal (~> 3.1) + base64 (>= 0.1.1) + bigdecimal (>= 3.1) concurrent-ruby (~> 1.3, < 1.3.5) - mutex_m (~> 0.1.2) + mutex_m (>= 0.1.2) rake rspec rspec-mocks From 46ea41d62e4495d1bbd7088f153dee4b2539e98b Mon Sep 17 00:00:00 2001 From: Tristan Starck Date: Tue, 28 Jan 2025 15:33:15 -0800 Subject: [PATCH 4/6] regenerate gemfiles --- gemfiles/activerecord_6_0.gemfile | 6 +++--- gemfiles/activerecord_6_1.gemfile | 6 +++--- gemfiles/activerecord_7_0.gemfile | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gemfiles/activerecord_6_0.gemfile b/gemfiles/activerecord_6_0.gemfile index 8c07750..d510646 100644 --- a/gemfiles/activerecord_6_0.gemfile +++ b/gemfiles/activerecord_6_0.gemfile @@ -13,10 +13,10 @@ gem "ruby-prof" gem "ruby-prof-flamegraph" gem "simplecov" gem "simplecov-lcov" -gem "base64", "~> 0.1.1" -gem "bigdecimal", "~> 3.1" -gem "mutex_m", "~> 0.1.2" gem "concurrent-ruby", "~> 1.3", "< 1.3.5" +gem "base64", ">= 0.1.1" +gem "bigdecimal", ">= 3.1" +gem "mutex_m", ">= 0.1.2" gem "activerecord", "~> 6.0.0" gemspec path: "../" diff --git a/gemfiles/activerecord_6_1.gemfile b/gemfiles/activerecord_6_1.gemfile index 187d08f..2673f0e 100644 --- a/gemfiles/activerecord_6_1.gemfile +++ b/gemfiles/activerecord_6_1.gemfile @@ -13,10 +13,10 @@ gem "ruby-prof" gem "ruby-prof-flamegraph" gem "simplecov" gem "simplecov-lcov" -gem "base64", "~> 0.1.1" -gem "bigdecimal", "~> 3.1" -gem "mutex_m", "~> 0.1.2" gem "concurrent-ruby", "~> 1.3", "< 1.3.5" +gem "base64", ">= 0.1.1" +gem "bigdecimal", ">= 3.1" +gem "mutex_m", ">= 0.1.2" gem "activesupport", "~> 6.1.0" gemspec path: "../" diff --git a/gemfiles/activerecord_7_0.gemfile b/gemfiles/activerecord_7_0.gemfile index 2264abf..be637eb 100644 --- a/gemfiles/activerecord_7_0.gemfile +++ b/gemfiles/activerecord_7_0.gemfile @@ -13,10 +13,10 @@ gem "ruby-prof" gem "ruby-prof-flamegraph" gem "simplecov" gem "simplecov-lcov" -gem "base64", "~> 0.1.1" -gem "bigdecimal", "~> 3.1" -gem "mutex_m", "~> 0.1.2" gem "concurrent-ruby", "~> 1.3", "< 1.3.5" +gem "base64", ">= 0.1.1" +gem "bigdecimal", ">= 3.1" +gem "mutex_m", ">= 0.1.2" gem "activerecord", "~> 7.0.0" gemspec path: "../" From 13643a92e069a9914874ddc469af0453dbf8b957 Mon Sep 17 00:00:00 2001 From: Tristan Starck Date: Thu, 30 Jan 2025 10:21:33 -0800 Subject: [PATCH 5/6] fix appraisals | add new gemfiles | test new ruby versions | remove old ruby and rails versions --- .github/workflows/build.yml | 7 +++--- Appraisals | 13 ++-------- Gemfile | 2 ++ Gemfile.lock | 7 ++++++ gemfiles/activerecord_7_0.gemfile | 2 ++ ...d_6_0.gemfile => activerecord_7_1.gemfile} | 4 +++- ...d_6_1.gemfile => activerecord_7_2.gemfile} | 4 +++- gemfiles/activerecord_8_0.gemfile | 24 +++++++++++++++++++ 8 files changed, 47 insertions(+), 16 deletions(-) rename gemfiles/{activerecord_6_0.gemfile => activerecord_7_1.gemfile} (86%) rename gemfiles/{activerecord_6_1.gemfile => activerecord_7_2.gemfile} (86%) create mode 100644 gemfiles/activerecord_8_0.gemfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 157ba34..81ee86e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,12 +7,13 @@ jobs: strategy: fail-fast: false matrix: - ruby: [2.7, '3.0', 3.1, 3.2] + ruby: [3.1, 3.2, 3.3, 3.4] gemfile: - Gemfile - - gemfiles/activerecord_6_0.gemfile - - gemfiles/activerecord_6_1.gemfile - gemfiles/activerecord_7_0.gemfile + - gemfiles/activerecord_7_1.gemfile + - gemfiles/activerecord_7_2.gemfile + - gemfiles/activerecord_8_0.gemfile env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} steps: diff --git a/Appraisals b/Appraisals index 48bd473..1a8a91e 100644 --- a/Appraisals +++ b/Appraisals @@ -1,13 +1,4 @@ # frozen_string_literal: true -appraise 'activerecord-6-0' do - gem 'activerecord', '~> 6.0.0' -end - -appraise 'activerecord-6-1' do - gem 'activesupport', '~> 6.1.0' -end - -appraise 'activerecord-7-0' do - gem 'activerecord', '~> 7.0.0' -end +require "appraisal/matrix" +appraisal_matrix(activerecord: "7.0") diff --git a/Gemfile b/Gemfile index d25ffb9..15ea99a 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,8 @@ source "https://rubygems.org" gemspec gem "appraisal" +gem "appraisal-matrix" +gem "csv" gem "rake" gem 'rspec' gem 'rspec_junit_formatter' diff --git a/Gemfile.lock b/Gemfile.lock index af0b765..e207120 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -29,11 +29,14 @@ GEM bundler rake thor (>= 0.14.0) + appraisal-matrix (0.3.0) + appraisal (~> 2.2) ast (2.4.2) base64 (0.1.1) bigdecimal (3.1.4) concurrent-ruby (1.3.4) connection_pool (2.4.1) + csv (3.3.2) diff-lcs (1.5.0) docile (1.4.0) drb (2.1.1) @@ -104,14 +107,18 @@ GEM PLATFORMS arm64-darwin-22 + arm64-darwin-23 + arm64-darwin-24 x86_64-linux DEPENDENCIES activerecord-data_classification! appraisal + appraisal-matrix base64 (>= 0.1.1) bigdecimal (>= 3.1) concurrent-ruby (~> 1.3, < 1.3.5) + csv mutex_m (>= 0.1.2) rake rspec diff --git a/gemfiles/activerecord_7_0.gemfile b/gemfiles/activerecord_7_0.gemfile index be637eb..59cd32a 100644 --- a/gemfiles/activerecord_7_0.gemfile +++ b/gemfiles/activerecord_7_0.gemfile @@ -3,6 +3,8 @@ source "https://rubygems.org" gem "appraisal" +gem "appraisal-matrix" +gem "csv" gem "rake" gem "rspec" gem "rspec_junit_formatter" diff --git a/gemfiles/activerecord_6_0.gemfile b/gemfiles/activerecord_7_1.gemfile similarity index 86% rename from gemfiles/activerecord_6_0.gemfile rename to gemfiles/activerecord_7_1.gemfile index d510646..76a5cc8 100644 --- a/gemfiles/activerecord_6_0.gemfile +++ b/gemfiles/activerecord_7_1.gemfile @@ -3,6 +3,8 @@ source "https://rubygems.org" gem "appraisal" +gem "appraisal-matrix" +gem "csv" gem "rake" gem "rspec" gem "rspec_junit_formatter" @@ -17,6 +19,6 @@ gem "concurrent-ruby", "~> 1.3", "< 1.3.5" gem "base64", ">= 0.1.1" gem "bigdecimal", ">= 3.1" gem "mutex_m", ">= 0.1.2" -gem "activerecord", "~> 6.0.0" +gem "activerecord", "~> 7.1.0" gemspec path: "../" diff --git a/gemfiles/activerecord_6_1.gemfile b/gemfiles/activerecord_7_2.gemfile similarity index 86% rename from gemfiles/activerecord_6_1.gemfile rename to gemfiles/activerecord_7_2.gemfile index 2673f0e..9451b69 100644 --- a/gemfiles/activerecord_6_1.gemfile +++ b/gemfiles/activerecord_7_2.gemfile @@ -3,6 +3,8 @@ source "https://rubygems.org" gem "appraisal" +gem "appraisal-matrix" +gem "csv" gem "rake" gem "rspec" gem "rspec_junit_formatter" @@ -17,6 +19,6 @@ gem "concurrent-ruby", "~> 1.3", "< 1.3.5" gem "base64", ">= 0.1.1" gem "bigdecimal", ">= 3.1" gem "mutex_m", ">= 0.1.2" -gem "activesupport", "~> 6.1.0" +gem "activerecord", "~> 7.2.0" gemspec path: "../" diff --git a/gemfiles/activerecord_8_0.gemfile b/gemfiles/activerecord_8_0.gemfile new file mode 100644 index 0000000..9beb042 --- /dev/null +++ b/gemfiles/activerecord_8_0.gemfile @@ -0,0 +1,24 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal" +gem "appraisal-matrix" +gem "csv" +gem "rake" +gem "rspec" +gem "rspec_junit_formatter" +gem "rspec-mocks" +gem "rubocop" +gem "rubocop-git" +gem "ruby-prof" +gem "ruby-prof-flamegraph" +gem "simplecov" +gem "simplecov-lcov" +gem "concurrent-ruby", "~> 1.3", "< 1.3.5" +gem "base64", ">= 0.1.1" +gem "bigdecimal", ">= 3.1" +gem "mutex_m", ">= 0.1.2" +gem "activerecord", "~> 8.0.0" + +gemspec path: "../" From a10a79b0199e22ab18a33a62f3b7f1395f5af13b Mon Sep 17 00:00:00 2001 From: Tristan Starck Date: Thu, 30 Jan 2025 10:23:02 -0800 Subject: [PATCH 6/6] exclude ruby 3.1 and rails 8 --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81ee86e..2cae817 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,6 +14,9 @@ jobs: - gemfiles/activerecord_7_1.gemfile - gemfiles/activerecord_7_2.gemfile - gemfiles/activerecord_8_0.gemfile + exclude: + - ruby: 3.1 + gemfile: gemfiles/activerecord_8_0.gemfile env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} steps: