From 73e68ab9249de48d26b6a84144f35d920818c801 Mon Sep 17 00:00:00 2001 From: Edward Rudd Date: Thu, 12 May 2022 10:21:11 -0400 Subject: [PATCH] add in AR 6.1 and 7.0 support, also Ruby 3.1 --- .github/workflows/prs.yml | 135 +++++++++++++++++++ README.md | 8 ++ gemfiles/activerecord-6.1/Gemfile.base | 4 + gemfiles/activerecord-6.1/Gemfile.postgresql | 10 ++ gemfiles/activerecord-7.0/Gemfile.base | 4 + gemfiles/activerecord-7.0/Gemfile.postgresql | 10 ++ schema_dev.yml | 3 + schema_plus_enums.gemspec | 6 +- spec/enum_spec.rb | 4 +- spec/spec_helper.rb | 9 +- 10 files changed, 180 insertions(+), 13 deletions(-) create mode 100644 gemfiles/activerecord-6.1/Gemfile.base create mode 100644 gemfiles/activerecord-6.1/Gemfile.postgresql create mode 100644 gemfiles/activerecord-7.0/Gemfile.base create mode 100644 gemfiles/activerecord-7.0/Gemfile.postgresql diff --git a/.github/workflows/prs.yml b/.github/workflows/prs.yml index 323a95a..5fa25f9 100644 --- a/.github/workflows/prs.yml +++ b/.github/workflows/prs.yml @@ -22,9 +22,12 @@ jobs: - '2.5' - '2.7' - '3.0' + - '3.1' activerecord: - '5.2' - '6.0' + - '6.1' + - '7.0' db: - skip dbversion: @@ -32,6 +35,10 @@ jobs: exclude: - ruby: '3.0' activerecord: '5.2' + - ruby: '3.1' + activerecord: '5.2' + - ruby: '2.5' + activerecord: '7.0' - db: skip dbversion: skip include: @@ -67,6 +74,22 @@ jobs: activerecord: '6.0' db: postgresql dbversion: '12' + - ruby: '2.5' + activerecord: '6.1' + db: postgresql + dbversion: '9.6' + - ruby: '2.5' + activerecord: '6.1' + db: postgresql + dbversion: '10' + - ruby: '2.5' + activerecord: '6.1' + db: postgresql + dbversion: '11' + - ruby: '2.5' + activerecord: '6.1' + db: postgresql + dbversion: '12' - ruby: '2.7' activerecord: '5.2' db: postgresql @@ -99,6 +122,38 @@ jobs: activerecord: '6.0' db: postgresql dbversion: '12' + - ruby: '2.7' + activerecord: '6.1' + db: postgresql + dbversion: '9.6' + - ruby: '2.7' + activerecord: '6.1' + db: postgresql + dbversion: '10' + - ruby: '2.7' + activerecord: '6.1' + db: postgresql + dbversion: '11' + - ruby: '2.7' + activerecord: '6.1' + db: postgresql + dbversion: '12' + - ruby: '2.7' + activerecord: '7.0' + db: postgresql + dbversion: '9.6' + - ruby: '2.7' + activerecord: '7.0' + db: postgresql + dbversion: '10' + - ruby: '2.7' + activerecord: '7.0' + db: postgresql + dbversion: '11' + - ruby: '2.7' + activerecord: '7.0' + db: postgresql + dbversion: '12' - ruby: '3.0' activerecord: '6.0' db: postgresql @@ -115,6 +170,86 @@ jobs: activerecord: '6.0' db: postgresql dbversion: '12' + - ruby: '3.0' + activerecord: '6.1' + db: postgresql + dbversion: '9.6' + - ruby: '3.0' + activerecord: '6.1' + db: postgresql + dbversion: '10' + - ruby: '3.0' + activerecord: '6.1' + db: postgresql + dbversion: '11' + - ruby: '3.0' + activerecord: '6.1' + db: postgresql + dbversion: '12' + - ruby: '3.0' + activerecord: '7.0' + db: postgresql + dbversion: '9.6' + - ruby: '3.0' + activerecord: '7.0' + db: postgresql + dbversion: '10' + - ruby: '3.0' + activerecord: '7.0' + db: postgresql + dbversion: '11' + - ruby: '3.0' + activerecord: '7.0' + db: postgresql + dbversion: '12' + - ruby: '3.1' + activerecord: '6.0' + db: postgresql + dbversion: '9.6' + - ruby: '3.1' + activerecord: '6.0' + db: postgresql + dbversion: '10' + - ruby: '3.1' + activerecord: '6.0' + db: postgresql + dbversion: '11' + - ruby: '3.1' + activerecord: '6.0' + db: postgresql + dbversion: '12' + - ruby: '3.1' + activerecord: '6.1' + db: postgresql + dbversion: '9.6' + - ruby: '3.1' + activerecord: '6.1' + db: postgresql + dbversion: '10' + - ruby: '3.1' + activerecord: '6.1' + db: postgresql + dbversion: '11' + - ruby: '3.1' + activerecord: '6.1' + db: postgresql + dbversion: '12' + - ruby: '3.1' + activerecord: '7.0' + db: postgresql + dbversion: '9.6' + - ruby: '3.1' + activerecord: '7.0' + db: postgresql + dbversion: '10' + - ruby: '3.1' + activerecord: '7.0' + db: postgresql + dbversion: '11' + - ruby: '3.1' + activerecord: '7.0' + db: postgresql + dbversion: '12' env: BUNDLE_GEMFILE: "${{ github.workspace }}/gemfiles/activerecord-${{ matrix.activerecord }}/Gemfile.${{ matrix.db }}" POSTGRESQL_DB_HOST: 127.0.0.1 diff --git a/README.md b/README.md index ed07207..c723837 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,17 @@ SchemaPlus::Enums is tested on: * ruby **2.5** with activerecord **5.2**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** * ruby **2.5** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **2.5** with activerecord **6.1**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** * ruby **2.7** with activerecord **5.2**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** * ruby **2.7** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **2.7** with activerecord **6.1**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **2.7** with activerecord **7.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** * ruby **3.0** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **3.0** with activerecord **6.1**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **3.0** with activerecord **7.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **3.1** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **3.1** with activerecord **6.1**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** +* ruby **3.1** with activerecord **7.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12** diff --git a/gemfiles/activerecord-6.1/Gemfile.base b/gemfiles/activerecord-6.1/Gemfile.base new file mode 100644 index 0000000..a66a91f --- /dev/null +++ b/gemfiles/activerecord-6.1/Gemfile.base @@ -0,0 +1,4 @@ +base_gemfile = File.expand_path('../../Gemfile.base', __FILE__) +eval File.read(base_gemfile) + +gem "activerecord", ">= 6.1", "< 6.2" diff --git a/gemfiles/activerecord-6.1/Gemfile.postgresql b/gemfiles/activerecord-6.1/Gemfile.postgresql new file mode 100644 index 0000000..1716cd8 --- /dev/null +++ b/gemfiles/activerecord-6.1/Gemfile.postgresql @@ -0,0 +1,10 @@ +base_gemfile = File.expand_path('../Gemfile.base', __FILE__) +eval File.read(base_gemfile), binding, base_gemfile + +platform :ruby do + gem "pg" +end + +platform :jruby do + gem 'activerecord-jdbcpostgresql-adapter' +end diff --git a/gemfiles/activerecord-7.0/Gemfile.base b/gemfiles/activerecord-7.0/Gemfile.base new file mode 100644 index 0000000..b7f5994 --- /dev/null +++ b/gemfiles/activerecord-7.0/Gemfile.base @@ -0,0 +1,4 @@ +base_gemfile = File.expand_path('../../Gemfile.base', __FILE__) +eval File.read(base_gemfile) + +gem "activerecord", ">= 7.0", "< 7.1" diff --git a/gemfiles/activerecord-7.0/Gemfile.postgresql b/gemfiles/activerecord-7.0/Gemfile.postgresql new file mode 100644 index 0000000..1716cd8 --- /dev/null +++ b/gemfiles/activerecord-7.0/Gemfile.postgresql @@ -0,0 +1,10 @@ +base_gemfile = File.expand_path('../Gemfile.base', __FILE__) +eval File.read(base_gemfile), binding, base_gemfile + +platform :ruby do + gem "pg" +end + +platform :jruby do + gem 'activerecord-jdbcpostgresql-adapter' +end diff --git a/schema_dev.yml b/schema_dev.yml index 6c44c86..ead2f01 100644 --- a/schema_dev.yml +++ b/schema_dev.yml @@ -2,9 +2,12 @@ ruby: - 2.5 - 2.7 - 3.0 + - 3.1 activerecord: - 5.2 - 6.0 + - 6.1 + - 7.0 db: - postgresql dbversions: diff --git a/schema_plus_enums.gemspec b/schema_plus_enums.gemspec index 2af0545..6aac90e 100644 --- a/schema_plus_enums.gemspec +++ b/schema_plus_enums.gemspec @@ -21,11 +21,11 @@ Gem::Specification.new do |gem| gem.required_ruby_version = '>= 2.5' - gem.add_dependency 'activerecord', '>= 5.2', '< 6.1' - gem.add_dependency 'schema_plus_core', '~> 3.0.0' + gem.add_dependency 'activerecord', '>= 5.2', '< 7.1' + gem.add_dependency 'schema_plus_core', '~> 3.1.0' gem.add_development_dependency 'bundler' gem.add_development_dependency 'rake', '~> 13.0' gem.add_development_dependency 'rspec', '~> 3.0' - gem.add_development_dependency 'schema_dev', '~> 4.1' + gem.add_development_dependency 'schema_dev', '~> 4.2.0' end diff --git a/spec/enum_spec.rb b/spec/enum_spec.rb index ed45422..53242bf 100644 --- a/spec/enum_spec.rb +++ b/spec/enum_spec.rb @@ -247,7 +247,7 @@ def enum_fields(name, schema = 'public') migration.execute 'DROP TYPE IF EXISTS color' end - context 'when postgresql version is >= 10', pg_version: '>= 10.0' do + context 'when postgresql version is >= 10', postgresql: '>= 10.0' do it 'renames the value' do expect { migration.rename_enum_value('color', 'green', 'orange') @@ -257,7 +257,7 @@ def enum_fields(name, schema = 'public') end end - context 'when postgresql version is < 10', pg_version: '< 10.0' do + context 'when postgresql version is < 10', postgresql: '< 10.0' do it 'raises an error' do expect { migration.rename_enum_value('color', 'green', 'orange') diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index facd7e5..51f2f81 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'simplecov' -SimpleCov.start +SimpleCov.start unless SimpleCov.running $LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) @@ -20,13 +20,6 @@ RSpec.configure do |config| config.warnings = true - config.filter_run_excluding pg_version: lambda { |v| - version = ActiveRecord::Base.connection.select_value("SHOW server_version").match(/(\d+\.\d+)/)[1] - postgresql_version = Gem::Version.new(version) - test = Gem::Requirement.new(v) - !test.satisfied_by?(postgresql_version) - } - config.after do ActiveRecord::Base.connection.tap do |c| c.enums.each do |p, e, _|