Skip to content

Comments

fix: Update dependencies to support GCC 14 / Debian 13#16

Merged
facundofarias merged 2 commits intomasterfrom
add-test-suite-and-multi-ruby-ci
Feb 19, 2026
Merged

fix: Update dependencies to support GCC 14 / Debian 13#16
facundofarias merged 2 commits intomasterfrom
add-test-suite-and-multi-ruby-ci

Conversation

@facundofarias
Copy link
Contributor

@facundofarias facundofarias commented Feb 19, 2026

Summary

  • Relax pinned dependencies (nio4r 2.1.0 → ~> 2.7, timers 4.1.2 → ~> 4.3, rb-readline 0.5.5 → ~> 0.5) to fix compilation failures on Debian 13 / GCC 14
  • nio4r 2.1.0 uses a function pointer type (VALUE (*)(void *)) where GCC 14 now requires void * (*)(void *), promoting -Wincompatible-pointer-types from warning to error
  • timers 4.3 also drops the hitimes native extension dependency, reducing further compilation risk

Context

A customer on Debian 13 (Ruby 3.3, GCC 14) cannot install the agent at all — gem install deploy-agent fails during native extension compilation.

Test plan

  • All 17 RSpec tests pass locally
  • RuboCop passes with no offenses
  • CI matrix (Ruby 2.7–3.4) passes with the updated dependencies
  • Manually verified: gem builds and installs successfully on Fedora (Ruby 3.3, GCC 14, nio4r 2.7.5, timers 4.4.0)
  • Manually verified: agent runs correctly after installation

🤖 Generated with Claude Code

nio4r 2.1.0 fails to compile with GCC 14 (shipped in Debian 13) because
-Wincompatible-pointer-types is now treated as an error. Relax dependency
pins to allow nio4r ~> 2.7, timers ~> 4.3, and rb-readline ~> 0.5.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

Walkthrough

Updated gem dependency version constraints in deploy-agent.gemspec, replacing exact version pins with pessimistic version ranges for nio4r (> 2.7), rb-readline (> 0.5), and timers (~> 4.3). No logic or behavioral changes introduced.

Changes

Cohort / File(s) Summary
Dependency Version Updates
deploy-agent.gemspec, lib/deploy_agent/agent.rb
Updated gem dependency specifications to use pessimistic version ranges instead of exact pins for nio4r, rb-readline, and timers.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested reviewers

  • thdurante
  • MartaKar

Poem

🐰 A version update hops by,
From pins exact to ranges spry,
Pessimistic constraints in place,
Dependencies embrace their space! 🎉

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: updating dependencies to support GCC 14 and Debian 13, which directly aligns with the PR objectives and the specific dependency version updates in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add-test-suite-and-multi-ruby-ci

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@lib/deploy_agent/agent.rb`:
- Around line 1-2: Remove the explicit gem activation calls for 'nio4r' and
'timers' from the library file (the lines calling gem 'nio4r', '~> 2.7' and gem
'timers', '~> 4.3') so that dependency resolution is left to the gemspec
(s.add_dependency) and Bundler; simply delete those two gem lines from agent.rb
to avoid runtime gem activation on require and potential version conflicts.

Dependency resolution is already handled by the gemspec's add_dependency
declarations. Explicit gem activation calls can cause version conflicts
when multiple versions are installed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@facundofarias facundofarias merged commit 6a75ad0 into master Feb 19, 2026
12 checks passed
@facundofarias facundofarias deleted the add-test-suite-and-multi-ruby-ci branch February 19, 2026 08:58
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