Riding Rails for decades
summary
Shopify-era codebase runs two Rails versions side-by-side using dual-booting with BUNDLE_GEMFILE and a shared Gemfile shim, CI executes tests against both Rails 4 and Rails 5, and production gradually mixes machines running each version while compatibility layers handle sessions and CSRF tokens. Migration work includes patching or fixing gems (ActionPack, actionview adapters), removing attr_accessible in favor of strong parameters and a custom stronger_parameters API, replacing model-parameter misuse with form objects and dry-validations, benchmarking regressions, and a nine-month cleanup to remove version gates.
AI-written summary · about
chapters (20)
- 0:00Introduction
- 1:12ShopFire
- 1:50ShopFight
- 3:08ShopFine
- 4:46Dual Boot
- 6:05HAP
- 6:50CI Environment
- 8:15Dependencies
- 10:17Challenges
- 11:19Strong parameters
- 12:11Dry validations
- 12:59Controller tests
- 14:02Parameters
- 15:40Compatibility
- 17:50Migration
- 19:08Rails Code Base
- 20:11Backwards Compatibility
- 20:44Parallel CI
- 21:05Tracking Master
- 21:40Conclusion
related talks
33mUpgrading a big application to Rails 5
36mRuby & Rails Versioning at Scale
36mRuby & Rails Versioning at Scale
38mThe Past, Present, and Future of Rails at GitHub
35mChanging the wheels on the bus at 80 mph: Upgrading to Rails 3
38mThe Past, Present and Future of Rails at GitHub
42mThe Past, Present, and Future of Rails at GitHub
21mRails Upgrade Mastery: Best Practices for Large-Scale Enterprise Applications
