Skip to content

chore: update all dependencies and Ruby to 3.4.10#98

Merged
jgnagy merged 3 commits into
mainfrom
chore/update-dependencies-ruby
Jul 7, 2026
Merged

chore: update all dependencies and Ruby to 3.4.10#98
jgnagy merged 3 commits into
mainfrom
chore/update-dependencies-ruby

Conversation

@jgnagy

@jgnagy jgnagy commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

Updates all project dependencies and Ruby to the latest 3.4.x patch release.

Changes

Ruby version: 3.4.4 → 3.4.10

  • .ruby-version: updated to 3.4.10
  • Dockerfile: both FROM stages updated to ruby:3.4.10
  • CI matrix references '3.4' which resolves to latest 3.4.x at runtime — no change needed

Gemspec constraints widened for major version bumps

Dependency Old constraint New constraint Resolved version
openssl ~> 3.0 \>= 3.0, < 5.0 4.0.2
sinatra ~> 3.1 \>= 3.1, < 5.0 4.2.1
sinatra-contrib ~> 3.1 \>= 3.1, < 5.0 4.2.1
bundler (dev) ~> 2.4 \>= 2.4, < 5.0 2.7.2
byebug (dev) ~> 11 \>= 11, < 14 13.0.0

Notable resolved updates

  • activesupport/activerecord/activemodel: 8.0.4.1 → 8.1.3
  • rubocop: 1.80.0 → 1.88.1
  • rubocop-rspec: 3.6.0 → 3.10.2
  • rspec: 3.13.1 → 3.13.2
  • itsi: 0.2.19 → 0.2.27
  • solargraph: 0.56.0 → 0.60.2
  • httparty: 0.23.0 → 0.24.2
  • dry-configurable: 1.1.0 → 1.4.0
  • acme-client: 2.0.25 → 2.0.32
  • sqlite3: 2.7.x → 2.9.5
  • trilogy: 2.9.0 → 2.12.6
  • yard: 0.9.37 → 0.9.44
  • jwt: 3.2.0 (via prior dependabot constraint widening)

Code changes

  • lib/bullion.rb: RuboCop 1.88 introduced Style/YodaCondition as a new cop, which flagged two comparisons. Autocorrected by reversing operand order. No behavioral change.
  • db/schema.rb: Regenerated by ActiveRecord 8.1.3 (minor formatting changes from the newer schema dumper). No schema changes.

Testing

All three quality gates verified locally with Ruby 3.4.10:

  • bundle exec rubocop: 46 files, 0 offenses
  • bundle exec rake spec: 65 examples, 0 failures
  • bundle exec rake yard: builds successfully

Security Impact

Sinatra 4.x and OpenSSL 4.x are major version bumps. Sinatra 4.x changes are primarily internal (Rack 3 compatibility, removed deprecated APIs). OpenSSL gem 4.x includes Ruby 3.4 compatibility improvements. Neither introduces known breaking changes for Bullion's usage patterns. The full test suite passes, including ACME protocol flows, challenge validation, and crypto operations across RSA, ECDSA, and EdDSA key types.

Jonathan Gnagy added 3 commits July 6, 2026 21:21
Ruby:
- .ruby-version: 3.4.4 -> 3.4.10
- Dockerfile: ruby:3.4.4 -> ruby:3.4.10 (both stages)

Gemspec constraints widened for major version bumps:
- openssl: ~> 3.0 -> >= 3.0, < 5.0 (now resolves to 4.0.2)
- sinatra: ~> 3.1 -> >= 3.1, < 5.0 (now resolves to 4.2.1)
- sinatra-contrib: ~> 3.1 -> >= 3.1, < 5.0 (now resolves to 4.2.1)
- bundler (dev): ~> 2.4 -> >= 2.4, < 5.0 (now resolves to 2.7.2)
- byebug (dev): ~> 11 -> >= 11, < 14 (now resolves to 13.0.0)

Notable resolved updates:
- activesupport/activerecord/activemodel: 8.0.4.1 -> 8.1.3
- rubocop: 1.80.0 -> 1.88.1
- rubocop-rspec: 3.6.0 -> 3.10.2
- rspec: 3.13.1 -> 3.13.2
- itsi: 0.2.19 -> 0.2.27
- solargraph: 0.56.0 -> 0.60.2
- httparty: 0.23.0 -> 0.24.2
- dry-configurable: 1.1.0 -> 1.4.0
- acme-client: 2.0.25 -> 2.0.32
- sqlite3: 2.7.x -> 2.9.5
- trilogy: 2.9.0 -> 2.12.6
- yard: 0.9.37 -> 0.9.44
- jwt: 3.2.0 (via prior dependabot constraint widening)

RuboCop 1.88 introduced Style/YodaCondition as a new cop, which
flagged two comparisons in lib/bullion.rb. Autocorrected by
reversing operand order.

db/schema.rb regenerated by ActiveRecord 8.1.3 (minor formatting
changes from the newer schema dumper).

Verification:
- rubocop: 46 files, 0 offenses
- rake spec: 65 examples, 0 failures
- rake yard: builds successfully
Sinatra 4.x introduced a new host_authorization setting that blocks
requests with unpermitted hosts (defaults to .localhost and .test in
development/test, returns 403 'Host not permitted' otherwise).

Bullion is an ACME API server that should accept requests regardless
of the Host header value. Setting permitted_hosts to [] disables the
host check entirely, matching the pre-4.x behavior.

This caused 38 test failures in CI because rack-test sends requests
with the default host 'example.org', which is not in the permitted
hosts list for the test environment.
The Ping service inherits from Sinatra::Application (not Bullion::Service),
so it did not inherit the host_authorization fix from the previous commit.
This caused 2 remaining test failures in CI.
@jgnagy
jgnagy merged commit 71b83c8 into main Jul 7, 2026
3 checks passed
@jgnagy
jgnagy deleted the chore/update-dependencies-ruby branch July 7, 2026 04:31
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.

1 participant