Please suggest to which version should I upgrade my app. Currently, the LTS version is 3.20, but 3.22 is releasing on Oct 5. Do we have any major changes in release 3.22? Should I wait for it?
This partly depends on the context. If you want to stay bleeding edge there’s no reason not go upgrade every 6 weeks with the latest release. Many companies or maintainers of larger apps choose to stick with only LTS releases so upgrades are less frequent (as they are often more work in a large or “mature” app). As far as “waiting” for a release goes I’d say there’s no reason to wait just because a new release will be around the corner. There’s always a release no more than 6 weeks away so unless you’re sticking with LTS you might as well just begin.
Which brings me to the last thing I’ll recommend… If you’re going from 2.3.0 => latest I would highly recommend stepping through versions very methodically instead of doing a “big bang” upgrade. That’s a massive version range (we’re talking like 4 years or something) with a huge number of changes. So I would recommending taking the versions one at a time e.g. 2.3.0 => 2.4.0, clearing up any deprecation warnings, test failures or build errors, and then continuing. It may seem tedious but you’ll probably save yourself a lot of frustration.
For example at my company we’ve been upgrading our app from 3.0.0 to 3.20.0 recently and it’s been a long process. The earlier 3.x releases seemed to have more breaking changes so we stepped through one at a time until we got to 3.4, then we’ve been moving from LTS to LTS. IIRC the 2.x series had some ranges where there were lots of deprecations added, and 3.0 changes the test support APIs very significantly so if you have a large test suite that will be some substantial refactoring.
Fortunately Ember has really great upgrade tooling with ember-cli-update, and generally great deprecation warnings and guides. I’d also highly recommend taking advantage of the various codemods out there, and ember-cli-update can help a lot with that (it has some commands for listing available codemods and running them).
Depending on how big/complex/conventional your app is this may take some time. So ember 3.22 might be closer than you think . Good luck and definitely feel free to ask questions here if you get stuck!
I am planning to move our app to the LTS v3.20 as our app is very big. And just upgrading app one release to another, this can take more time. I am thinking to go in one flow. We are facing the many deprecations, but we don’t have the test suite which saves time. I have used the codmod tool which is great for upgrading. Thanks.
It’s tempting to think that way but that’s often not the case, especially if your app is very big. I’d still at least recommend stepping in a few chunks instead of one giant leap. For example 2.3.0 to 2.10.0 (glimmer vm i think?), 2.10.0 => 2.16.0, 2.16.0 => 3.2, 3.2 => 3.8, etc. Either way, good luck!