Add Rails 8.1 support#116
Merged
patbenatar merged 16 commits intomasterfrom Apr 6, 2026
Merged
Conversation
- Bump activesupport, actionview, and rails upper bounds from < 7.3 to < 8.2 - Add explicit `require "ostruct"` (no longer auto-loaded in newer Ruby/Rails) - Filter `lazy_route_set.rb` frames from component backtraces (new in Rails 8.1) - Add Rails 8.1 appraisal - Update Dockerfile to Ruby 3.3.5 All 162 specs pass against Rails 8.1.3. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add rails_7_2 and rails_8_1 to CI test matrix - Regenerate all appraisal lockfiles with updated gemspec bounds Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CI runs on x86_64-linux, but lockfiles were generated on aarch64-linux only. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Bump minimum Rails to >= 7.0 (was >= 6) - Bump minimum Ruby to >= 3.2 (was >= 3.1, which is EOL) - Remove Rails 6.x code paths in ComponentTemplateResolver - Remove Rails 6.1 appraisal and CI matrix entry - Remove Ruby 3.1 from CI matrix - Pin sqlite3 ~> 1.4 for Rails 7.0 appraisal (7.0 incompatible with sqlite3 2.x) - Regenerate all lockfiles Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rails 8.1 changed ERBTracker#render_dependencies to only scan for
render calls inside <%= %> delimiters. Rbexy uses {expr} syntax,
so render calls in .rbx templates were no longer detected.
Subclass ERBTracker instead of delegating to it, overriding only
render_dependencies to scan for render calls inside both {expr}
and <%= %> delimiters. This preserves ERBTracker's explicit_dependencies,
WildcardResolver, and argument parsing (RENDER_ARGUMENTS, LAYOUT_DEPENDENCY).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rails master (8.2.alpha) requires Ruby >= 3.3.1. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rails master is a moving target and breaks frequently due to upstream alpha changes unrelated to Rbexy. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Bump minimum Ruby to >= 3.3.0 - CI matrix now tests Ruby 3.3, 3.4, 4.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ruby 3.4 and 4.0 have test failures that need separate investigation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rails 8.1 added @view_context.safe_join calls in TagBuilder#tag_options for array-valued class and aria attributes. Runtime.tag_builder was passing nil as the view_context, causing NoMethodError. Pass a Runtime instance as the view_context instead — it includes ActionView::Helpers::TagHelper which provides safe_join. Added regression test: nested components with array class splat attrs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
activesupport,actionview, andrailsupper bounds from< 7.3to< 8.2require "ostruct"— no longer auto-loaded in newer Ruby/Railslazy_route_set.rbframes from component backtraces (new internal frame in Rails 8.1)