From 52f38f6be88d137fcca7bec61ead06c5e66b160b Mon Sep 17 00:00:00 2001 From: Zsolt Kozaroczy Date: Mon, 2 Dec 2024 17:15:34 +0100 Subject: [PATCH] Update gemspec to support rails 7.2 and 8.0 --- .github/workflows/push.yml | 37 ++++- Dockerfile | 2 +- Gemfile | 12 +- Gemfile.lock | 4 +- Gemfile.rails-7.0.lock | 4 +- Gemfile.rails-7.2.lock | 193 ++++++++++++++++++++++++++ Gemfile.rails-8.0.lock | 203 ++++++++++++++++++++++++++++ activerecord-pg-extensions.gemspec | 4 +- spec/pessimistic_migrations_spec.rb | 2 + 9 files changed, 450 insertions(+), 11 deletions(-) create mode 100644 Gemfile.rails-7.2.lock create mode 100644 Gemfile.rails-8.0.lock diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 9e06ae1..0391fdb 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -13,8 +13,36 @@ jobs: strategy: fail-fast: false matrix: - ruby-version: [2.7, "3.0", 3.1, 3.2] - lockfile: ['Gemfile.lock', 'Gemfile.rails-7.0.lock'] + ruby-version: + - '2.7' + - '3.0' + - '3.1' + - '3.2' + - '3.3' + lockfile: + - 'rails-7.0' + - 'Gemfile.lock' # rails-7.1 + - 'rails-7.2' + - 'rails-8.0' + + include: + - ruby-version: '3.0' + bundler: '2.5.23' + - ruby-version: '3.1' + bundler: '2.5.23' + + exclude: + - ruby-version: '2.7' + lockfile: 'rails-7.2' + - ruby-version: '3.0' + lockfile: 'rails-7.2' + + - ruby-version: '2.7' + lockfile: 'rails-8.0' + - ruby-version: '3.0' + lockfile: 'rails-8.0' + - ruby-version: '3.1' + lockfile: 'rails-8.0' services: postgres: @@ -29,11 +57,15 @@ jobs: ports: - 5432:5432 + env: + BUNDLE_LOCKFILE: ${{ matrix.lockfile }} + steps: - uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: + bundler: ${{ matrix.bundler }} ruby-version: ${{ matrix.ruby-version }} bundler-cache: true env: @@ -44,7 +76,6 @@ jobs: PGHOST: localhost PGUSER: postgres PGPASSWORD: postgres - BUNDLE_LOCKFILE: ${{ matrix.lockfile }} lint: runs-on: ubuntu-latest diff --git a/Dockerfile b/Dockerfile index 93e7b9e..b787bca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.1 +FROM ruby:3.2 RUN apt update && \ apt install -y --no-install-recommends \ diff --git a/Gemfile b/Gemfile index 48aa87b..0726c03 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -plugin "bundler-multilock", "1.2.0" +plugin "bundler-multilock", "1.3.4" return unless Plugin.installed?("bundler-multilock") Plugin.send(:load_plugin, "bundler-multilock") @@ -18,3 +18,13 @@ lockfile do gem "activerecord", "~> 7.1.0" gem "railties", "~> 7.1.0" end + +lockfile "rails-7.2" do + gem "activerecord", "~> 7.2.0" + gem "railties", "~> 7.2.0" +end + +lockfile "rails-8.0" do + gem "activerecord", "~> 8.0.0" + gem "railties", "~> 8.0.0" +end diff --git a/Gemfile.lock b/Gemfile.lock index c3d3ae1..bca3176 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,8 +2,8 @@ PATH remote: . specs: activerecord-pg-extensions (0.5.4) - activerecord (>= 7.0, < 7.2) - railties (>= 7.0, < 7.2) + activerecord (>= 7.0, < 8.1) + railties (>= 7.0, < 8.1) GEM remote: https://rubygems.org/ diff --git a/Gemfile.rails-7.0.lock b/Gemfile.rails-7.0.lock index 5d953e1..7b03fb1 100644 --- a/Gemfile.rails-7.0.lock +++ b/Gemfile.rails-7.0.lock @@ -2,8 +2,8 @@ PATH remote: . specs: activerecord-pg-extensions (0.5.4) - activerecord (>= 7.0, < 7.2) - railties (>= 7.0, < 7.2) + activerecord (>= 7.0, < 8.1) + railties (>= 7.0, < 8.1) GEM remote: https://rubygems.org/ diff --git a/Gemfile.rails-7.2.lock b/Gemfile.rails-7.2.lock new file mode 100644 index 0000000..08fa6b0 --- /dev/null +++ b/Gemfile.rails-7.2.lock @@ -0,0 +1,193 @@ +PATH + remote: . + specs: + activerecord-pg-extensions (0.5.4) + activerecord (>= 7.0, < 8.1) + railties (>= 7.0, < 8.1) + +GEM + remote: https://rubygems.org/ + specs: + actionpack (7.2.2) + actionview (= 7.2.2) + activesupport (= 7.2.2) + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4, < 3.2) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + useragent (~> 0.16) + actionview (7.2.2) + activesupport (= 7.2.2) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activemodel (7.2.2) + activesupport (= 7.2.2) + activerecord (7.2.2) + activemodel (= 7.2.2) + activesupport (= 7.2.2) + timeout (>= 0.4.0) + activesupport (7.2.2) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + ast (2.4.2) + base64 (0.1.1) + benchmark (0.4.0) + bigdecimal (3.1.4) + builder (3.2.4) + concurrent-ruby (1.3.1) + connection_pool (2.4.1) + crass (1.0.6) + debug (1.8.0) + irb (>= 1.5.0) + reline (>= 0.3.1) + diff-lcs (1.5.0) + drb (2.2.1) + erubi (1.13.0) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + io-console (0.6.0) + irb (1.14.1) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.6.3) + language_server-protocol (3.17.0.3) + logger (1.6.2) + loofah (2.23.1) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mini_portile2 (2.8.8) + minitest (5.25.2) + nokogiri (1.16.7) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + nokogiri (1.16.7-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) + parallel (1.23.0) + parser (3.2.2.4) + ast (~> 2.4.1) + racc + pg (1.5.4) + psych (5.1.1.1) + stringio + racc (1.7.1) + rack (3.1.8) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.2.1) + rack (>= 3) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.2.2) + actionpack (= 7.2.2) + activesupport (= 7.2.2) + irb (~> 1.13) + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.1.0) + rdoc (6.5.0) + psych (>= 4.0.0) + regexp_parser (2.8.2) + reline (0.5.12) + io-console (~> 0.5) + rexml (3.2.6) + rspec (3.12.0) + rspec-core (~> 3.12.0) + rspec-expectations (~> 3.12.0) + rspec-mocks (~> 3.12.0) + rspec-core (3.12.2) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.6) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-support (3.12.1) + rubocop (1.57.2) + json (~> 2.3) + language_server-protocol (>= 3.17.0) + parallel (~> 1.10) + parser (>= 3.2.2.4) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.19.0) + rubocop (~> 1.41) + rubocop-factory_bot (2.24.0) + rubocop (~> 1.33) + rubocop-inst (1.0.2) + rubocop (~> 1.50) + rubocop-performance (~> 1.17) + rubocop-performance (1.19.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rake (0.6.0) + rubocop (~> 1.0) + rubocop-rspec (2.25.0) + rubocop (~> 1.40) + rubocop-capybara (~> 2.17) + rubocop-factory_bot (~> 2.22) + ruby-progressbar (1.13.0) + securerandom (0.4.0) + stringio (3.0.8) + thor (1.3.2) + timeout (0.4.2) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + useragent (0.16.10) + zeitwerk (2.6.18) + +PLATFORMS + arm64-darwin + ruby + x86_64-darwin + x86_64-linux + +DEPENDENCIES + activerecord (~> 7.2.0) + activerecord-pg-extensions! + debug (~> 1.8) + pg (~> 1.2) + railties (~> 7.2.0) + rake (~> 13.0) + rspec (~> 3.0) + rubocop-inst (~> 1) + rubocop-rake (~> 0.5) + rubocop-rspec (~> 2.3) + +BUNDLED WITH + 2.4.20 diff --git a/Gemfile.rails-8.0.lock b/Gemfile.rails-8.0.lock new file mode 100644 index 0000000..4d06fa2 --- /dev/null +++ b/Gemfile.rails-8.0.lock @@ -0,0 +1,203 @@ +PATH + remote: . + specs: + activerecord-pg-extensions (0.5.4) + activerecord (>= 7.0, < 8.1) + railties (>= 7.0, < 8.1) + +GEM + remote: https://rubygems.org/ + specs: + actionpack (8.0.0) + actionview (= 8.0.0) + activesupport (= 8.0.0) + nokogiri (>= 1.8.5) + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + useragent (~> 0.16) + actionview (8.0.0) + activesupport (= 8.0.0) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activemodel (8.0.0) + activesupport (= 8.0.0) + activerecord (8.0.0) + activemodel (= 8.0.0) + activesupport (= 8.0.0) + timeout (>= 0.4.0) + activesupport (8.0.0) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + ast (2.4.2) + base64 (0.2.0) + benchmark (0.4.0) + bigdecimal (3.1.8) + builder (3.3.0) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + crass (1.0.6) + date (3.4.1) + debug (1.9.2) + irb (~> 1.10) + reline (>= 0.3.8) + diff-lcs (1.5.1) + drb (2.2.1) + erubi (1.13.0) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + io-console (0.7.2) + irb (1.14.1) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.8.2) + language_server-protocol (3.17.0.3) + logger (1.6.2) + loofah (2.23.1) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + minitest (5.25.2) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86-linux) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) + parallel (1.26.3) + parser (3.3.6.0) + ast (~> 2.4.1) + racc + pg (1.5.9) + psych (5.2.1) + date + stringio + racc (1.8.1) + rack (3.1.8) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.2.1) + rack (>= 3) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (8.0.0) + actionpack (= 8.0.0) + activesupport (= 8.0.0) + irb (~> 1.13) + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.2.1) + rdoc (6.8.1) + psych (>= 4.0.0) + regexp_parser (2.9.3) + reline (0.5.12) + io-console (~> 0.5) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.2) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rubocop (1.69.0) + json (~> 2.3) + language_server-protocol (>= 3.17.0) + parallel (~> 1.10) + parser (>= 3.3.0.2) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 2.4, < 3.0) + rubocop-ast (>= 1.36.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.36.2) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-factory_bot (2.26.1) + rubocop (~> 1.61) + rubocop-inst (1.0.4) + rubocop (~> 1.50) + rubocop-performance (~> 1.17) + rubocop-performance (1.23.0) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rake (0.6.0) + rubocop (~> 1.0) + rubocop-rspec (2.31.0) + rubocop (~> 1.40) + rubocop-capybara (~> 2.17) + rubocop-factory_bot (~> 2.22) + rubocop-rspec_rails (~> 2.28) + rubocop-rspec_rails (2.29.1) + rubocop (~> 1.61) + ruby-progressbar (1.13.0) + securerandom (0.4.0) + stringio (3.1.2) + thor (1.3.2) + timeout (0.4.2) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (3.1.2) + unicode-emoji (~> 4.0, >= 4.0.4) + unicode-emoji (4.0.4) + uri (1.0.2) + useragent (0.16.10) + zeitwerk (2.7.1) + +PLATFORMS + aarch64-linux + arm-linux + arm64-darwin + x86-linux + x86_64-darwin + x86_64-linux + +DEPENDENCIES + activerecord (~> 8.0.0) + activerecord-pg-extensions! + debug (~> 1.8) + pg (~> 1.2) + railties (~> 8.0.0) + rake (~> 13.0) + rspec (~> 3.0) + rubocop-inst (~> 1) + rubocop-rake (~> 0.5) + rubocop-rspec (~> 2.3) + +BUNDLED WITH + 2.5.23 diff --git a/activerecord-pg-extensions.gemspec b/activerecord-pg-extensions.gemspec index a7bc83e..6c3b7bd 100644 --- a/activerecord-pg-extensions.gemspec +++ b/activerecord-pg-extensions.gemspec @@ -20,8 +20,8 @@ Gem::Specification.new do |spec| spec.files = Dir["lib/**/*"] + ["LICENSE.txt", "README.md", "CHANGELOG.md"] spec.require_paths = ["lib"] - spec.add_dependency "activerecord", ">= 7.0", "< 7.2" - spec.add_dependency "railties", ">= 7.0", "< 7.2" + spec.add_dependency "activerecord", ">= 7.0", "< 8.1" + spec.add_dependency "railties", ">= 7.0", "< 8.1" spec.add_development_dependency "debug", "~> 1.8" spec.add_development_dependency "pg", "~> 1.2" diff --git a/spec/pessimistic_migrations_spec.rb b/spec/pessimistic_migrations_spec.rb index f914882..3eac5da 100644 --- a/spec/pessimistic_migrations_spec.rb +++ b/spec/pessimistic_migrations_spec.rb @@ -114,6 +114,7 @@ it "removes a NOT VALID index before re-adding" do expect(connection).to receive(:select_value).with(/indisvalid/, "SCHEMA").and_return(false) expect(connection).to receive(:remove_index).with(:users, name: "index_users_on_name", algorithm: :concurrently) + allow(connection).to receive(:max_identifier_length).and_return(63) connection.add_index :users, :name, algorithm: :concurrently, if_not_exists: true expect(connection.executed_statements).to eq [ @@ -123,6 +124,7 @@ it "does nothing if the index already exists" do expect(connection).not_to receive(:select_value) + allow(connection).to receive(:max_identifier_length).and_return(63) connection.add_index :users, :name, if_not_exists: true expect(connection.executed_statements).to eq [