Skip to content

Commit de17ff0

Browse files
committed
[test] Test against JRuby 10 and Rails 8.0
(cherry picked from commit d794a22) # Conflicts: # .github/workflows/maven.yml # CHANGELOG.md # README.md # pom.xml # src/main/ruby/jruby/rack/version.rb
1 parent e6a2085 commit de17ff0

8 files changed

Lines changed: 63 additions & 13 deletions

File tree

.github/workflows/maven.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,16 @@ jobs:
1919

2020
strategy:
2121
matrix:
22-
jruby_version: [ '9.3.15.0', '9.4.14.0' ]
22+
jruby_version: [ '9.3.15.0', '9.4.14.0', '10.0.5.0' ]
2323
java_version: [ '8', '11', '17', '21', '25' ]
2424
rack_version: [ '~> 2.2.0' ]
25+
exclude:
26+
- jruby_version: '10.0.5.0'
27+
java_version: '8' # JRuby 10 requires Java 21
28+
- jruby_version: '10.0.5.0'
29+
java_version: '11' # JRuby 10 requires Java 21
30+
- jruby_version: '10.0.5.0'
31+
java_version: '17' # JRuby 10 requires Java 21
2532
fail-fast: false
2633

2734
steps:
@@ -59,16 +66,27 @@ jobs:
5966
'rails70_rack22',
6067
'rails71_rack22',
6168
'rails72_rack22',
69+
'rails80_rack22',
6270
]
63-
jruby_version: [ '9.3.15.0', '9.4.14.0' ]
71+
jruby_version: [ '9.3.15.0', '9.4.14.0', '10.0.5.0' ]
6472
java_version: [ '8', '11', '17', '21', '25' ]
6573
exclude:
74+
- jruby_version: '10.0.5.0'
75+
java_version: '8' # JRuby 10 requires Java 21
76+
- jruby_version: '10.0.5.0'
77+
java_version: '11' # JRuby 10 requires Java 21
78+
- jruby_version: '10.0.5.0'
79+
java_version: '17' # JRuby 10 requires Java 21
6680
- appraisal: 'rails70_rack22' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
6781
jruby_version: '9.3.15.0'
6882
- appraisal: 'rails71_rack22' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
6983
jruby_version: '9.3.15.0'
7084
- appraisal: 'rails72_rack22' # Requires Ruby 3.1 compatibility, which JRuby 9.3 does not support
7185
jruby_version: '9.3.15.0'
86+
- appraisal: 'rails80_rack22' # Requires Ruby 3.4 compatibility, which JRuby 9.3 does not support
87+
jruby_version: '9.3.15.0'
88+
- appraisal: 'rails80_rack22' # Requires Ruby 3.4 compatibility, which JRuby 9.4 does not support
89+
jruby_version: '9.4.14.0'
7290
fail-fast: false
7391

7492
env:

Appraisals

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
version_spec = ->(prefix, desc) { "~> #{desc.split(prefix).last.insert(1, ".")}.0" }
22

3-
# Rails version -> rack versions in format
4-
# rails#{MAJOR}#{MINOR} => %w[ rack#{MAJOR}#{MINOR} ]
3+
# rails#{MAJOR}#{MINOR} => config_obj
54
{
6-
"rails50" => %w[rack22],
7-
"rails52" => %w[rack22],
8-
"rails60" => %w[rack22],
9-
"rails61" => %w[rack22],
10-
"rails70" => %w[rack22],
11-
"rails71" => %w[rack22],
12-
"rails72" => %w[rack22]
13-
}.each do |rails_desc, rack_descs|
14-
rack_descs.each do |rack_desc|
5+
"rails50" => {racks: %w[rack22], ext_gems: %w[mutex_m bigdecimal base64]},
6+
"rails52" => {racks: %w[rack22], ext_gems: %w[mutex_m bigdecimal]},
7+
"rails60" => {racks: %w[rack22], ext_gems: %w[mutex_m bigdecimal]},
8+
"rails61" => {racks: %w[rack22], ext_gems: %w[mutex_m bigdecimal]},
9+
"rails70" => {racks: %w[rack22]},
10+
"rails71" => {racks: %w[rack22]},
11+
"rails72" => {racks: %w[rack22]},
12+
"rails80" => {racks: %w[rack22]},
13+
}.each do |rails_desc, c|
14+
c[:racks].each do |rack_desc|
1515

1616
appraise "#{rails_desc}_#{rack_desc}" do
1717
group :default do
1818
gem "rack", version_spec.call("rack", rack_desc)
1919
gem "rails", version_spec.call("rails", rails_desc)
20+
21+
c[:ext_gems]&.each do |gem_name|
22+
gem gem_name
23+
end
2024
end
2125
end
2226
end

gemfiles/rails50_rack22.gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ gem "rspec", group: :test
88
group :default do
99
gem "rack", "~> 2.2.0"
1010
gem "rails", "~> 5.0.0"
11+
gem "mutex_m"
12+
gem "bigdecimal"
13+
gem "base64"
1114
end
1215

1316
group :development do

gemfiles/rails52_rack22.gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ gem "rspec", group: :test
88
group :default do
99
gem "rack", "~> 2.2.0"
1010
gem "rails", "~> 5.2.0"
11+
gem "mutex_m"
12+
gem "bigdecimal"
1113
end
1214

1315
group :development do

gemfiles/rails60_rack22.gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ gem "rspec", group: :test
88
group :default do
99
gem "rack", "~> 2.2.0"
1010
gem "rails", "~> 6.0.0"
11+
gem "mutex_m"
12+
gem "bigdecimal"
1113
end
1214

1315
group :development do

gemfiles/rails61_rack22.gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ gem "rspec", group: :test
88
group :default do
99
gem "rack", "~> 2.2.0"
1010
gem "rails", "~> 6.1.0"
11+
gem "mutex_m"
12+
gem "bigdecimal"
1113
end
1214

1315
group :development do

gemfiles/rails80_rack22.gemfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake", "~> 13.3", group: :test, require: nil
6+
gem "rspec", group: :test
7+
8+
group :default do
9+
gem "rack", "~> 2.2.0"
10+
gem "rails", "~> 8.0.0"
11+
end
12+
13+
group :development do
14+
gem "appraisal", require: nil
15+
end

src/spec/ruby/jruby/rack/integration_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,10 @@
219219
it_should_behave_like 'a rails app'
220220
end
221221

222+
describe 'rails 8.0', lib: :rails80 do
223+
it_should_behave_like 'a rails app'
224+
end
225+
222226
def expect_to_have_monkey_patched_chunked
223227
@runtime.evalScriptlet "require 'rack/chunked'"
224228
script = %{

0 commit comments

Comments
 (0)