Repository navigation
Hold json below 3 for the Rails 8.0 build - #109
Conversation
Active Support 8.0.5.1, the latest 8.0 release, passes quirks_mode: to
JSON.generate and JSON.parse. json 3.0 (2026-09-07) rejects the keyword,
so every rails_8_0 job fails ("unknown keyword: quirks_mode"): 22 of 62
tests locally with json 3.1.0, 0 with json 2.21.2. 8-0-stable stopped
passing it in rails/rails@2786de26c6, but no 8.0 release has it yet.
Pin json for that appraisal only, and drop the pin once one does.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
🟢 Approved
No active review issues are reported for the Rails 8.0 JSON version constraint.
No open issues 🎉
What changed in this PR
This PR constrains json to versions below 3 in the Rails 8.0 test configuration to avoid Active Support’s incompatible quirks_mode calls. Other Rails appraisals remain unchanged.
Changes:
- Adds
json < 3to the Rails 8.0 appraisal and its generated Gemfile. - Documents the upstream fix and when to remove the constraint.
[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or rungh pr ready --undo.
Click "Ready for review" or rungh pr readyto reengage.
| File | Description |
|---|---|
gemfiles/rails_8_0.gemfile |
Adds the JSON version constraint for Rails 8.0 builds. |
Appraisals |
Defines the constraint and documents its removal condition. |
Review effort: Balanced
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard. |
Every
rails_8_0job has failed since json 3.0 shipped on 2026-09-07, on master and on every PR (#108's run included):ArgumentError: unknown keyword: quirks_mode.The cause is in Rails, not here. Active Support 8.0.5.1, the latest 8.0 release, calls
JSON.generate(…, quirks_mode: true, max_nesting: false)andJSON.parse(…, quirks_mode: true), and json 3 rejects the keyword. 8-0-stable fixed this in rails/rails@2786de26c6, but no 8.0 release carries the fix yet. Rails 7.2, 8.1 and edge don't pass the keyword, so they pass.This pins
json < 3in therails-8-0appraisal (Appraisalsandgemfiles/rails_8_0.gemfile) only, with a note to drop it once an 8.0 release has the fix.Locally with the Rails 8.0 gemfile: 22 of 62 tests fail under json 3.1.0, and 62 of 62 pass under json 2.21.2 with the pin.