Basic checks
What's broken?
The ruby_llm.gemspec uses Gem.ruby_version to conditionally set the Faraday dependency, but this evaluates at gem build time, not install time.
Since the release workflow (.github/workflows/release.yml:24) uses ruby-version: "4.0", every published gem since v1.12.0 hardcodes faraday >= 2.0 instead of the intended >= 1.10.0.
How to reproduce
gem fetch ruby_llm -v 1.12.0
gem specification ruby_llm-1.12.0.gem | grep -A 5 'name: faraday'
- Observe
faraday >= 2.0 is baked in, despite the source code intending >= 1.10.0 for Ruby < 4.0
Compare with v1.11.0 (before the conditional was added):
gem fetch ruby_llm -v 1.11.0
gem specification ruby_llm-1.11.0.gem | grep -A 5 'name: faraday'
- Observe
faraday >= 1.10.0
Expected behavior
Published gems should allow faraday >= 1.10.0 for all Ruby versions, as intended by the else branch in the gemspec. Bundler should resolve to Faraday v2+ on Ruby 4.0 since Faraday v1 doesn't support it.
What actually happened
Every gem from v1.12.0 through v1.13.2 requires faraday >= 2.0, breaking users on older Faraday versions. Root cause is commit f3dfe31c which added the Gem.ruby_version conditional to ruby_llm.gemspec
Environment
- Ruby version: Any (issue is in the build pipeline, not runtime)
- RubyLLM version: 1.12.0 through 1.13.2
- Provider: N/A
- OS: N/A
Basic checks
What's broken?
The
ruby_llm.gemspecusesGem.ruby_versionto conditionally set the Faraday dependency, but this evaluates at gem build time, not install time.Since the release workflow (
.github/workflows/release.yml:24) usesruby-version: "4.0", every published gem since v1.12.0 hardcodesfaraday >= 2.0instead of the intended>= 1.10.0.How to reproduce
gem fetch ruby_llm -v 1.12.0gem specification ruby_llm-1.12.0.gem | grep -A 5 'name: faraday'faraday >= 2.0is baked in, despite the source code intending>= 1.10.0for Ruby < 4.0Compare with v1.11.0 (before the conditional was added):
gem fetch ruby_llm -v 1.11.0gem specification ruby_llm-1.11.0.gem | grep -A 5 'name: faraday'faraday >= 1.10.0Expected behavior
Published gems should allow
faraday >= 1.10.0for all Ruby versions, as intended by the else branch in the gemspec. Bundler should resolve to Faraday v2+ on Ruby 4.0 since Faraday v1 doesn't support it.What actually happened
Every gem from v1.12.0 through v1.13.2 requires
faraday >= 2.0, breaking users on older Faraday versions. Root cause is commitf3dfe31cwhich added theGem.ruby_versionconditional toruby_llm.gemspecEnvironment