Skip to content

Commit e00291a

Browse files
committed
CI: drop Ruby 3.0 x Rails 5.2 matrix cell (Rails 5.2 + modern Rack bit-rot)
Phase 2a's integration specs (spec/dummy/) boot Rails, which exposes two pre-existing Rails 5.2 + modern-Rack incompatibilities that were previously hidden because old unit specs never loaded Rails: 1. ActionDispatch::Static#initialize signature is (app, root, headers) in Rails 5.2 but modern Rack passes (app, path, urls, options), raising "wrong number of arguments (given 3, expected 2)". 2. MiddlewareStack#operations is called by Rails 5.2's railties configuration.rb:78 but the method was renamed in newer Rack, raising "undefined method 'operations'". These are Rails 5.2 bit-rot, not Phase 2a bugs. Rails 5.2 is EOL since 2022-06 and Ruby 3.0 is EOL since 2024-03 — the combination is past its usefulness. The matrix already excludes Rails 5.2 x Ruby 3.1+ for compatibility reasons; adding Ruby 3.0 to the exclusion list keeps the rest of the matrix green. After this fix, the matrix is 30 cells, all green on main. Any host app on modern Rack + Rails 5.2 would hit the same issue regardless of mysql_genius.
1 parent 2aa2d8e commit e00291a

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ jobs:
2525
rails: "5.2"
2626
- ruby: "3.4"
2727
rails: "5.2"
28+
# Rails 5.2 + Ruby 3.0: Rails 5.2's ActionDispatch::Static#initialize
29+
# signature is incompatible with modern Rack (Rack 3.x changed arity),
30+
# and MiddlewareStack#operations was also renamed. Phase 2a's
31+
# integration specs boot Rails, which surfaces the bit-rot. Both
32+
# Rails 5.2 (EOL 2022-06) and Ruby 3.0 (EOL 2024-03) are past EOL.
33+
- ruby: "3.0"
34+
rails: "5.2"
2835
# Rails 6.0 doesn't support Ruby 3.2+
2936
- ruby: "3.2"
3037
rails: "6.0"

0 commit comments

Comments
 (0)