Skip to content

Update to ruby 3.4#4665

Merged
aaccensi merged 9 commits intomasterfrom
update-ruby3.4
Mar 23, 2026
Merged

Update to ruby 3.4#4665
aaccensi merged 9 commits intomasterfrom
update-ruby3.4

Conversation

@aaccensi
Copy link
Contributor

@aaccensi aaccensi commented Mar 2, 2026

Context

With the goal to update Ruby/Rails stack apps to Ruby 4 and Rails 8 (etengine, etmodel, etlocal, my-etm).
Now we are making a in-between step to Ruby 3.4 to be able to run respec with deprecation warnings.
Then finally update to Rails 8.1, fix any issues and adopt the Solid Stack where relevant.

Implemented changes

  1. Bumped the internal gems versions to use the newest commits (made Ruby 4 ready in another set of PRs).

  2. Upgrade to Ruby 3.4 and run rspec with deprecation warnings:

    • fixture_path → fixture_paths
    • Update shoulda-matchers gem version
    • Update dry-* gems versions
  3. Upgrade to Rails 8.1 and fix issues:

    • Bump necessary gems
    • Change error messages
    • Lowercase headers
  4. Delete Action Cable references

  5. Configure Solid Cache (Replaced Memcached/dalli)

    • For semaphore to work the db config has been changed (in line with etengine)

Note that some configuration is necessary, we added a dedicated DB for Solid Cache, that needs configuring some env vars:

  • CACHE_DATABASE
  • CACHE_DATABASE_URL

Related

This is one of 5 PRs with the same purpose across the following 4 repos:

Checklist

  • I have tested these changes
  • I have updated documentation as needed
  • I have tagged the relevant people for review

@aaccensi aaccensi mentioned this pull request Mar 2, 2026
3 tasks
@aaccensi aaccensi force-pushed the update-ruby3.4 branch 9 times, most recently from ceed0f7 to 7334ad0 Compare March 4, 2026 13:56
@aaccensi aaccensi marked this pull request as ready for review March 11, 2026 15:07
@aaccensi aaccensi requested a review from a team as a code owner March 11, 2026 15:07
@aaccensi aaccensi requested review from noracato and removed request for a team March 11, 2026 15:08
@aaccensi aaccensi mentioned this pull request Mar 17, 2026
3 tasks
Copy link
Member

@noracato noracato left a comment

Choose a reason for hiding this comment

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

Works like a charm, nicely done!

There are some gems that can go, and puma could be bumped. But we can make issues for those, and pick it up later in the project if you agree.

Gemfile Outdated
Comment on lines 77 to 81
gem 'capistrano', '~> 3.9', require: false
gem 'capistrano3-puma', '~> 5.0.4', require: false
gem 'capistrano3-puma', '~> 6.0', require: false
gem 'capistrano-bundler', '~> 1.1', require: false
gem 'capistrano-maintenance', '~> 1.0', require: false
gem 'capistrano-rails', '~> 1.1', require: false
Copy link
Member

Choose a reason for hiding this comment

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

Capistrano can be removed, we don't use it anymore

gem 'webmock', '>= 3.5'
end

gem 'puma'
Copy link
Member

Choose a reason for hiding this comment

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

ETModel now uses puma 6, where the other apps use puma 7.
We can pick this up now, or note it for later.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is very easy to pick up now. Seems like Capistrano is what held back Puma, if Capistrano is not needed anymore we can remove it and quickly bring Puma on pair with the rest of Repos

Fixes include moving puma to all environments, upgrading capistrano3-puma to v6 for Rack 3 compatibility, and updating spec assertions to match changed Rails 8 error messages.
Nothing to migrate to Solid Cable since it is entirely unused therefore only cleanup.
Replaces Memcache(Dalli)
@aaccensi aaccensi merged commit 1cf9eb4 into master Mar 23, 2026
2 checks passed
@aaccensi aaccensi deleted the update-ruby3.4 branch March 23, 2026 10:05
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