Skip to content

Conversation

@zetter-rpf
Copy link
Contributor

@zetter-rpf zetter-rpf commented Feb 4, 2026

What's changed?

Upgrade to ruby 3.4.8 (the latest 3.x.x release)
Also upgrade to newer bundler (4.0.5) so ruby version can be specified in the .ruby-version file.

I'm doing this primarily because I can't run Rubocop locally due to older versions of ruby being built on older versions of OpenSSL which don't accept the certificates for our remote Rubocop config. There are other ways to solve this problem, but we get other benefits from being on a newer Ruby release.

Steps to perform after deploying to production

I will check this in the staging environment

@cla-bot cla-bot bot added the cla-signed label Feb 4, 2026
Also upgrade to newer bundler so ruby version can be specified in ruby file.

I'm doing this primarilly because I can't run Rubocop locally due to older version of ruby being built on older versions of OpenSSL which don't accept the certificates for our remote rubocop config.
It looks like ruby 3.4.x is no longer being built for bullseye so use a more recent debian OS.

Also, python2-dev is no longer available as a package. As far as I can see python isn't used so remove it.
Copy across the .ruby-version file so bundler knows what version to use. Also --path is no longer supported so remove it.
This wasn't working correctly as it was looking for files that didn't exist.
@zetter-rpf zetter-rpf marked this pull request as ready for review February 4, 2026 14:01
Copilot AI review requested due to automatic review settings February 4, 2026 14:01
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the application’s runtime/tooling to Ruby 3.4.8 and aligns local/CI/container environments accordingly, including upgrading Bundler to support sourcing the Ruby version from .ruby-version.

Changes:

  • Bump Ruby version to 3.4.8 across .ruby-version, .tool-versions, CircleCI, and Docker.
  • Update Bundler version in Gemfile.lock and switch Gemfile Ruby declaration to read from .ruby-version.
  • Add explicit base64 and csv dependencies (now treated as gems in newer Ruby setups).

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Gemfile.lock Updates Ruby version and Bundler version; adds base64/csv dependencies.
Gemfile Reads Ruby version from .ruby-version; adds base64/csv gems.
Dockerfile Moves base image to Ruby 3.4.8 on Debian trixie; adjusts bundle/binstubs setup and COPY inputs.
.tool-versions Updates asdf Ruby version to 3.4.8.
.ruby-version Updates Ruby version file to ruby-3.4.8.
.circleci/config.yml Updates CI Ruby images to 3.4 series.
Comments suppressed due to low confidence (1)

.circleci/config.yml:8

  • CI images were bumped to Ruby 3.4, but the lockfile now specifies BUNDLED WITH 4.0.5. If the cimg/ruby:3.4* images (or the ruby/install-deps orb) don’t provide Bundler 4.x by default, bundle install will fail with a “use Bundler 4.x” error. Consider explicitly installing/pinning Bundler 4.0.5 in this job (or configuring the orb to use it) to keep CI deterministic.
    docker:
      - image: "cimg/ruby:3.4"
    steps:
      - checkout
      - ruby/install-deps
      - ruby/rubocop-check:

Bundler and most version managers support .tool-versions now so it's one less place to keep up to date
Suggested by Copilot, I don't think it is more secure as it already is key verified.
@zetter-rpf zetter-rpf merged commit 8f4e628 into main Feb 5, 2026
6 checks passed
@zetter-rpf zetter-rpf deleted the upgrade-ruby-to-3.4 branch February 5, 2026 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants