Skip to content

Pin rdoc below 8 to fix JRuby CI#831

Merged
crmne merged 2 commits into
crmne:mainfrom
xymbol:fix-jruby-ci-rdoc-8
Jul 3, 2026
Merged

Pin rdoc below 8 to fix JRuby CI#831
crmne merged 2 commits into
crmne:mainfrom
xymbol:fix-jruby-ci-rdoc-8

Conversation

@xymbol

@xymbol xymbol commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

What this does

rdoc 8.0.0 (released 2026-06-26) added a runtime dependency on rbs >= 4.0.0. On JRuby, Bundler resolves rails → railties → irb → rdoc 8.0.0 → rbs 4.0.3, and rbs 4.0.3 ships only a ruby-platform gem whose C extension (ext/rbs_extension) fails to compile under JRuby 10 (append_cflags fails in extconf.rb).

Since no lockfiles are committed, every CI job resolves gems fresh — so the Test (jruby-10.0.2.0 / rails-7.1) matrix cell has failed during bundle install on every PR run since 2026-06-26 (e.g. #830's run), before tests even start, and its failure fail-fast-cancels the rest of the matrix. main's last run (2026-06-23) predates the rdoc release, which is why it's still green.

This pins rdoc < 8 in the Gemfile's development group and regenerates the appraisal gemfiles with bundle exec appraisal generate so the pin propagates to all matrix cells. rdoc 7.2.0 has no rbs dependency, so JRuby no longer attempts the native build.

The pin can be dropped once rbs ships a final release with a java-platform gem (4.1.0.pre.2 already includes one) or rdoc relaxes the hard rbs dependency.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Performance improvement

Scope check

  • I read the Contributing Guide
  • This aligns with RubyLLM's focus on LLM communication
  • This isn't application-specific logic that belongs in user code
  • This benefits most users, not just my specific use case

Required for new features

N/A — CI dependency fix.

Quality check

  • I ran overcommit --install and all hooks pass
  • I tested my changes thoroughly
    • For provider changes: Re-recorded VCR cassettes with bundle exec rake vcr:record[provider_name] (N/A — Gemfile-only change, no provider/HTTP code touched)
    • All tests pass: fresh bundle install resolves rdoc to 7.2.0 (no rbs in the tree) and require 'ruby_llm' loads cleanly; no library or spec code changed
  • I updated documentation if needed (none needed)
  • I didn't modify auto-generated files manually (models.json, aliases.json) (appraisal gemfiles regenerated via bundle exec appraisal generate)

API changes

  • Breaking change
  • New public methods/classes
  • Changed method signatures
  • No API changes

rdoc 8.0.0 added a runtime dependency on rbs >= 4.0.0, whose C
extension fails to compile on JRuby (rbs publishes no java platform
gem for 4.0.x). Every fresh bundle install on the JRuby matrix cell
has failed since rdoc 8.0.0 was released on 2026-06-26.

Pin rdoc to < 8 and regenerate the appraisal gemfiles. The pin can
be dropped once rbs ships a java platform release (4.1.0.pre.2
already includes one) or rdoc relaxes the dependency.
@codecov

codecov Bot commented Jul 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.90%. Comparing base (8595adb) to head (232550f).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #831   +/-   ##
=======================================
  Coverage   81.90%   81.90%           
=======================================
  Files         169      169           
  Lines        7713     7713           
  Branches     1284     1284           
=======================================
  Hits         6317     6317           
  Misses        884      884           
  Partials      512      512           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread Gemfile Outdated
gem 'pry', '>= 0.14'
gem 'rails'
gem 'rake', '>= 13.0'
gem 'rdoc', '< 8'

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gem 'rdoc', '< 8', platform: 'jruby'

Then regen the appraisal gemfiles

@crmne crmne left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I pushed the small follow-up to make the rdoc pin JRuby-only and regenerate the appraisal gemfiles.

@crmne crmne merged commit 3a81725 into crmne:main Jul 3, 2026
4 of 42 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants