This also gives a chance for a refresh of the ecosystem: libraries that are no longer relevant (eg, their functionality has been incorporated or otherwise made obsolete) can go away, and they get a nice "out" so no one has to feel bad about shuttering a project.
It also gives a chance for keeping the libraries using newer APIs, or even newer libraries to gain traction.
Very similar to doing a controlled burn in a forest: Worse than no fire at all, but orders of magnitude better than an actual wildfire.
[1]: https://v3.vuejs.org/guide/migration/introduction.html#break...
On top of that, v2.7 slated for 2021Q1 also includes the relevant migration warnings, which should help make life easier
Our example (look at diffs): https://github.com/Quantum-Game/quantum-game-2/pull/227
After the package update and some very basic find/replace across our codebase, about half of our 600+ tests had to be significantly updated. If your tests regularly mock a Vuex store or a router, be prepared to be making a lot of updates.
If you're using some of the features being removed (filters, $on/$off/$once, etc) or make heavy use of custom plugins, it's not going to be painless.
Having said that, I love the direction the new API is heading and 95% of the changes we have to make are for the better in the end, so it feels worth it.