0.8 beta
Pre-releaseAfter enormous waits for 0.6 and 0.7, the project is finally getting to make more frequent releases, and 0.8 beta is here less than half a year after 0.7.0. The amount of changes is somewhat smaller too, so you don't need to spend extended time just to figure out what's changed (and I don't need to spend even longer to write the release notes!).
This is a good moment for packagers to double-check that their builds are still good with the new library but please hold off from packaging 0.8, just yet. More goodness is coming soon, with the final release planned to happen before the end of June.
As always, thanks to all the contributors, new and seasoned - you rock!
Main news
The highlight of this release is that you can switch E2EE at each Connection
object individiually (#609 by @KitsuneRal). By default, E2EE is now switched off; you have to call Connection::setE2eeDefault()
to enable it for all Connection
s created further. On top of this class-scope setting, you can call Connection::enableEncryption()
on any Connection
object before it is logged in, to alter the mode for that one object.
As of this beta, there's no graceful handling of situations when encryption is enabled but is unusable (e.g. if there is a database but the pickling key doesn't match it or is unavailable). To preserve user data, Debug builds will fail on assertion; Release builds will just disable encryption on the object and keep running is if it was not enabled at all. By the final release, Debug builds will do the same as Release builds.
Other news
- The backend Client-Server API code is generated from Matrix v1.7 files (#669), enabling access, among else, to asynchronous uploads (MSC2246), content redirects (MSC3860), and using an existing session to log in another (MSC3882); these are not wired further into
Connection
/Room
yet but the first step is made - Thanks to @TobiasFella (#634), Doxygen documentation for the library is now generated and published automatically at https://quotient-im.github.io/libQuotient/ - reports on any inaccuracies/typos/bitrot etc. are welcome!
- @vkrause made another round of build tightening and improvement PRs:
- Qt5 and Qt6 versions of libQuotient can now be installed side-by-side (#646, #650) - this required to change soname of the Qt6 variant but no known distro shipped that variant anyway
- Global constants for key names etc. now have one prefered variant (the one without
L
at the end), withL
variants getting deprecated (#648);L
-less variant is nowQLatin1String
, too - Fixed dependency finding in CMake (#656, #658)
- @KitsuneRal also gave the redactions code a hard look and fixed things around redacting state events that surfaced (#666)
Connection::assumeIdentity()
emitsnetworkError()
(which it never did before) instead ofloginError()
when the actual problem is with the network (e9c3d37 by @KitsuneRal)Connection
no more automatically adds and removes itself from theAccounts
singleton, and this singleton itself is deprecated now (c2c9bf4 by @KitsuneRal); client authors have to create anAccountRegistry
instance for themselves (if they wish, still as a singleton, but be aware that it's considered an anti-pattern)BaseJob::aboutToSendRequest()
carries a pointer to the modifiable network request object along with it, allowing to adjust the request before sending (389f365 by @KitsuneRal). Use with care.- Previously deprecated
Room::reset*Count()
functions are entirely removed (#661) after they were found out to crash NeoChat in obscure ways Omittable::ensure()
has been removed as it was sitting unused for quite some time (14f31f4 by @KitsuneRal)Event::type()
is deprecated now and is planned for removal in 0.9 (#667), to prevent the long-standing confusion betweentype()
andmatrixType()
, with even the library's own code misusingtype()
even though it doesn't necessarily return the actual type stored in the event JSON- @TobiasFella fixed aliases not to remap back from the replacement room to its predecessor accidentally (#649)
- @KitsuneRal fixed image requests from QML to be thread-safe (#659)
- @chmeeedalf fixed Matrix URI parsing for colon characters that are percent-encoded, i.e.
%3A
instead of:
(#651) - first contribution to the project! - @CyberTailor fixed E2EE builds with LibreSSL (#654) - another first-time contributor here!
Full Changelog: 0.7.2...0.8-beta1