Repository navigation
Test the gem on Ruby 3.4.11, the version its consumers actually run - #5
Conversation
The gem's Dockerfile built on ruby:3.2.2-slim and CI pinned a floating "3.2", so this gem was verified exclusively against a Ruby that no consumer uses - and an EOL one, since 3.2 went EOL 2026-03-31 and 3.2.2 was not even the final patch of that line. Both consumers moved to Ruby 3.4.11 in the fleet walk (rheos/growoperative-api#55): railsbackend and onloan-api each pull this gem by git tag. So the wire contracts this gem exists to pin were being asserted on 3.2 and executed on 3.4. The floating "3.2" is the same failure shape foaf-protocol had with its `ruby "~> 3.2"` and `rails "~> 7.1"` constraints: a floating pin keeps resolving onto an aging line without ever looking out of date. Suite green on 3.4.11: 36 examples, 0 failures, 1 pending. Note not addressed here: the gemspec claims required_ruby_version = ">= 2.7" and nothing tests that floor. It is either aspirational or wants a CI matrix; worth deciding deliberately rather than leaving both untested and unstated. Refs rheos/growoperative-api#55 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe test workflow and Docker base image now use Ruby 3.4.11. The workflow comments describe the consumer fleet’s Ruby version and the prior version’s end-of-life status. ChangesRuby version update
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~5 minutes Change: Other Merge Risk: ⚪ Minimal · up to The test workflow and gem container now target Ruby 3.4.11, matching the stated consumer runtime. The inspected changes reveal no actionable merge-blocking risk; CI and Docker execution were not independently verified. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Found while auditing Dockerfile Ruby versions after the fleet walk (rheos/growoperative-api#55).
The gap
gem/Dockerfilebuilt onruby:3.2.2-slimand CI pinned a floating"3.2". So this gem was verified exclusively against a Ruby that no consumer uses — and an EOL one, since 3.2 went EOL 2026-03-31 and 3.2.2 was not even the final patch of that line.Both consumers moved to Ruby 3.4.11 in the fleet walk — railsbackend and onloan-api each pull this gem by git tag. So the wire contracts this gem exists to pin were being asserted on 3.2 and executed on 3.4.
The floating
"3.2"is the same failure shape foaf-protocol had with itsruby "~> 3.2"andrails "~> 7.1"constraints: a floating pin keeps resolving onto an aging line without ever looking out of date. That is how foaf-protocol ended up on 7.2.3.2 while the rest of the fleet sat on 7.1.6, with nobody having decided either.Verification
Built the gem's own Dockerfile on 3.4.11 (it needs libsecp256k1 native deps, so the image is the right harness) and ran the suite with the
contracts/fixtures mounted:36 examples, 0 failures, 1 pending. The gem was already fine on 3.4 — it had simply never been run there.
Not addressed here
The gemspec claims
required_ruby_version = ">= 2.7"and nothing tests that floor. It is either aspirational or it wants a CI matrix. Worth deciding deliberately rather than leaving the claim both untested and unstated — but that is a separate change from closing the consumer-parity gap.Refs rheos/growoperative-api#55
Summary by CodeRabbit