Version 0.0.95
Ok, it's been a long time... More than 2 years since the original 0.0.9.4 release, and more than half a year since the last rebuild of that release (gaining quite a few patches from the next release though). Anyway, after switching continents for a new country and a new job (still not about Matrix but at least about Open Source!), here I am again, delighted to announce the ever-best and newest - release 0.0.95!
As many of you who followed betas and release candidates know already, there's no typo in the version number - reflecting the next level of Quaternion maturity, I decided to switch from "just-beginning-to-make-something-useful" 0.0.9.x pattern to "got-almost-all-essential-features" 0.0.9x, with 0.1 release becoming in sight. What would make it 0.1? Two things: user registration and end-to-end encryption; and hopefully we'll get there by the end of next year (unless I get to jump countries again, which is unlikely).
But enough with introduction, let's get to the subject.
Thanks
- to @krkk and @rpallai for massive contributions to make Quaternion better and better (see details below)
- to translators for adding and updating on their languages: in addition to German, Polish and Russian translation, we now have (reasonably complete) Spanish one. The French translation, unfortunately, could not make it to the release, despite good progress - it may be added in a follow-up release.
- and, of course, to all who tries out and uses Quaternion on daily basis!
As before, the full list of contributors to the code can be found at the respective GitHub page, and you can all kinds of cool statistics about translations at Lokalise.
Changes
The complete list is even longer than for 0.0.9.4 (134 closed issues and 690 commits); highlights follow:
- Many chat timeline improvements:
- Feature (#422, #497): thanks to @krkk, the "ellipsis" button on the right of the message has been replaced with a proper context menu behind a proper secondary (aka right-) click, with more things that can be done from it.
- Feature (#727, #687): revamped read marker, with more natural transitions (that line actually shifts across events now) and a slight tint over messages you've already read so that you could easily discern whether you're in "unread" or "read" area without the read marker on the screen;
- Feature (#257, #729): thanks to @ddanilov, there's now a "scroll to reader marker" button when the read marker is off-screen (unfortunately, it will only work when the last read event is already loaded; lifting this limitation is a matter of #796);
- Feature (#780): thanks to @ddanilov, the topic can be collapsed now - right-click on it;
- Feature (#655): thanks to @krkk, Quaternion gained initial support for reactions (current limitations: no new reactions can be posted; standard timeline font is used for reactions);
- Feature (#607): thanks to @rpallai, outgoing messages are tinted a bit differently now (and you can configure the tint - see README).
- Change (#725, #748): the scroll-to-bottom button, as well as the timestamp in the default layout, shifted to the right; the shuttle-dial scroller blends better into the desktop theme and acts smoother;
- Fixes (#375, #630, #704, #712, #761): a few, some long-standing, bugs fixed with (partially) moving over to Qt Quick Controls 2 (Qt Quick Controls 1 has been deprecated and is no more there in Qt 6; complete migration to QQC2 is planned early in 0.0.96);
- Fixes (#632, #640, #648, #749): too high room name or message input will no more obscure the real timeline beyond acceptable; and longer typing/completion strings won't strut the view either;
- Fixes (#782, #788): the last scrolled-to timeline position should be restored more reliably now.
- Feature (#677): thanks to @krkk, there's now a user profile dialog, with changeable name and avatar. Device manipulations come next, as they need user-interactive authentication.
- Feature (#678): thanks to @krkk (this guy is all over the place...), images can be attached simply by pasting them from the clipboard.
- Feature (#421, #730, #734): initial Markdown support - still somewhat experimental and can break in some more complex cases like lists or fences, therefore hidden behind the
/md
command. Only available if Quaternion is built with Qt 5.14 or newer (Flatpaks and all binaries at GitHub Releases have it; builds for older Linux distros might not). - Feature (#580, #701, #705): with the help of @krkk, rich text can be pasted or dropped into the text entry, and proper Matrix HTML will be generated for it; work on this allowed to make
/html
command validate its input to be proper Matrix(!) HTML. Same as Markdown, rich text support is still somewhat experimental and rough along some edges. - Feature (#614, #627): with the help of @rpallai, you can now override the font for the chat timeline (and the application font is configurable too) - see README.
- Feature (#528): thanks to @a-andreyev, Quaternion now uses different colours for different user ids, which helps in both discerning between accounts and also may assist in spotting impersonators.
- Feature (#642): thanks to @ddanilov, you can now fine-tune how fast your read marker moves to the newly read message.
- Feature (#533): Room tags can be hidden from the room list now (see README for instructions).
- Feature (#654, #662): thanks to @krkk and @rpallai, you can hide more kinds of events from the timeline.
- Change (#676): thanks to @krkk, actions for which you don't have power (e.g. banning) are hidden now.
- Change (#609, #644): upgraded rooms that have successors with you as a member are no more shown in the room list - you can still navigate to them using "Go to previous room" button in the successor room. A more convenient interface is postponed for 0.0.96.
And, as always, the new release comes with an assortment of performance and memory tweaks and fixes, to keep Quaternion fast and compact.
Building and packaging
Over these two years, quite a few things occured on the building and packaging front - packagers especially, mind the below.
First off, if you're still on an intermediate 0.0.95 (or even 0.0.9.5) beta or RC build you're strongly advised to update to this final release or at least backport the fixes linked from the security issue #789.
Quaternion 0.0.95 requires libQuotient 0.6.x to run (version 0.6.9, the latest as of this writing, is strongly recommended - if you don't have it in your Linux repository, ask your packager to update the package ASAP!). Neither libQMatrixClient 0.5.x, nor (yet to be released) libQuotient 0.7 are not compatible.
The oldest Qt version for this Quaternion release is 5.11, not 5.9 any more; this changed before RC3. Unless you're still on bionic (in which case you have bigger issues to tackle) this shouldn't be a trouble; but for packaging it's worth updating your spec and control manifests.
AppImage files are now provided with releases too; however, the recommended self-contained package is Flatpak as it integrates better into the desktop environment and is built in a more reliable and secure way than AppImage.
As those using Quaternion intermediate CI builds know, JFrog has sunset its Bintray service earlier in the year. Fortunately, great folks at Cloudsmith have ironed up their service just in time for that and provide it to open-source projects for free. While you're really advised to use GitHub Releases to get stable Quaternion binaries, intermediate CI builds are still available as well; they just changed their home.
Finally, in a much less predictable and reasonable way, Travis CI has left its open-source users out in the cold last year after changing their pricing model, so all Quotient builds have been (rather hastily) migrated to GitHub Actions. This should not affect the consumption of the built binaries in any way - they were published at GitHub Releases even before, and they are still there. Travis CI is not good for your health anyway - migrate from it as soon as you can if you're still there.
Screenshot
Looks unusual? This is made on Haiku, courtesy of [email protected]. Quaternion will match your system look and feel, unlike some other Matrix clients.