O C T A S C A L E

Rails 6 to Rails 7.2 Upgrade

Categories: Legacy Upgrade
Share on:

Upgrading a Core HR Performance Platform to a Modern Rails Stack

An enterprise HR performance evaluation and tracking platform needed to move beyond an aging Rails setup.
The system handles sensitive reviews and high daily usage, so the upgrade had to improve security and
maintainability without disrupting ongoing operations.

Requirements

  • Upgrade from Rails 6.0 (recently moved from 5.2) to a supported version (Rails 7.2 or later).
  • Preserve full functionality across local environments (macOS/WSL2/Docker) and AWS production.
  • Resolve long-standing technical debt: asset pipeline issues and compatibility with forked gems.
  • Keep existing automated tests (~80% coverage) and CircleCI UI tests green.
  • Adjust deployment (Chef/Capistrano) and update internal documentation.

What We Delivered

Incremental, Test-Driven Upgrade

We planned a staged upgrade path so unit and UI tests passed at each step. This reduced risk and kept teams productive
while development continued in parallel.

Dependency & Asset Modernization
  • Resolved gem compatibility (including forked gems) and library updates.
  • Unblocked yarn/asset pipeline by addressing legacy Node/Python constraints.
  • Aligned front-end tooling with the target Rails version for reliable builds.
Deployment & Environment Alignment
  • Audited and updated Chef configuration and deployment scripts.
  • Ensured parity between local (macOS/WSL2/Docker) and AWS environments.
  • Validated the full path via CircleCI UI suites before promotion.
Documentation & Handover
  • Updated engineering wikis with new commands, environment setup, and deploy steps.
  • Produced an upgrade log covering changes, decisions, and resolutions.

Outcome

  • Current, supportable Rails foundation ready for future features.
  • Smoother developer workflow and faster feedback via stable CI/CD.
  • Lower maintenance risk by removing outdated dependencies and build bottlenecks.
  • No disruption to day-to-day usage during the transition.

Client name withheld under NDA. Deeper details available upon request.