diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 395a2a9..759f2da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,9 +8,7 @@ on: pull_request: branches: - master -concurrency: - group: ci-${{ github.head_ref }} - cancel-in-progress: true + jobs: rspec: @@ -41,26 +39,15 @@ jobs: matrix: ruby: - '3.3' - - '3.2' - - '3.1' - - '3.0' rails: + - activerecord_8.0 - activerecord_7.2 - activerecord_7.1 - - activerecord_7.0 - - activerecord_6.1 - activerecord_edge adapter: - 'sqlite3:///:memory:' - mysql2://root:root@0/closure_tree_test - postgres://closure_tree:closure_tree@0/closure_tree_test - exclude: - - ruby: '3.0' - rails: activerecord_edge - - ruby: '3.1' - rails: activerecord_edge - - ruby: '3.0' - rails: activerecord_7.2 steps: - name: Checkout diff --git a/.github/workflows/ci_jruby.yml b/.github/workflows/ci_jruby.yml index c7d0156..d0dec87 100644 --- a/.github/workflows/ci_jruby.yml +++ b/.github/workflows/ci_jruby.yml @@ -40,8 +40,7 @@ jobs: fail-fast: false matrix: rails: - - activerecord_7.0 - - activerecord_6.1 + - activerecord_7.1 adapter: - 'sqlite3:///:memory:' - mysql2://root:root@0/closure_tree_test diff --git a/.github/workflows/ci_truffleruby.yml b/.github/workflows/ci_truffleruby.yml index b61630f..8429164 100644 --- a/.github/workflows/ci_truffleruby.yml +++ b/.github/workflows/ci_truffleruby.yml @@ -42,8 +42,7 @@ jobs: ruby: - truffleruby rails: - - activerecord_7.0 - - activerecord_6.1 + - activerecord_7.1 adapter: - 'sqlite3:///:memory:' - mysql2://root:root@0/closure_tree_test diff --git a/.tool-versions b/.tool-versions index f2a971a..ca745c6 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -ruby 3.2.2 +ruby 3.4.4 diff --git a/Appraisals b/Appraisals index ddb9be8..e9e8d95 100644 --- a/Appraisals +++ b/Appraisals @@ -1,23 +1,8 @@ # frozen_string_literal: true -appraise 'activerecord-6.1' do - gem 'activerecord', '~> 6.1.0' - platforms :ruby do - gem 'mysql2' - gem 'pg' - gem 'sqlite3', '< 2.0' - end - - platforms :jruby do - gem 'activerecord-jdbcmysql-adapter' - gem 'activerecord-jdbcpostgresql-adapter' - gem 'activerecord-jdbcsqlite3-adapter' - end -end - -appraise 'activerecord-7.0' do - gem 'activerecord', '~> 7.0.0' - platforms :ruby do +appraise 'activerecord-7.1' do + gem 'activerecord', '~> 7.1.0' + platforms :ruby, :truffleruby do gem 'mysql2' gem 'pg' gem 'sqlite3', '< 2.0' @@ -30,12 +15,12 @@ appraise 'activerecord-7.0' do end end -appraise 'activerecord-7.1' do - gem 'activerecord', '~> 7.1.0' +appraise 'activerecord-7.2' do + gem 'activerecord', '~> 7.2.0' platforms :ruby do gem 'mysql2' gem 'pg' - gem 'sqlite3', '< 2.0' + gem 'sqlite3' end platforms :jruby do @@ -45,8 +30,8 @@ appraise 'activerecord-7.1' do end end -appraise 'activerecord-7.2' do - gem 'activerecord', '~> 7.2.0' +appraise 'activerecord-8.0' do + gem 'activerecord', '~> 8.0.0' platforms :ruby do gem 'mysql2' gem 'pg' diff --git a/Gemfile b/Gemfile index 4c07fb6..61f1b84 100644 --- a/Gemfile +++ b/Gemfile @@ -4,9 +4,3 @@ source 'https://rubygems.org' gemspec -platform :mri do - group :development do - gem 'bump', '~> 0.10.0' - gem 'github_changelog_generator', '~> 1.16' - end -end diff --git a/README.md b/README.md index a4ce159..2a562d1 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ closure_tree has some great features: * 2 SQL INSERTs on node creation * 3 SQL INSERT/UPDATEs on node reparenting * __Support for [concurrency](#concurrency)__ (using [with_advisory_lock](https://github.com/ClosureTree/with_advisory_lock)) -* __Tested against ActiveRecord 6.0+ with Ruby 2.7+__ +* __Tested against ActiveRecord 7.1+ with Ruby 3.3+__ * Support for reparenting children (and all their descendants) * Support for [single-table inheritance (STI)](#sti) within the hierarchy * ```find_or_create_by_path``` for [building out heterogeneous hierarchies quickly and conveniently](#find_or_create_by_path) @@ -52,7 +52,7 @@ for a description of different tree storage algorithms. ## Installation -Note that closure_tree only supports ActiveRecord 6.0 and later, and has test coverage for MySQL, PostgreSQL, and SQLite. +Note that closure_tree only supports ActiveRecord 7.1 and later, and has test coverage for MySQL, PostgreSQL, and SQLite. 1. Add `gem 'closure_tree'` to your Gemfile @@ -662,8 +662,8 @@ end Closure tree is [tested under every valid combination](https://github.com/ClosureTree/closure_tree/blob/master/.github/workflows/ci.yml) of -* Ruby 2.7+ -* ActiveRecord 6.0+ +* Ruby 3.3+ +* ActiveRecord 7.1+ * PostgreSQL, MySQL, and SQLite. Concurrency tests are only run with MySQL and PostgreSQL. ```shell diff --git a/Rakefile b/Rakefile index e93b025..f9642db 100644 --- a/Rakefile +++ b/Rakefile @@ -29,14 +29,4 @@ Rake::TestTask.new do |t| t.verbose = true end -if RUBY_ENGINE == 'ruby' - require 'github_changelog_generator/task' - GitHubChangelogGenerator::RakeTask.new :changelog do |config| - config.user = 'ClosureTree' - config.project = 'closure_tree' - config.issues = false - config.future_release = '5.2.0' - config.since_tag = 'v7.4.0' - end -end task default: 'spec:all' diff --git a/closure_tree.gemspec b/closure_tree.gemspec index 8ddf51d..fdd2ffb 100644 --- a/closure_tree.gemspec +++ b/closure_tree.gemspec @@ -25,10 +25,10 @@ Gem::Specification.new do |gem| end gem.test_files = gem.files.grep(%r{^spec/}) - gem.required_ruby_version = '>= 3.0.0' + gem.required_ruby_version = '>= 3.3.0' - gem.add_runtime_dependency 'activerecord', '>= 6.1.0' - gem.add_runtime_dependency 'with_advisory_lock', '>= 5.0.0' + gem.add_runtime_dependency 'activerecord', '>= 7.1.0' + gem.add_runtime_dependency 'with_advisory_lock', '>= 5.0.0', '< 6.0.0' gem.add_development_dependency 'appraisal' gem.add_development_dependency 'database_cleaner' diff --git a/gemfiles/activerecord_7.0.gemfile b/gemfiles/activerecord_7.0.gemfile deleted file mode 100644 index 33e9a64..0000000 --- a/gemfiles/activerecord_7.0.gemfile +++ /dev/null @@ -1,26 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "activerecord", "~> 7.0.0" - -platforms :mri do - group :development do - gem "bump", "~> 0.10.0" - gem "github_changelog_generator", "~> 1.16" - end -end - -platforms :ruby do - gem "mysql2" - gem "pg" - gem "sqlite3", "< 2.0" -end - -platforms :jruby do - gem "activerecord-jdbcmysql-adapter" - gem "activerecord-jdbcpostgresql-adapter" - gem "activerecord-jdbcsqlite3-adapter" -end - -gemspec path: "../" diff --git a/gemfiles/activerecord_7.1.gemfile b/gemfiles/activerecord_7.1.gemfile index 2d3953a..cd1ce6e 100644 --- a/gemfiles/activerecord_7.1.gemfile +++ b/gemfiles/activerecord_7.1.gemfile @@ -4,14 +4,7 @@ source "https://rubygems.org" gem "activerecord", "~> 7.1.0" -platforms :mri do - group :development do - gem "bump", "~> 0.10.0" - gem "github_changelog_generator", "~> 1.16" - end -end - -platforms :ruby do +platforms :ruby, :truffleruby do gem "mysql2" gem "pg" gem "sqlite3", "< 2.0" diff --git a/gemfiles/activerecord_7.2.gemfile b/gemfiles/activerecord_7.2.gemfile index 8fe5958..8d8d9f0 100644 --- a/gemfiles/activerecord_7.2.gemfile +++ b/gemfiles/activerecord_7.2.gemfile @@ -4,13 +4,6 @@ source "https://rubygems.org" gem "activerecord", "~> 7.2.0" -platforms :mri do - group :development do - gem "bump", "~> 0.10.0" - gem "github_changelog_generator", "~> 1.16" - end -end - platforms :ruby do gem "mysql2" gem "pg" diff --git a/gemfiles/activerecord_6.1.gemfile b/gemfiles/activerecord_8.0.gemfile similarity index 61% rename from gemfiles/activerecord_6.1.gemfile rename to gemfiles/activerecord_8.0.gemfile index 4acb82a..64c0379 100644 --- a/gemfiles/activerecord_6.1.gemfile +++ b/gemfiles/activerecord_8.0.gemfile @@ -2,19 +2,12 @@ source "https://rubygems.org" -gem "activerecord", "~> 6.1.0" - -platforms :mri do - group :development do - gem "bump", "~> 0.10.0" - gem "github_changelog_generator", "~> 1.16" - end -end +gem "activerecord", "~> 8.0.0" platforms :ruby do gem "mysql2" gem "pg" - gem "sqlite3", "< 2.0" + gem "sqlite3" end platforms :jruby do diff --git a/gemfiles/activerecord_edge.gemfile b/gemfiles/activerecord_edge.gemfile index 2473814..2ba4cb7 100644 --- a/gemfiles/activerecord_edge.gemfile +++ b/gemfiles/activerecord_edge.gemfile @@ -4,13 +4,6 @@ source "https://rubygems.org" gem "activerecord", github: "rails/rails" -platforms :mri do - group :development do - gem "bump", "~> 0.10.0" - gem "github_changelog_generator", "~> 1.16" - end -end - platforms :ruby do gem "mysql2" gem "pg"