matrix.org/content/blog/2020/09/2020-09-18-this-week-in-mat...

433 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "This Week in Matrix 2020-09-18"
path = "/blog/2020/09/18/this-week-in-matrix-2020-09-18"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2020-09-18-PRR99-image.png"
+++
## Matrix Live 🎙
{{ youtube_player(video_id="9oIUEZidP5w") }}
## Dept of *Status of Matrix* 🌡️
### Element review by TechRadar
TechRadar have published a fairly thorough [Element secure messenger review](https://www.techradar.com/uk/reviews/element-secure-messenger-review). This covers the Web, Android and iOS clients, and appears to use the matrix.org server for signup.
The review is very positive, awarding 4.5/5, and concludes:
> The Element messenger platform scores highly for its approach to security and its commitment to decentralization, and it's definitely going to be of interest to businesses wanting control over their own chats as well as plenty of individual users as well.
## Dept of Spec 📜
### Spec
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) told us:
> Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at <https://matrix.org/docs/spec/proposals>.
>
>
> #### MSC Status
>
> **Merged MSCs:**
>
> * *No MSCs were merged this week.*
>
> **MSCs in Final Comment Period:**
>
> * [MSC1960: OpenID information exchange with widgets](https://github.com/matrix-org/matrix-doc/pull/1960) (merge)
>
> **New MSCs:**
>
> * [MSC2778: Providing authentication method for appservice users](https://github.com/matrix-org/matrix-doc/pull/2778)
> * [MSC2775: Lazy loading over federation](https://github.com/matrix-org/matrix-doc/pull/2775)
>
> * [MSC2774: Expose the widget ID to the widget](https://github.com/matrix-org/matrix-doc/pull/2774)
> * [[WIP] MSC2773: Room kinds](https://github.com/matrix-org/matrix-doc/pull/2773)
>
> #### Spec Core Team
>
> In terms of Spec Core Team MSC focus for this week, [MSC1960](https://github.com/matrix-org/matrix-doc/issues/1960) has made it into FCP, so this week our focus is [MSC2414](https://github.com/matrix-org/matrix-doc/issues/2414).
![2020-09-18-8BoQF-stacked_area_chart.png](/blog/img/2020-09-18-8BoQF-stacked_area_chart.png)
## Dept of Servers 🏢
### Synapse
[Neil](https://matrix.to/#/@neilj:matrix.org) announced:
> This week we put out two point releases to fix critical bugs. At the very least ensure that you have upgraded to [1.19.2](https://github.com/matrix-org/synapse/releases/tag/v1.19.2) which is a security release but you may as well go the whole hog and upgrade to the hot off the press [1.19.3](https://github.com/matrix-org/synapse/releases/tag/v1.19.3). We will release 1.20.0 early next week.
>
> Aside from that we continue to work on performance analysis and the sharding of the event persister continues - its proving to be a really tough job but we are getting there. Weve also been making progress on the room knocking implementation
>
>This week we say goodbye to Oliver (reivilibre) as a leaving present he fixed a long standing bug that prevented servers catching up after a federating outage and as we speak is furiously trying to finish a service to test TURN configuration. Thanks Oliver!
### Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) said:
> Not much has happened this week, as the Dendrite team have been taking some time off. However, we still have a couple of changes to report:
>
> * Support for rejected events has been merged
>
> * Work on soft-fail has begun (although not complete yet)
> * A new mechanism for avoiding SQLite parameter limits was contributed (thanks HenrikSolver!)
>
> Spec compliance is on the up:
>
> * Client-Server APIs: 56%, same as last week
>
> * Server-Server APIs: 74%, up from 71% last week
### Conduit
Conduit is a Matrix homeserver written in Rust <https://conduit.rs>
[timo](https://matrix.to/#/@timo:koesters.xyz) announced:
> Welcome back! This week we made some groundbreaking progress - this is not a joke, we found a bug in Synapse while breaking multiple Matrix rooms, causing the Matrix team a lot of unnecessary stress. Let me explain:
> The good news is that Conduit is starting to federate now. This means that you should be able to join all public rooms of the Matrix network and exchange messages. Note that Conduit does not do all the checks it should be doing yet making it stop sending messages from time to time as well as that advanced features like loading the history, syncing temporary data like read receipts or accepting invites are not implemented yet.
>
> The bad news is that, while Synapse is happy to accept Conduit's messages when it is already part of the room, joining into one of the rooms Conduit servers are part of didn't work because of an event validation bug. The Matrix team did an excellent job at fixing this bug and releasing a Synapse patch the same day, but the damage has been done making a few rooms inaccessible to old Synapse servers.
> Thanks to everyone who supports me on "Liberapay" (https://liberapay.com/timokoesters) or Bitcoin!
## Synapse Deployment 📥️
### Synapse on NetBSD
[js](https://matrix.to/#/@js:nil.im) reported:
> I ported Synapse + its dependencies to [NetBSD](https://www.netbsd.org/) and it is now in [pkgsrc](https://www.pkgsrc.org/) as `chat/matrix-synapse`. This means that Synapse is now easily installable on any operating system that supports pkgsrc (which is many, e.g. NetBSD, Linux, macOS, Solaris, AIX, Haiku, …). And while at it, I also ported mautrix-hangouts + dependencies (in pkgsrc as `chat/mautrix-hangouts`).
### YunoHost
[Pierre](https://matrix.to/#/@pierre:mamieserv.fr) told us:
> [YunoHost](https://yunohost.org) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.
>
> [Synapse](https://github.com/YunoHost-Apps/synapse_ynh/tree/master) integration had been updated to 1.19.1 (1.19.2 available in branch `testing`)
>
> [Element Web](https://github.com/YunoHost-Apps/element_ynh/tree/master) integration had been updated to 1.7.5 (1.7.7 available in branch `testing`)
### Kubernetes
[Ananace](https://matrix.to/#/@ace:kittenface.studio) offered:
> Both image tags and a new chart version are hereby pushed for 1.19.2 for my [Synapse image](https://github.com/ananace/matrix-synapse) and [Helm chart](https://gitlab.com/ananace/charts)
then later
> Just pushed the updates for the K8s-optimized Synapse image and chart for 1.19.3
## Dept of Bridges 🌉
### matrix-appservice-bridge hits 2.0.0ʳᶜ¹
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) said:
> Hey bridge developer enthusiasts! Myself and ChristianP (bridge crew of matrix.org) have been working hard on freshening up the matrix-appservice-bridge library. It's no secret that it was using "classic" Javascript rather than ES6 syntax, was poorly documented in places and there were no types at all to make use of.
>
> But that's all changed now, the [2.0.0-rc1](https://github.com/matrix-org/matrix-appservice-bridge/releases/tag/2.0.0-rc1) release brings fresh types, new convenience methods, a total swichover from Bluebird Promises to native Promises and much much more. If you are looking to quickly get set up writing bridges, it's never been easier.
>
> Check out the [slack-starter](https://github.com/matrix-org/matrix-appservice-bridge/tree/develop/examples/slack-starter) project to get your first taste of bridge excellence and see what you think.
>
> As this is an RC, feedback is valuable and logging bugs helps us all. Please do so if you encounter any issues 😄
### Bridge Encryption Support
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) reported:
> Hi encryption fans. This week the bridge team has been churning away at adding support for encrypted rooms in the `matrix-appservice-bridge` library, to enable support in `matrix-appservice-irc`, `matrix-appservice-slack`, and anyone else using the library. This is probably the most exciting feature the library has seen in a long time!
>
> The feature will be a simple config toggle, so existing bridges will have to do very little work to support it.
>
> The first phase plans to use [Pantalaimon](https://github.com/matrix-org/pantalaimon) with bridge users syncing like real users, but eventually the hope is that this will be all built into the library. Come check out [this issue](https://github.com/matrix-org/matrix-appservice-bridge/issues/230) to keep track of progress.
## Dept of Clients 📱
### Element Web
[Neil](https://matrix.to/#/@neilj:matrix.org) announced:
> * Released 1.7.6 and 1.7.7 highlights include
>
> * Redesigned right panel where top right actions are now revealed via the i icon
> * Widgets can now be opened in the right panel
>
> * Widgets won't be visible in the Apps Drawer (top of timeline) by default (except Jitsi) - you need to pin them from the right panel
> * Widgets can now be resized
- A new version of matrix.to is now live you can check it out [here](https://matrix.to/), [bug reports welcome](https://github.com/matrix-org/matrix.to/issues)
>
> * A new feature to defer e2ee set up until the user actually wishes to use an e2ee channel.
>
> * A series of config flags to remove various features from the UI thereby simplifying the experience.
### Mirage
[miruka](https://matrix.to/#/@miruka:privacytools.io) said:
> 0.6.3 and 0.6.4 were released this week, and I'm now working on desktop notifications support and push rules control.
>
> #### Added
>
> * Add a **system tray icon**.
>
> A left click will bring up the Mirage window,
> middle will quit the application and right will show a menu with these
>
> options.
>
> * Add a `closeMimizesToTray` setting to the config file, defaults to `false`.
>
> Controls whether closing the Mirage window will leave it running in the
> system tray, or fully quit the application.
>
> * Add a discrete **read marker indicator** to messages, shows how many people
>
> have this event as their last seen one in the room.
> A way to see who read the message and when will be added in the future.
>
> * Themes: add `chat.message.localEcho` and `chat.message.readCounter` color properties
>
> * Add a `zoom` setting, defaults to `1.0`
>
> * Add a `lexicalRoomSorting` setting, to sort rooms by their name instead of
>
> recent activity.
> A restart is needed to apply changes to this setting.
>
> #### Changed
>
> * Restrict Mirage to a single instance per config folder, trying to launch a
>
> new window will instead focus the existing one.
> The `MIRAGE_CONFIG_DIR` and `MIRAGE_DATA_DIR` environment variables can be
>
> set to run different "profiles" in parallel.
>
> * Reduce the visible lag when opening a chat page, switching rooms should be
>
> a lot smoother
>
> * When using the `focusPreviousMessage` and `focusNextMessage` keybinds, if no
>
> message is focused and the timeline has been scrolled up,
> focus the message in the center of the view instead of returning to the
>
> bottom of the timeline and focusing the last one.
>
> * Don't re-center the room list on clicks by default.
>
> This prevents the list from jumping around every time a room is selected.
> The previous behavior can be restored with the new `centerRoomListOnClick`
>
> setting.
>
> * Show a better terminal error message than "Component is not ready" when the
>
> window creation fails, giving details on what went wrong in the code
>
> * If an account's access token is invalid (e.g. our session was signed out
>
> externally), say so with a popup and cleanly remove it from the UI,
> instead of spamming the user with errors.
>
> * Rename message context menu option "Debug this event" to just "Debug"
>
> * Unify up/down and (shift+)Tab navigation for the account Sessions page
>
> * Changes to the UI scale/zoom via keybinds are now persisted across restarts
>
> * Themes: `uiScale` is now bound to `window.settings.zoom`.
>
> This change is necessary to keep the zoom keybinds working.
>
> #### Fixed
>
> * A bunch of stuff, see the full changelog for [0.6.3](https://github.com/mirukana/mirage/releases/tag/v0.6.3) and [0.6.4](https://github.com/mirukana/mirage/releases/tag/v0.6.4)
### Element Android 1.0.7
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) offered:
> Element Android 1.0.7 has been released (still stuck in Google pipes writing those lines), and will be quickly followed by 1.0.8 to fix a problem with cross signing verification.
>
> We are working to implement search of messages in a room and we keep on fighting bugs and improving performance of the application.
>
> We are also iterating on the home screen, to improve user experience, and try to satisfy users with a few rooms as well as users with several hundreds of rooms.
### Element-iOS
[Manu](https://matrix.to/#/@Manu:matrix.org) said:
> This week, we released [1.0.12](https://github.com/vector-im/element-ios/releases/tag/v1.0.12) with several bug fixes including the one for background crashes due to PushKit
### Hydrogen
[Bruno](https://matrix.to/#/@bwindels:matrix.org) told us:
> Released 0.037 on Monday with some polish for E2EE:
>
> * remove outdated devices when querying
> * update room summary with decrypted events, also when retrying decryption
>
> * various crash protections
> * keep megolm session with earliest index when receiving a room key we already know about
>
> * add new icon
> * fix issue where olm would be loaded twice when login failed
>
> * show decryption errors in timeline
> * show encryption enabled tile in timeline
>
> The rest of the week was implementing session backup, which I hoped would be ready to release today but it needs some more polish unfortunately. In the meantime, here's a GIF teaser:
![2020-09-18-uMR7F-session-backup.gif](/blog/img/2020-09-18-uMR7F-session-backup.gif)
## FluffyChat
Thank you to [Krille](https://matrix.to/#/@krille:janian.de), who told us:
> FluffyChat version 0.18.0 is out now in F-Droid, Testflight and soon the PlayStore:
>
> ### Features
>
> - Added translations: Armenian, Turkish, Chinese (Simplified), Estonian
> - Url-ify matrix identifiers
> - Use server-side generated thumbnails in cleartext rooms
> - Add option to send images in their original resolution
> - Add additional confirmation for sending files & share intents
> - Add option to opt-in to report issues / crashes to sentry
> - Write keys to online key backup, fully implementing online key backup
>
> ### Changes
>
> - Tapping links, pills, etc. now does stuff
> - Better handling of sending messages in bad network
> - Better recovery of "keys not cached"
> - E2EE is enabled again
>
> ### Fixes:
>
> - Various html rendering and url-ifying fixes
> - Added support for blurhashes
> - Image viewer now eventually displays the original image, not only the thumbnail
## Dept of SDKs and Frameworks 🧰
### Hemppa
Hemppa the bot is a multi-purpose Matrix bot for writing new functionality easily with Python.
[Cos](https://matrix.to/#/@cos:hacklab.fi) said:
> Hemppa gained a small but big feature for making fediverse better: per-room Mastodon tooting support. This means that you can set up a Mastodon account in your room and anyone with moderator rights can toot to that account. This way you and your roommates can super easily send toots to the world directly from Matrix. Mastodon (unlike the big alternative) supports RSS feeds out of the box so it's very easy to subscribe to users and hashtags with stock RSS bot. Toot #hemppathebot if you like it! Another new contribution worth mentioning is welcome which can send welcome messages to users registering on the server or joining a room. <https://github.com/vranki/hemppa>
### Ruby
[Ananace](https://matrix.to/#/@ace:kittenface.studio) said:
> Another week, another [Ruby SDK](https://github.com/ananace/ruby-matrix-sdk) release. This time adding a little fix to avoid duplicate state events being passed twice to the application if identical ones arrive in both state and timeline, also adds a global state event handler and moves room event handling to not depend on room instances themselves.
Asked how much the SDK is used in production, Ananace said:
> a little, we've hooked Matrix into our server orchestration / configuration management system TheForeman - which is a Rails application. Also got a colleague who's doing a bot to linkify internal ticket IDs.
### Ruma
[iinuwa](https://matrix.to/#/@iinuwa:matrix.org) told us:
> Thanks to @q-b and @jtescher we have implemented more of the federation endpoints (bringing us up to about 85% completion) and every (one) endpoint of the Push Gateway API!
>
> We fixed a bug where federation endpoints expected access tokens instead of server signatures for authentication. In the future, we may add an API that requires signatures on requests.
>
> Finally, we've also continued progress on the non-exhaustive type updates for backwards compatibility; we expect to finish this within the coming weeks.
>
> #### New Contributors
>
> * [@jtescher](https://github.com/jtescher), not new but forgot to mention earlier!
>
> * [@williewillus](https://github.com/williewillus)
## Dept of Bots 🤖
### Matrix Reminder Bot
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) announced:
> v0.2.0 of [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) has been released! This releases includes lots of bugfixes, updates and polishing. Find the list below:
>
> #### Features
>
> * Better support for command prefixes other than the default `!`.
>
> * Just writing `!silence` now silences the currently active alarm.
> * The bot will now print the correct syntax of a command if the user fails to follow it.
>
> * The bot will reply to events if it cannot decrypt them, as well as offer helpful tips that both the user and bot operator can try to fix things.
>
> #### Bugfixes
>
> * Timezones. They should finally work correctly! ...no 100% guarantees though.
>
> * Alarms were a bit broken. They're fixed now.
> * Fix commands with formatting and newlines not being picked up by the bot.
>
> * Fix non-latin characters preventing reminders from being deleted.
>
> #### Internal changes
>
> * Add a dev-optimised Dockerfile for quicker iteration during development.
>
> * Better wording revolving alarms. They're just reminders that alarm repeatedly when they go off.
> * Log why the bot is unable to start.
>
> * Don't print "Unknown help topic" in case the user is trying to ask another bot for help.
> * The config dict is now a singleton.
>
> * Type hints everywhere!
>
> Additionally, the minimum Python version is now 3.6. matrix-reminder-bot is made with [nio-template](https://github.com/anoadragon453/nio-template).
## Dept of Ping 🏓
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server. Join [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net) to experience the fun live, and to find out how to add YOUR server to the game.
|Rank|Hostname|Median MS|
|:---:|:---:|:---:|
|1|fairydust.space|412|
|2|matrix-dev.kapsi.fi|1308|
|3|utzutzutz.net|1519|
|4|blob.cat|1521|
|5|r23s.eu|1915.5|
|6|conduit.rs|2149|
|7|maescool.be|2759|
|8|halogen.city|2774.5|
|9|uraziel.de|3253|
|10|kapsi.fi|3713|
### Dept of Ping Extra:
[timo](https://matrix.to/#/@timo:koesters.xyz) announced:
> Normally the ping shows how long other servers take to receive the sending-server's message. Some servers receive it quickly, some take hours. All this flows into the statistic of the sending server. I wrote a small program that's the other way around. Instead of measuring the sending-server's ping, it associates each measurement with an echo-bot (instead of the sending server), so this plot shows which maubots are the fastest to respond (it's probably not accurate at all, because most of the pings were started on conduit servers this week, but it's interesting nevertheless):
![2020-09-18-PRR99-image.png](/blog/img/2020-09-18-PRR99-image.png)
## That's all I know 🏁
See you next week, and be sure to stop by [#twim:matrix.org] with your updates!
[#TWIM:matrix.org]: <https://matrix.to/#/#TWIM:matrix.org>