Regarding the version number, in 2.0→2.1 we had:
- Python 2→3
- Qt 4→5
- QtWebKit → QtWebEngine, and all the API changes that were required to move from a synchronous to an asynchronous API.
- Added v2 scheduler
It was a lot of work, and both Anki and add-ons took a long time to get fully updated and the issues ironed out.
This time we have added support for Qt6 and reworked the editor, and the changes are somewhat smaller in comparison - apart from the resource handling, the Qt changes are mainly a straight mapping of old names to new names, without a great deal of changed functionality.
While the “modernize Anki’s backend” project is mostly done (to the extent that such a project can ever be “done”), there is still importing/exporting to tackle, and all the compatibility shims and aliases that are currently in place will need to be removed at one point. Holding off on another stable release until the remaining parts are done and version number handling is improved would push back a release by quite a few months, and we’d lose some of the benefits of RERO that way.
I know the churn in the last two years has been frustrating at times. Thank you all for your patience, and I assure you I’m looking forward to things calming down a bit as much as the rest of you are!
Add-on authors are of course free to choose what they wish to support or not support, but I suspect Anki will need to keep supporting Qt5 for a while yet. The ARM Linux and no-systemd camps depend on a system-provided version of Qt, and as far as I’m aware that’s mainly/all Qt5 at the moment, so if we went Qt6-only, they would be unable to use the new releases. There are also various issues like slow loading of large images and a lack of tabs on macOS that some users may feel are showstoppers. There will invariably also be issues that we’re not even aware of yet, that will only crop up once a stable release is made and more people are using it.
Part of the problem is that the current code is not set up to deal with a new minor version number, and this doesn’t really help us there - new code would need to be written to handle the version change either way.