Repository navigation
Bump CI to JRuby 10, drop obsolete jar-dependencies workaround - #40
Merged
Merged
Conversation
Bump jruby-9.4.15.0 -> jruby-10.0.6.0 (LTS line) in the CI matrix, and remove the JRuby-9.4.10 jar-dependencies ~> 0.4.1 workaround gem (upstream jruby/jruby#7262 is closed). Part of Phase 1 of the JRuby 10 upgrade (Rails stays ~> 7.2 for now). Validated locally: bundle install resolves cleanly under real JRuby 10.1.1.0/JDK21. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… crash CI on this branch (and on master, independent of this PR) was failing: NavigationTest#test_can_restart_bundle - "Expected response to be a <2XX: success>, but was a <500: Internal Server Error>". Root-caused by reproducing locally against a real killbill/killbill:0.24.0 instance and running the test directly (RAILS_ENV=test rails test): ArgumentError (unknown keyword: quirks_mode): json (3.0.1) lib/json/common.rb:382:in 'generate' activesupport (7.2.3.2) lib/active_support/json/encoding.rb:110:in 'stringify' killbill-client (4.0.9) lib/killbill_client/models/resource.rb:259:in 'to_json' killbill-client (4.0.9) lib/killbill_client/models/nodes_info.rb:53:in 'trigger_node_command' app/controllers/kpm/nodes_info_controller.rb:166:in 'trigger_node_command' json 3.0 dropped the quirks_mode keyword that ActiveSupport::JSON.encode still passes to JSON.generate (not fixed until Rails 8.1.0). This Gemfile had an unpinned `gem 'json'` in the :development group, which was incidentally protected until now by rubocop's own `json ~> 2.3` dependency - but rubocop 1.90.0 (released 2026-08-24) loosened that to `json >= 2.3` (no upper bound). Once json 3.0.0/3.0.1 were actually published (2026-09-07/08), any fresh `bundle install` (Gemfile.lock isn't committed in this repo) started resolving json 3.x, breaking any code path that calls #to_json - including killbill-client's own model classes, used throughout this engine's controllers. Pinned `gem 'json', '~> 2.21'` (same fix already applied to killbill-admin-ui-standalone for the same root cause) and moved it out of the :development group to file level, since Bundler.setup activates the locked version on the load path regardless of which group declares it - grouping alone would not have prevented the crash. Verified fix: reproduced the exact CI Docker stack locally (killbill/ killbill:0.24.0 + killbill/postgresql:0.24 via docker compose), ran the previously-failing test directly against it - now passes, along with the full test suite (3 runs, 3 assertions, 0 failures, 0 errors). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The json version constraint is only applied in the Gemfile and should also be expressed as a runtime dependency in the gemspec if it’s required for downstream consumers.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates the repository’s JRuby upgrade track by moving CI to JRuby 10 and cleaning up dependency workarounds associated with older JRuby releases, while also adding a Gemfile constraint to avoid json 3.x incompatibilities with ActiveSupport JSON encoding.
Changes:
- Bump GitHub Actions CI matrix JRuby version from 9.4.15.0 to 10.0.6.0.
- Remove the JRuby-specific
jar-dependencies ~> 0.4.1workaround tied to an older JRuby issue. - Pin
jsonto a 2.x line in the Gemfile to avoidjson3.x breaking behavior withActiveSupport::JSON.encode.
File summaries
| File | Description |
|---|---|
| Gemfile | Adds a json pin and removes the JRuby jar-dependencies workaround. |
| .github/workflows/ci.yml | Updates CI matrix JRuby version entries to JRuby 10.0.6.0. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Part of Phase 1 of the JRuby 10 upgrade (Rails stays ~> 7.2 for now). Bumps CI from jruby-9.4.15.0 to jruby-10.0.6.0 (LTS line), and drops the JRuby-9.4.10
jar-dependencies ~> 0.4.1workaround (upstream jruby/jruby#7262 is closed). Validated locally:bundle installresolves cleanly under real JRuby 10.1.1.0/JDK21. Note: this is the Rails engine UI for KPM, distinct from killbill-cloud/kpm (the CLI tool).