Skip to content

Commit f49be88

Browse files
authored
remove support for EOL rubies/activerecord (#400)
1 parent 8bb1992 commit f49be88

19 files changed

+178
-394
lines changed

.github/workflows/ci.yml

Lines changed: 19 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,28 @@
22
name: CI
33

44
on:
5-
- push
6-
- pull_request
5+
pull_request:
6+
branches:
7+
- master
78

89
jobs:
910
rspec:
10-
runs-on: ubuntu-20.04
11-
11+
runs-on: ubuntu-latest
1212
services:
13+
mysql:
14+
image: mysql/mysql-server:8.0.30
15+
ports:
16+
- "3306:3306"
17+
env:
18+
MYSQL_ROOT_PASSWORD: root
19+
MYSQL_DATABASE: closure_tree_test
20+
MYSQL_ROOT_HOST: '%'
1321
postgres:
1422
image: 'postgres:13'
1523
ports: ['5432:5432']
1624
env:
1725
POSTGRES_PASSWORD: postgres
18-
POSTGRES_DB: closure_tree
26+
POSTGRES_DB: closure_tree_test
1927
options: >-
2028
--health-cmd pg_isready
2129
--health-interval 10s
@@ -28,40 +36,15 @@ jobs:
2836
ruby:
2937
- '3.0'
3038
- '2.7'
31-
- '2.6'
32-
- '2.5'
3339
rails:
3440
- activerecord_7.0
3541
- activerecord_6.1
3642
- activerecord_6.0
37-
- activerecord_5.2
38-
- activerecord_5.1
39-
- activerecord_5.0
40-
- activerecord_4.2
4143
- activerecord_edge
4244
adapter:
43-
- sqlite3
44-
- mysql2
45-
- postgresql
46-
exclude:
47-
- ruby: '2.7'
48-
rails: activerecord_4.2
49-
- ruby: '3.0'
50-
rails: activerecord_4.2
51-
- ruby: '3.0'
52-
rails: activerecord_5.0
53-
- ruby: '3.0'
54-
rails: activerecord_5.1
55-
- ruby: '3.0'
56-
rails: activerecord_5.2
57-
- ruby: '2.5'
58-
rails: activerecord_7.0
59-
- ruby: '2.6'
60-
rails: activerecord_7.0
61-
- ruby: '2.5'
62-
rails: activerecord_edge
63-
- ruby: '2.6'
64-
rails: activerecord_edge
45+
- 'sqlite3:///:memory:'
46+
- mysql2://root:root@0/closure_tree_test
47+
- postgres://closure_tree:closure_tree@0/closure_tree_test
6548

6649
steps:
6750
- name: Checkout
@@ -71,33 +54,15 @@ jobs:
7154
uses: ruby/setup-ruby@v1
7255
with:
7356
ruby-version: ${{ matrix.ruby }}
74-
75-
- name: Set DB Adapter
76-
env:
77-
RAILS_VERSION: ${{ matrix.rails }}
78-
DB_ADAPTER: ${{ matrix.adapter }}
79-
80-
# See: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md#mysql
81-
run: |
82-
if [ "${DB_ADAPTER}" = "mysql2" ]; then
83-
sudo systemctl start mysql.service
84-
mysql -u root -proot -e 'create database closure_tree;'
85-
fi
86-
87-
- name: Bundle
57+
bundler-cache: true
58+
rubygems: latest
8859
env:
89-
RAILS_VERSION: ${{ matrix.rails }}
90-
DB_ADAPTER: ${{ matrix.adapter }}
9160
BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
92-
run: |
93-
gem install bundler
94-
bundle config path vendor/bundle
95-
bundle install --jobs 4 --retry 3
9661

9762
- name: RSpec
9863
env:
9964
RAILS_VERSION: ${{ matrix.rails }}
10065
DB_ADAPTER: ${{ matrix.adapter }}
10166
BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
10267
WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
103-
run: bin/rake --trace spec:all
68+
run: bin/rake

Appraisals

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,4 @@
1-
2-
appraise 'activerecord-4.2' do
3-
gem 'activerecord', '~> 4.2.0'
4-
platforms :ruby do
5-
gem 'mysql2', "< 0.5"
6-
gem 'pg', "~> 0.21"
7-
gem 'sqlite3', '~> 1.3.13'
8-
end
9-
10-
platforms :jruby do
11-
gem 'activerecord-jdbcmysql-adapter'
12-
gem 'activerecord-jdbcpostgresql-adapter'
13-
gem 'activerecord-jdbcsqlite3-adapter'
14-
end
15-
end
16-
17-
appraise 'activerecord-5.0' do
18-
gem 'activerecord', '~> 5.0.0'
19-
platforms :ruby do
20-
gem 'mysql2'
21-
gem 'pg'
22-
gem 'sqlite3', '~> 1.3.13'
23-
end
24-
25-
platforms :jruby do
26-
gem 'activerecord-jdbcmysql-adapter'
27-
gem 'activerecord-jdbcpostgresql-adapter'
28-
gem 'activerecord-jdbcsqlite3-adapter'
29-
end
30-
end
31-
32-
appraise 'activerecord-5.1' do
33-
gem 'activerecord', '~> 5.1.0'
34-
platforms :ruby do
35-
gem 'mysql2'
36-
gem 'pg'
37-
gem 'sqlite3', '~> 1.3.13'
38-
end
39-
40-
platforms :jruby do
41-
gem 'activerecord-jdbcmysql-adapter'
42-
gem 'activerecord-jdbcpostgresql-adapter'
43-
gem 'activerecord-jdbcsqlite3-adapter'
44-
end
45-
end
46-
47-
appraise 'activerecord-5.2' do
48-
gem 'activerecord', '~> 5.2.0'
49-
platforms :ruby do
50-
gem 'mysql2'
51-
gem 'pg'
52-
gem 'sqlite3'
53-
end
54-
55-
platforms :jruby do
56-
gem 'activerecord-jdbcmysql-adapter'
57-
gem 'activerecord-jdbcpostgresql-adapter'
58-
gem 'activerecord-jdbcsqlite3-adapter'
59-
end
60-
end
1+
# frozen_string_literal: true
612

623
appraise 'activerecord-6.0' do
634
gem 'activerecord', '~> 6.0.0'
@@ -90,7 +31,7 @@ appraise 'activerecord-6.1' do
9031
end
9132

9233
appraise 'activerecord-7.0' do
93-
gem 'activerecord', '~> 7.0.0.alpha2'
34+
gem 'activerecord', '~> 7.0.0'
9435
platforms :ruby do
9536
gem 'mysql2'
9637
gem 'pg'

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
### 8.0.0
4+
5+
- Drop support to EOL ruby and rails
6+
37
## [7.4.0](https://github.com/ClosureTree/closure_tree/tree/7.4.0)
48

59
[Full Changelog](https://github.com/ClosureTree/closure_tree/compare/v7.3.0...7.4.0)

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ for a description of different tree storage algorithms.
5353

5454
## Installation
5555

56-
Note that closure_tree only supports ActiveRecord 4.2 and later, and has test coverage for MySQL, PostgreSQL, and SQLite.
56+
Note that closure_tree only supports ActiveRecord 6.0 and later, and has test coverage for MySQL, PostgreSQL, and SQLite.
5757

5858
1. Add `gem 'closure_tree'` to your Gemfile
5959

@@ -663,8 +663,8 @@ end
663663
664664
Closure tree is [tested under every valid combination](http://travis-ci.org/#!/ClosureTree/closure_tree) of
665665
666-
* Ruby 2.5, 2.6 and 2.7
667-
* ActiveRecord 4.2, 5.x and 6.0
666+
* Ruby 2.7+
667+
* ActiveRecord 6.0+
668668
* PostgreSQL, MySQL, and SQLite. Concurrency tests are only run with MySQL and PostgreSQL.
669669
670670
Assuming you're using [rbenv](https://github.com/sstephenson/rbenv), you can use ```tests.sh``` to

Rakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ GitHubChangelogGenerator::RakeTask.new :changelog do |config|
3535
config.future_release = '5.2.0'
3636
config.since_tag = 'v7.4.0'
3737
end
38+
39+
task :default => "spec:all"

closure_tree.gemspec

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ require_relative 'lib/closure_tree/version'
55
Gem::Specification.new do |gem|
66
gem.name = 'closure_tree'
77
gem.version = ::ClosureTree::VERSION
8-
gem.authors = ['Matthew McEachen']
9-
gem.email = ['matthew-github@mceachen.org']
10-
gem.homepage = 'http://mceachen.github.io/closure_tree/'
8+
gem.authors = ['Matthew McEachen', 'Abdelkader Boudih']
9+
gem.email = %w[matthew+github@mceachen.org terminale@gmail.com]
10+
gem.homepage = 'https://github.com/ClosureTree/closure_tree/'
1111

1212
gem.summary = %q(Easily and efficiently make your ActiveRecord model support hierarchies)
1313
gem.description = gem.summary
@@ -18,9 +18,9 @@ Gem::Specification.new do |gem|
1818
end
1919

2020
gem.test_files = gem.files.grep(%r{^spec/})
21-
gem.required_ruby_version = '>= 2.0.0'
21+
gem.required_ruby_version = '>= 2.6.8'
2222

23-
gem.add_runtime_dependency 'activerecord', '>= 4.2.10'
23+
gem.add_runtime_dependency 'activerecord', '>= 6.0.0'
2424
gem.add_runtime_dependency 'with_advisory_lock', '>= 4.0.0'
2525

2626
gem.add_development_dependency 'appraisal'

gemfiles/activerecord_4.2.gemfile

Lines changed: 0 additions & 21 deletions
This file was deleted.

gemfiles/activerecord_5.0.gemfile

Lines changed: 0 additions & 21 deletions
This file was deleted.

gemfiles/activerecord_5.1.gemfile

Lines changed: 0 additions & 21 deletions
This file was deleted.

gemfiles/activerecord_5.2.gemfile

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)