Skip to content

Commit 8ad6f3c

Browse files
authoredOct 24, 2024··
Add support for ActiveRecord 8.0 (#487)
This allows us to use ActiveRecord 8.0. In addition: - Adds Ruby 3.3 and head (3.4 as of writing) to all test matrices (only with Rails 7.0, 7.1, 8.0, and edge (i.e., 8.1)) - Adds Ruby 3.2 to MySQL test matrix - Tweaks `mutex_m` / `bigdecimal` gems only in Rails 7.0.x only on testing - Allows us to use `rspec-rails` 7.x, which is officially for Rails 7.0+
1 parent 190ed28 commit 8ad6f3c

7 files changed

+138
-12
lines changed
 

‎.github/workflows/ci.yml

+110-6
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,35 @@ jobs:
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2']
18+
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', 'head']
1919
gemfile:
2020
- rails_5_2
2121
- rails_6_0
2222
- rails_6_1
2323
- rails_7_0
2424
- rails_7_1
2525
- rails_7_2
26+
- rails_8_0
2627
- rails_main
2728
exclude:
29+
- ruby: 'head'
30+
gemfile: rails_6_1
31+
32+
- ruby: 'head'
33+
gemfile: rails_6_0
34+
35+
- ruby: 'head'
36+
gemfile: rails_5_2
37+
38+
- ruby: '3.3'
39+
gemfile: rails_6_1
40+
41+
- ruby: '3.3'
42+
gemfile: rails_6_0
43+
44+
- ruby: '3.3'
45+
gemfile: rails_5_2
46+
2847
- ruby: '3.2'
2948
gemfile: rails_6_0
3049

@@ -37,7 +56,7 @@ jobs:
3756
- ruby: '3.0'
3857
gemfile: rails_5_2
3958

40-
# Rails 7.2 requires Ruby 3.1 or higher
59+
# Rails 8.1 requires Ruby 3.2 or higher
4160
- ruby: '2.6'
4261
gemfile: rails_main
4362

@@ -47,6 +66,9 @@ jobs:
4766
- ruby: '3.0'
4867
gemfile: rails_main
4968

69+
- ruby: '3.1'
70+
gemfile: rails_main
71+
5072
- ruby: '2.6'
5173
gemfile: rails_7_0
5274

@@ -61,6 +83,19 @@ jobs:
6183

6284
- ruby: '3.0'
6385
gemfile: rails_7_2
86+
87+
- ruby: '2.6'
88+
gemfile: rails_8_0
89+
90+
- ruby: '2.7'
91+
gemfile: rails_8_0
92+
93+
- ruby: '3.0'
94+
gemfile: rails_8_0
95+
96+
- ruby: '3.1'
97+
gemfile: rails_8_0
98+
6499
env:
65100
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
66101
BUNDLE_PATH_RELATIVE_TO_CWD: true
@@ -86,16 +121,35 @@ jobs:
86121
strategy:
87122
fail-fast: false
88123
matrix:
89-
ruby: ['2.6', '2.7', '3.0', '3.1']
124+
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', 'head']
90125
gemfile:
91126
- rails_5_2
92127
- rails_6_0
93128
- rails_6_1
94129
- rails_7_0
95130
- rails_7_1
96131
- rails_7_2
132+
- rails_8_0
97133
- rails_main
98134
exclude:
135+
- ruby: 'head'
136+
gemfile: rails_6_1
137+
138+
- ruby: 'head'
139+
gemfile: rails_6_0
140+
141+
- ruby: 'head'
142+
gemfile: rails_5_2
143+
144+
- ruby: '3.3'
145+
gemfile: rails_6_1
146+
147+
- ruby: '3.3'
148+
gemfile: rails_6_0
149+
150+
- ruby: '3.3'
151+
gemfile: rails_5_2
152+
99153
- ruby: '3.2'
100154
gemfile: rails_6_0
101155

@@ -108,7 +162,7 @@ jobs:
108162
- ruby: '3.0'
109163
gemfile: rails_5_2
110164

111-
# Rails 8 requires Ruby 3.1 or higher
165+
# Rails 8.1 requires Ruby 3.2 or higher
112166
- ruby: '2.6'
113167
gemfile: rails_main
114168

@@ -118,6 +172,9 @@ jobs:
118172
- ruby: '3.0'
119173
gemfile: rails_main
120174

175+
- ruby: '3.1'
176+
gemfile: rails_main
177+
121178
- ruby: '2.6'
122179
gemfile: rails_7_0
123180

@@ -132,6 +189,19 @@ jobs:
132189

133190
- ruby: '3.0'
134191
gemfile: rails_7_2
192+
193+
- ruby: '2.6'
194+
gemfile: rails_8_0
195+
196+
- ruby: '2.7'
197+
gemfile: rails_8_0
198+
199+
- ruby: '3.0'
200+
gemfile: rails_8_0
201+
202+
- ruby: '3.1'
203+
gemfile: rails_8_0
204+
135205
env:
136206
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
137207
BUNDLE_PATH_RELATIVE_TO_CWD: true
@@ -172,16 +242,35 @@ jobs:
172242
strategy:
173243
fail-fast: false
174244
matrix:
175-
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2']
245+
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', 'head']
176246
gemfile:
177247
- rails_5_2
178248
- rails_6_0
179249
- rails_6_1
180250
- rails_7_0
181251
- rails_7_1
182252
- rails_7_2
253+
- rails_8_0
183254
- rails_main
184255
exclude:
256+
- ruby: 'head'
257+
gemfile: rails_6_1
258+
259+
- ruby: 'head'
260+
gemfile: rails_6_0
261+
262+
- ruby: 'head'
263+
gemfile: rails_5_2
264+
265+
- ruby: '3.3'
266+
gemfile: rails_6_1
267+
268+
- ruby: '3.3'
269+
gemfile: rails_6_0
270+
271+
- ruby: '3.3'
272+
gemfile: rails_5_2
273+
185274
- ruby: '3.2'
186275
gemfile: rails_6_0
187276

@@ -194,7 +283,7 @@ jobs:
194283
- ruby: '3.0'
195284
gemfile: rails_5_2
196285

197-
# Rails 8 requires Ruby 3.1 or higher
286+
# Rails 8.1 requires Ruby 3.2 or higher
198287
- ruby: '2.6'
199288
gemfile: rails_main
200289

@@ -204,6 +293,9 @@ jobs:
204293
- ruby: '3.0'
205294
gemfile: rails_main
206295

296+
- ruby: '3.1'
297+
gemfile: rails_main
298+
207299
- ruby: '2.6'
208300
gemfile: rails_7_0
209301

@@ -218,6 +310,18 @@ jobs:
218310

219311
- ruby: '3.0'
220312
gemfile: rails_7_2
313+
314+
- ruby: '2.6'
315+
gemfile: rails_8_0
316+
317+
- ruby: '2.7'
318+
gemfile: rails_8_0
319+
320+
- ruby: '3.0'
321+
gemfile: rails_8_0
322+
323+
- ruby: '3.1'
324+
gemfile: rails_8_0
221325
env:
222326
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
223327
BUNDLE_PATH_RELATIVE_TO_CWD: true

‎Appraisals

+8-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@
44
"6_1" => "6.1.0",
55
"7_0" => "7.0.0",
66
"7_1" => "7.1.0",
7-
"7_2" => "7.2.0"
7+
"7_2" => "7.2.0",
8+
"8_0" => "8.0.0.rc1"
89
}.each do |rails, version|
910
appraise "rails-#{rails}" do
1011
gem "rails", "~> #{version}"
12+
if rails == "7_0"
13+
gem "base64"
14+
gem "bigdecimal"
15+
gem "drb"
16+
gem "mutex_m"
17+
end
1118
end
1219
end
1320

1421
appraise "rails-main" do
1522
gem "rails", github: "rails/rails", branch: "main"
16-
gem "rspec-rails", "~> 6.0.2"
1723
end

‎awesome_nested_set.gemspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ Gem::Specification.new do |s|
1818

1919
s.required_ruby_version = '>= 2.0.0'
2020

21-
s.add_runtime_dependency 'activerecord', '>= 4.0.0', '< 8.0'
21+
s.add_runtime_dependency 'activerecord', '>= 4.0.0', '< 8.1'
2222

2323
s.add_development_dependency 'appraisal'
2424
s.add_development_dependency 'database_cleaner'
2525
s.add_development_dependency 'pry'
2626
s.add_development_dependency 'pry-nav'
2727
s.add_development_dependency 'rake', '~> 13'
28-
s.add_development_dependency 'rspec-rails', '>= 4.0.0', '<= 6.2'
28+
s.add_development_dependency 'rspec-rails', '>= 4.0.0', '< 8.0'
2929

3030
s.cert_chain = [File.expand_path('certs/parndt.pem', __dir__)]
3131
if $PROGRAM_NAME =~ /gem\z/ && ARGV.include?('build') && ARGV.include?(__FILE__)

‎gemfiles/rails_7_0.gemfile

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
source "https://rubygems.org"
44

55
gem "rails", "~> 7.0.0"
6+
gem "base64"
7+
gem "bigdecimal"
8+
gem "drb"
9+
gem "mutex_m"
610

711
platforms :ruby do
812
gem "sqlite3", "~> 1.4"

‎gemfiles/rails_7_2.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ source "https://rubygems.org"
55
gem "rails", "~> 7.2.0"
66

77
platforms :ruby do
8+
gem "sqlite3"
89
gem "mysql2", "< 1.0.0"
910
gem "pg", "< 2.0.0"
10-
gem "sqlite3"
1111
end
1212

1313
gemspec path: "../"

‎gemfiles/rails_8_0.gemfile

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rails", "~> 8.0.0.rc1"
6+
7+
platforms :ruby do
8+
gem "sqlite3"
9+
gem "mysql2", "< 1.0.0"
10+
gem "pg", "< 2.0.0"
11+
end
12+
13+
gemspec path: "../"

‎gemfiles/rails_main.gemfile

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
source "https://rubygems.org"
44

55
gem "rails", github: "rails/rails", branch: "main"
6-
gem "rspec-rails", "~> 6.0.2"
76

87
platforms :ruby do
98
gem "sqlite3"

0 commit comments

Comments
 (0)
Please sign in to comment.