9 ms·
This has not been my experience. I have taken applications from 2-to-3, 3-to-4, and so on, through 8.X. If anything it has gotten better/easier over time. The
by chao- 5mo ago
This has not been my experience.
I have taken applications from 2-to-3, 3-to-4, and so on, through 8.X.
If anything it has gotten better/easier over time. The most challenging upgrades were 2.X to 3.X (for reasons I can't recall), and then 6.X to 7.X (for an application that had issues adopting zeitwerk). In both of those situations, there was a lot of rote legwork, but once tests were passing, the application was working reliably. The other upgrades (3-to-4, 4-to-5, 5-to-6, 7-to-8) weren't happy-fun-rainbows-and-unicorns, but they weren't catastrophically complicated? Not even in fairly large codebases.
For each of these, a strong test suite was the best tool, which it sounds like you already know?
In my experience, the other impactful factors were:
(1) Reading the CHANGELOGs and knowing enough about Rails to know what they meant for the application.
(2) Using test fixtures (or fixtures with only some factories) for a quicker feedback loop for engineers.
(3) Having a true QA function in the company that isn't just engineers testing their own code.
- lloeki 5mo ago> 2.X to 3.X (for reasons I can't recall) Many big structural changes, IIRC bundler integration, plugins became engines, etc... It was the big Rails+MERB merge.
- chao- 5mo agoAh yes! I remember Merb now that you say it :) I have my criticisms of Rails, but that definitely set it on a better path.