Skip to content

Upgrade Ruby, Rails, and dependencies; refactor job processing - #217

Merged
rsmoke merged 15 commits into
mainfrom
staging
Jul 23, 2026
Merged

Upgrade Ruby, Rails, and dependencies; refactor job processing#217
rsmoke merged 15 commits into
mainfrom
staging

Conversation

@rsmoke

@rsmoke rsmoke commented Jul 23, 2026

Copy link
Copy Markdown
Member

This pull request upgrades the application from Ruby on Rails 7.2 / Ruby 3.3.4 to Rails 8.1 / Ruby 4.0.6, and migrates the job, cache, and cable infrastructure from Sidekiq/Redis to Solid Queue, Solid Cache, and Solid Cable. It also updates several dependencies, improves Sentry integration for frontend and backend error tracking, and updates code to match new gem versions and APIs.

Framework and Infrastructure Upgrades

  • Upgraded Ruby to 4.0.6 and Rails to 8.1, updating .ruby-version, .tool-versions, Gemfile, and workflow files accordingly. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-1bdb3279c7718f7037156f83c80eb81c58d37b286e027219e055b76249082264L1-R1), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-751af1a340658c7b8176fe32d7db9fadbe15d1d075daba1919a91df04155bc70L1-R1), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL6-R39), [[4]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-44529fb6e227a6364059d067de38ae3671d17e33d02604c2ce01482aaa91e0bdL24-R24), [[5]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L3-R4), [[6]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L17-R24))
  • Migrated from Sidekiq/Redis to Solid Queue, Solid Cache, and Solid Cable for background jobs, caching, and Action Cable, including configuration changes and removal of Sidekiq/Redis references. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL6-R39), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL41-L48), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-0a99231995da379e7aebabe76c9d849a23737a42c3b3a8994043e2aa80958424L2), [[4]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-661620ae7be69a63f01b319f70bb6e3e0f6183b59258e9ed7aee623d75f17d90R1-R25), [[5]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-42b53cb337c218981187f92ed9b99d6d53ad7ce52bfe43460809cb265a47d612R1-R20), [[6]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L17-R24), [[7]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L62-R79))
  • Updated config/application.rb to use config.load_defaults 8.1, enable autoload_lib, and remove Redis-based rate limiting. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-c1fd91cb1911a0512578b99f657554526f3e1421decdb9e908712beab57e10f9L28-R32), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-c1fd91cb1911a0512578b99f657554526f3e1421decdb9e908712beab57e10f9L43-L58))

Dependency and Asset Pipeline Updates

  • Updated and added several gems to match Rails 8.1 requirements (e.g., pagy, devise, propshaft, solid_queue, solid_cache, solid_cable, mission_control-jobs), and removed unused or incompatible gems. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL6-R39), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL41-L48), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL58), [[4]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55fL68))
  • Switched asset pipeline from Sprockets to Propshaft, removing Sprockets manifest and updating stylesheet includes. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-12fd523cb95d119382c3743591e40c90ae62ed20b24a7012b37aed54031009b8L1-L4), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-f43fe075643e681b2c01c2f853bb0c4299d135b47fcbd4da96890d521c49e3ebL9-R10), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-e396399f8eec45f5ce6ddecf9d6a2ee9b4531b396fd9705f9bc054c0bf2f5301L1-L4))

Sentry Error Tracking Improvements

  • Added Sentry meta tags via a new sentry_meta_tags helper, and integrated Sentry error logging on the frontend (app/javascript/application.js) with environment-aware configuration and noise filtering. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-5222e189a6ddb8009624d265baced25227704de85dfe2e15616a4f76b8493e21R1-R17), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-baa2004cc77a893ed291cbf22ae1a4f3b8476a67d4581ea3928109e5ea211df4R2), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-baa2004cc77a893ed291cbf22ae1a4f3b8476a67d4581ea3928109e5ea211df4R11-R45), [[4]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-f43fe075643e681b2c01c2f853bb0c4299d135b47fcbd4da96890d521c49e3ebL9-R10))

Code and API Compatibility Updates

  • Updated Pagy usage to new API (Pagy::Method and @pagy.series_nav(:bootstrap)) and adjusted controller and helper code accordingly. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-766c34fd6533171eaf54300c153f89d6002c35c02cfc9c5b219251f85180ad07L5-R5), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-6a99efa80edd8d6bb91cb7b8cd1ac5273c610329aa7993ee0f4071334a5a023fR19-R29), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-23260bef2170b043b853d972b8f98b4f06869ade41f515795124872f4b311144L4-L5), [[4]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-e9415b98fc75b7c46b31bf661cb0d41682a174f12afc7a272202ca20327c6c19L80-R80))
  • Improved Sentry context setting in ApplicationController for better parameter filtering. ([app/controllers/application_controller.rbL71-R78](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-766c34fd6533171eaf54300c153f89d6002c35c02cfc9c5b219251f85180ad07L71-R78))

Other Improvements

  • Added user affiliations display in the user dashboard. ([app/views/users_dashboard/show.html.erbR31-R41](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-16d24dadc72f72c52d9f10117e788ff6bcf12d1383115284d239624db9b0d293R31-R41))
  • Updated documentation in README.md to reflect all infrastructure and operational changes. ([[1]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L17-R24), [[2]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L40-R54), [[3]](https://github.com/lsa-mis/lsa_evaluate/pull/217/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L62-R79))

These changes modernize the application stack, improve operational reliability, and lay the groundwork for future Rails 8.1 features.

rsmoke and others added 15 commits July 14, 2026 18:12
…dekiq integration

- Updated Ruby version from 3.3.4 to 4.0.1 and Rails version from 7.2 to 8.1.
- Refactored Gemfile to include new dependencies and remove Sidekiq, replacing it with Solid Queue for background job processing.
- Adjusted database configurations to support multiple databases for primary, queue, cache, and cable.
- Updated application and environment configurations to reflect changes in job processing and caching strategies.
- Modified views and controllers to accommodate new pagination methods and removed deprecated assets.
- Enhanced README documentation to reflect the updated technical specifications and installation instructions.
- Added x86_64-linux to the list of supported platforms in Gemfile.lock to ensure compatibility with additional environments.
…alization

- Modified the Puma configuration to prevent the use of ActiveSupport methods (e.g., present?) before Rails boots, ensuring compatibility and stability during server startup.
…nd documentation

- Updated .ruby-version and .tool-versions to reflect the new Ruby version.
- Modified Gemfile and Gemfile.lock to specify Ruby 4.0.6.
- Updated README.md to include the new Ruby version in technical specifications and installation instructions.
- Adjusted GitHub workflow configuration for Brakeman to use Ruby 4.0.6.
- Upgraded bootsnap from 1.18.4 to 1.24.6 for improved performance.
- Updated msgpack from 1.7.2 to 1.8.3 to ensure compatibility with dependencies.
Bumps the npm_and_yarn group with 1 update in the / directory: [js-yaml](https://github.com/nodeca/js-yaml).


Updates `js-yaml` from 3.14.2 to 3.15.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.2...3.15.0)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.15.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the bundler group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [devise](https://github.com/heartcombo/devise) | `4.9.4` | `5.0.4` |
| [puma](https://github.com/puma/puma) | `6.4.3` | `7.2.1` |
| [addressable](https://github.com/sporkmonger/addressable) | `2.8.7` | `2.9.0` |
| [faraday](https://github.com/lostisland/faraday) | `2.12.0` | `2.14.3` |
| [jwt](https://github.com/jwt/ruby-jwt) | `2.9.3` | `2.10.3` |



Updates `devise` from 4.9.4 to 5.0.4
- [Release notes](https://github.com/heartcombo/devise/releases)
- [Changelog](https://github.com/heartcombo/devise/blob/main/CHANGELOG.md)
- [Commits](heartcombo/devise@v4.9.4...v5.0.4)

Updates `puma` from 6.4.3 to 7.2.1
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/main/History.md)
- [Commits](puma/puma@v6.4.3...v7.2.1)

Updates `addressable` from 2.8.7 to 2.9.0
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](sporkmonger/addressable@addressable-2.8.7...addressable-2.9.0)

Updates `bcrypt` from 3.1.20 to 3.1.22
- [Release notes](https://github.com/bcrypt-ruby/bcrypt-ruby/releases)
- [Changelog](https://github.com/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG)
- [Commits](bcrypt-ruby/bcrypt-ruby@v3.1.20...v3.1.22)

Updates `concurrent-ruby` from 1.3.6 to 1.3.7
- [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases)
- [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md)
- [Commits](ruby-concurrency/concurrent-ruby@v1.3.6...v1.3.7)

Updates `faraday` from 2.12.0 to 2.14.3
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](lostisland/faraday@v2.12.0...v2.14.3)

Updates `jwt` from 2.9.3 to 2.10.3
- [Release notes](https://github.com/jwt/ruby-jwt/releases)
- [Changelog](https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md)
- [Commits](jwt/ruby-jwt@v2.9.3...v2.10.3)

Updates `nokogiri` from 1.18.9 to 1.19.4
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](sparklemotion/nokogiri@v1.18.9...v1.19.4)

Updates `rack-session` from 2.1.1 to 2.1.2
- [Release notes](https://github.com/rack/rack-session/releases)
- [Changelog](https://github.com/rack/rack-session/blob/main/releases.md)
- [Commits](rack/rack-session@v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: devise
  dependency-version: 5.0.4
  dependency-type: direct:production
  dependency-group: bundler
- dependency-name: puma
  dependency-version: 7.2.1
  dependency-type: direct:production
  dependency-group: bundler
- dependency-name: addressable
  dependency-version: 2.9.0
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: bcrypt
  dependency-version: 3.1.22
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: concurrent-ruby
  dependency-version: 1.3.7
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: faraday
  dependency-version: 2.14.3
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: jwt
  dependency-version: 2.10.3
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: nokogiri
  dependency-version: 1.19.4
  dependency-type: indirect
  dependency-group: bundler
- dependency-name: rack-session
  dependency-version: 2.1.2
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
…yarn-88f2d97871

Bump js-yaml from 3.14.2 to 3.15.0 in the npm_and_yarn group across 1 directory
…4fad4

Bump the bundler group across 1 directory with 9 updates
- Updated test description to better reflect the behavior of Rack when parsing POST parameters after body inspection.
- Changed expectation from `equal` to `eq` for comparing the parsed POST parameters, ensuring proper value comparison.
- Enhanced the user dashboard view to include a section for displaying user affiliations.
- Implemented conditional rendering to show affiliations as badges or a "None" message if no affiliations exist.
- Improved user experience by providing clear visibility of user affiliations.
Capture all errors, track deploy releases, add browser SDK tracing, and stop scrubbing useful request context.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bumps the npm_and_yarn group with 1 update in the / directory: [ws](https://github.com/websockets/ws).


Updates `ws` from 8.18.0 to 8.21.1
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@8.18.0...8.21.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.21.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…ON environment variable. This allows for improved release identification alongside existing methods.
…yarn-b448f38fe0

Bump ws from 8.18.0 to 8.21.1 in the npm_and_yarn group across 1 directory
@rsmoke
rsmoke merged commit 7821312 into main Jul 23, 2026
12 checks passed
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