Skip to content

0.8.0

Compare
Choose a tag to compare
@KitsuneRal KitsuneRal released this 04 Jul 10:07
· 562 commits to dev since this release
5b39073

Took much less than 0.7, right? Just over half a year passed since 0.7.0 has been released, and 0.7.2 came out just a couple months ago. The whole changeset since 0.7.2 is just over a hundred commits, compared to more than a thousand between 0.6.x and 0.7.0. Hopefully, we'll be able to continue this steadier, more evolutionary pace from now on, and then 0.9 will come out by the end of the year.

Most of the changes are already described in release notes for 0.8 beta - you're welcome to read them.
Since RC went out, we’ve got just two substantial changes: @vkrause fixed AccountRegistry::invokeLogin() in #675 to still add Connection objects after successfully connecting them to the homeserver; and @KitsuneRal made pinned events actually follow the specification (and therefore, interoperable) in #677.

On top of that - a few formal things that we used to add to announcements: the toolchain updates, and notes on compatibility and maintenance.

Toolchain and compatibility

Well, in fact there are not many updates here. We're still using C++20 and building with the same compiler versions as libQuotient 0.7.0 used: GCC 11, Clang 11, MSVC 2019 and Apple Clang 12 are our baseline. We also continue building with Qt 5 as well as Qt 6 - but as we warned before, Qt 5 may be dropped any time soon, with Qt 6.5 already out there and being in quite a good shape. By now we have to jump through some hoops and limit our use of the new Qt 6 API - so the pressure is already there to switch over to Qt 6 entirely as soon as version 0.9 starts coming together - meaning that 0.8.x will very probably be the last one to officially build with Qt 5.

Also, the next version will bump compiler requirements - in particular, we're going to require Clang 13 and Apple Clang 14, to take advantage of even more C++20 features (particularly the ranges framework). If your toolchains are older, take effort to update them.

Despite not a lot of time behind, libQuotient 0.8 API is not compatible with 0.7; if you didn't try 0.8 beta before, you now have to rebuild your code with the new version and see what breaks. We try to play soft and deprecate things before dropping them; but that's not always possible. Be aware that if the compilation already spits out deprecation warnings with an older version, these are the most likely places to get broken when building with the next "sub-major" (0.8->0.9, that is) version.

Understanding that the install base for libQuotient 0.6 is comparatively large, 0.6 remains on "sustained support" (i.e. updating it on request). There were not many requests to update it since 0.7 though so this is likely to only be there for another month or two.

Thanks

As always, many thanks to all who use libQuotient and help us with the development!

@KitsuneRal and @TobiasFella