335 lines
17 KiB
Markdown
335 lines
17 KiB
Markdown
+++
|
||
title = "This Week in Matrix 2020-05-07"
|
||
path = "/blog/2020/05/07/this-week-in-matrix-2020-05-07"
|
||
|
||
[taxonomies]
|
||
author = ["Ben Parsons"]
|
||
category = ["This Week in Matrix"]
|
||
|
||
[extra]
|
||
image = "https://matrix.org/blog/img/2020-05-07-VqcJC-screenshot01.png"
|
||
+++
|
||
|
||
## Matrix Live 🎙
|
||
|
||
{{ youtube_player(video_id="l8Pj9_Q4VQs") }}
|
||
|
||
Matthew and Amandine discuss the week, including E2EE by default!
|
||
|
||
## Dept of *Status of Matrix* 🌡
|
||
|
||
*What a week!!*
|
||
|
||
Lots happening this week! [Cross-signing landed](https://matrix.org/blog/2020/05/06/cross-signing-and-end-to-end-encryption-by-default-is-here) - this is a massive achievement for the team, and will go a long way to helping the user experience for new users especially. [Read more in the major Riot blog post here](https://blog.riot.im/e2e-encryption-by-default-cross-signing-is-here/). Time to start getting less-technical friends on Matrix!
|
||
|
||
Google announced their Summer of Code programme acceptees: [Matrix have six students this year](https://summerofcode.withgoogle.com/organizations/6060943798173696/), our most ever! We'll make a new blog post next week welcoming the students!
|
||
|
||
Last month we hosted [Open Tech Will Save Us meetup 1](https://www.youtube.com/watch?v=APVp-20ATLk), so hold on to your keyboard as we announce [Open Tech Will Save Us meetup 2](https://matrix.org/open-tech-meetup/)!
|
||
|
||
Meetup 2 will feature:
|
||
|
||
* [Mike Hoye](http://exple.tive.org/blarg/) from Mozilla talking about "Verbs in the fediverse"
|
||
* Eugen ([@Gargron@mastodon.social](https://mastodon.social/@Gargron)) will talk about "how we keep mastodon.social running at scale" as a Q&A
|
||
* +MORE
|
||
|
||
## Dept of Spec 📜
|
||
|
||
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) offered:
|
||
|
||
> 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:**
|
||
>
|
||
> * [MSC2454: Support UI auth for SSO](https://github.com/matrix-org/matrix-doc/pull/2454)
|
||
> * [MSC2457: Invalidating devices during password modification](https://github.com/matrix-org/matrix-doc/pull/2457)
|
||
>
|
||
> **MSCs in Final Comment Period:**
|
||
>
|
||
> * [MSC2472: Symmetric SSSS](https://github.com/matrix-org/matrix-doc/pull/2472)
|
||
>
|
||
> **New MSCs:**
|
||
>
|
||
> * [MSC2529: Proposal to use existing events as captions for images](https://github.com/matrix-org/matrix-doc/pull/2529) *(sounds great! - bp)*
|
||
> * [MSC2526: Add ability to delete key backups](https://github.com/matrix-org/matrix-doc/pull/2526)
|
||
> * [MSC2530: Body field as media caption](https://github.com/matrix-org/matrix-doc/pull/2530)
|
||
>
|
||
> #### Spec Core Team
|
||
>
|
||
> In terms of Spec Core Team MSC focus for this week, [MSC2474](https://github.com/matrix-org/matrix-doc/pull/2474) has entered FCP. Keeping with the E2EE theme, we've switched focus to [MSC2526](https://github.com/matrix-org/matrix-doc/pull/2526). So the new list of MSCs for next week is: [MSC2366](https://github.com/matrix-org/matrix-doc/pull/2366) (verification flows), [MSC2399](https://github.com/matrix-org/matrix-doc/pull/2399) (UISI messaging), and [MSC2526](https://github.com/matrix-org/matrix-doc/pull/2526) (deleting key backups).
|
||
|
||
## Dept of Servers 🏢
|
||
|
||
### Dendrite / gomatrixserverlib
|
||
|
||
Dendrite is a next-generation homeserver written in Go
|
||
|
||
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) said:
|
||
|
||
> * Some of the work for `/get_missing_events` has been done now for filling gaps in the room DAG
|
||
>
|
||
> * Federation sender performance and parallelisation have been dramatically improved, which helps a lot in big rooms
|
||
> * Retries, backoff and blacklisting have also been implemented in the federation sender to handle cases where remote homeservers are unavailable much more gracefully
|
||
>
|
||
> * Retrieving missing state when receiving incoming events over federation is a bit more robust now
|
||
> * Creating direct chats now works
|
||
>
|
||
> * Invites are mostly working now overall, both locally and over federation
|
||
> * `RespState` and `RespStateJoin` have been fixed in gomatrixserverlib
|
||
>
|
||
> * Room joins and leaves are now handled by new code across the roomserver and federation server perform APIs, which reduces complexity significantly
|
||
|
||
### Synapse
|
||
|
||
[Neil](https://matrix.to/#/@neilj:matrix.org) offered:
|
||
|
||
> * Redis live in production for m.org! We did not expect this to translate into a significant improvement in performance directly, but it means that we can add new workers without any extra overhead on the master process which has been _very_ useful in supporting cross signing.
|
||
>
|
||
> * Fixing bugs leading to messages getting stuck at the bottom of the timeline as well as messages not making it to sync at all.
|
||
>
|
||
> * Lots of improvements to deal with the extra load generated by cross signing.
|
||
>
|
||
> All of these changes will be available in v1.13.0 which should have a release candidate ready rsn.
|
||
>
|
||
> Next week, we continue to work on sharding changes, further SSO support and ensuring that cross signing adoption is as smooth as possible.
|
||
|
||
### architect
|
||
|
||
[Gnuxie](https://matrix.to/#/@gnu_ponut:matrix.org) said:
|
||
|
||
> [Architect](https://gitlab.com/cal-coop/architect) is a homeserver project written in [Common Lisp](https://common-lisp.net). We intend to create a high performance homeserver using the meta-programming features of Common Lisp to reduce the amount of redundant and timely code that needs to be written and maintained.
|
||
>
|
||
> #### architect events
|
||
>
|
||
> I created a [json-schema](https://gitlab.com/Gnuxie/json-schema2) library, to generate class definitions directly from the Matrix specification. These classes also have information attached to them to allow for serialisation, using a metaclass from [json-clos](https://gitlab.com/Gnuxie/json-clos).
|
||
>
|
||
> This is done entirely dynamically without writing to source files. [The invocation](https://gitlab.com/cal-coop/architect/architect.events) of json-schema that creates classes for the `client-server`, `server-server` and `application-service` protocols is only about 20 lines.
|
||
|
||
I definitely approve of separating out the event library and generating it from the spec - Ruma also has this approach.
|
||
|
||
### Conduit
|
||
|
||
Conduit is a Matrix homeserver written in Rust <https://conduit.rs>
|
||
|
||
[timo](https://matrix.to/#/@timo:koesters.xyz) told us:
|
||
|
||
> This week I refactored most of the data handling code to make it both more efficient and easier to read. I started by splitting a file called "data.rs" into multiple smaller files that handle just one part of the database, like "users.rs", "rooms.rs" or "edus.rs". I continued improving the code by making methods return iterators instead of vectors and propagating errors instead of crashing directly. Lastly, I added a few comments here and there and made sure everything works.
|
||
>
|
||
> Meanwhile, @Valkum experimented with CI and @MTRNord is working on FluffyChat Flutter support.
|
||
>
|
||
> Finally, I want to thank my supporters on [Liberapay](https://liberapay.com/timokoesters).
|
||
|
||
## Dept of Bridges 🌉
|
||
|
||
### matrix-signal bridge
|
||
|
||
[witchent](https://matrix.to/#/@witchent:matrix.org) told us:
|
||
|
||
> After a few weeks of work the matrix-signal bridge is now functional again. In the process I also added the possibility to send audio and video files among other things.
|
||
>
|
||
> If you want to try it out go to <https://github.com/witchent/matrix-puppet-signal.>
|
||
|
||
### mx-puppet-bridge
|
||
|
||
[mx-puppet-bridge](https://github.com/Sorunome/mx-puppet-bridge) is a general bridging library that supports (double)bridging and relays. The goal is to make it as easy as possible for others to bridge new third-party protocols to matrix. [Support room](https://matrix.to/#/#mx-puppet-bridge:sorunome.de) [Donate](https://liberapay.com/Sorunome)
|
||
|
||
[sorunome](https://matrix.to/#/@sorunome:sorunome.de) reported:
|
||
|
||
> mx-puppet-bridge now supports emote synchronising using revolution's custom emotes! The discord protocol implementation (mx-puppet-discord) already utilizes this
|
||
|
||
### Easybridge is a multi-user bridge for small Matrix servers
|
||
|
||
[LX](https://matrix.to/#/@lx:deuxfleurs.fr) reported:
|
||
|
||
> Easybridge is a multi-user bridge for small Matrix servers, with the idea of making it easy for non-technical users to bridge their external accounts into Matrix. Once configured next to a server, users can just go to a dedicated web page and add their accounts with a simple form. Currently supported protocols include IRC (buggy), XMPP (basic feature only), Mattermost (quite in good shape) and Facebook Messenger (has issues with disconnections). Available at the following link: <https://git.deuxfleurs.fr/lx/easybridge>
|
||
|
||
### matrix-appservice-slack
|
||
|
||
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) offered:
|
||
|
||
> Hello one and all. Today we're releasing the [1.2.0](https://github.com/matrix-org/matrix-appservice-slack/releases/tag/1.2.0) of the slack bridge. No notable changes from the last RC this time, but another release should follow this one soon to make changes to the provisioning system :)
|
||
|
||
## Dept of Clients 📱
|
||
|
||
### gomuks
|
||
|
||
[gomuks](https://maunium.net/go/gomuks) is a terminal based Matrix client written in Go. [Source on GitHub](https://github.com/tulir/gomuks)
|
||
|
||
[Tulir](https://matrix.to/#/@tulir:maunium.net) offered:
|
||
|
||
> gomuks's e2ee support is now on the master branch. The basic olm/megolm things like key distribution work fine, but no advanced stuff like key import/export or device verification yet.
|
||
>
|
||
> I'll probably add e2be to mautrix-whatsapp next and then add some of the advanced e2ee stuff to gomuks. I'll also make a v0.1.0 release in gomuks after I figure out some bugs in message history loading.
|
||
|
||
### Nheko
|
||
|
||
[Nheko](https://github.com/Nheko-Reborn/nheko) is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at
|
||
|
||
[Nico (@deepbluev7:neko.dev)](https://matrix.to/#/@deepbluev7:neko.dev) reported:
|
||
|
||
> Apart from some further speedups, we've been working on reactions. Nheko can now display them and sending them should be done soon too. We also fixed a few bugs, when people reported them and you can now select, who you want to reply to by using a keyboard shortcut (Alt+Arrow keys for now). We will probably release a new version once reactions are done.
|
||
|
||
![2020-05-07-koLge-clipboard(1).png](/blog/img/2020-05-07-koLge-clipboard(1).png)
|
||
|
||
### RiotX v0.19.0
|
||
|
||
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) said:
|
||
|
||
> We have released RiotX v0.19.0 on the PlayStore on Tuesday! This is a pretty huge release, including all the work on cross-signing, but also other features like changing account password, deactivating account, saving media to Gallery, etc., without forgetting a lot of bug fixes. More detailed change log can be found here: <https://github.com/vector-im/riotX-android/releases/tag/v0.19.0.>
|
||
>
|
||
> We are now working to implement the main missing features compare to Riot-Android, with the target to upgrade Riot-Android with RiotX codebase in a few weeks.
|
||
|
||
### Riot-iOS
|
||
|
||
[Manu](https://matrix.to/#/@Manu:matrix.org) offered:
|
||
|
||
> This week has mostly been another cross-signing week to improve it and to fix bugs. We released 0.11.2 on Monday. We are going to release 0.11.3 with the work we made this week. It should be available in the App Store tomorrow.
|
||
>
|
||
> We also released MatrixSDK 0.16.4 with the last version of AFNetworking. That means apps using the MatrixSDK should be able to publish to the App Store again. There is no more usage of `UIWebView`.
|
||
|
||
### Radical Native
|
||
|
||
[stoic](https://matrix.to/#/@stoically:matrix.org) offered:
|
||
|
||
> Your favorite way of electron-free searching through encrypted rooms in Riot Web was just updated to v0.1beta11, featuring:
|
||
>
|
||
> * Windows support
|
||
>
|
||
> * Packages for Ubuntu/Debian (.deb), MacOS (.pkg) and Windows (.exe) to make installation a whole lot easier
|
||
> * Updated to latest seshat (1.3.3)
|
||
>
|
||
> * Get it here: <https://github.com/stoically/radical-native>
|
||
|
||
### New translation projects for RiotX and Nio
|
||
|
||
Take a look at <https://translate.riot.im/projects/riot-android/> and see if you can help with translation there.
|
||
|
||
[Nio (client)](https://nio.chat) translations are also now available on Weblate - go forth, translate and help Kilian out. Or, "aushelfen" him, as he might say.
|
||
|
||
### Revolution
|
||
|
||
> Revolution is a riot-web fork that has things like custom emotes. Have you heard of it before? Well, it's been around for about two years already!
|
||
>
|
||
> You can try it out on <https://ponies.im/_matrix/client/develop> or build it yourself from the repos at <https://gitlab.com/ponies-im>
|
||
>
|
||
> ```bash
|
||
>
|
||
> git clone <https://gitlab.com/ponies-im/matrix-js-sdk.git>
|
||
> cd matrix-js-sdk
|
||
>
|
||
> yarn install
|
||
> yarn build
|
||
>
|
||
> yarn link
|
||
> cd ..
|
||
>
|
||
> git clone <https://gitlab.com/ponies-im/matrix-react-sdk.git>
|
||
> cd matrix-react-sdk
|
||
>
|
||
> yarn link matrix-js-sdk
|
||
> yarn install
|
||
>
|
||
> yarn build
|
||
> yarn link
|
||
>
|
||
> cd ..
|
||
> git clone <https://gitlab.com/ponies-im/riot-web.git>
|
||
>
|
||
> cd riot-web
|
||
> yarn link matrix-js-sdk
|
||
>
|
||
> yarn link matrix-react-sdk
|
||
> yarn install
|
||
>
|
||
> yarn build
|
||
> yarn electron # this also launches the app
|
||
>
|
||
> ```
|
||
|
||
## Dept of SDKs and Frameworks 🧰
|
||
|
||
### Ruma
|
||
|
||
Ruma is a Rust project to create a comprehensive set of APIs for Matrix. Previously there was a Ruma homeserver project.
|
||
|
||
[jplatte](https://matrix.to/#/@jplatte:matrix.org) offered:
|
||
|
||
> Things are progressing at a fast pace, and after a few weeks of mostly pre-releases, we've now got
|
||
>
|
||
> #### [ruma-events 0.21.0](https://github.com/ruma/ruma-events/blob/master/CHANGELOG.md#0210)
|
||
>
|
||
> With this release, it is now easier than ever to work with malformed and / or custom events. Some [big changes](https://github.com/ruma/ruma-events/issues/82) are already being planned for the next release.
|
||
>
|
||
> #### [ruma-api 0.16.0](https://github.com/ruma/ruma-api/blob/master/CHANGELOG.md#0160)
|
||
>
|
||
> We basically just deleted lots of code that is no longer needed with ruma-events 0.21.0. We also got rid of the dependency on the `url` crate, which really didn't have a very good reasont o be there.
|
||
>
|
||
> #### [ruma-client-api 0.8.0](https://github.com/ruma/ruma-client-api/blob/master/CHANGELOG.md#080)
|
||
>
|
||
> With this release, ruma-client-api is basically up-to-date with r0.6.0 of the matrix specification. Special thanks to @iinuwa for updating a bunch of those endpoints, and for adding support for the user-interactive authentication API!
|
||
|
||
## Dept of Bots 🤖
|
||
|
||
### Opsdroid home-assistant bot
|
||
|
||
[Oleg](https://matrix.to/#/@oleg:fiksel.info) reported:
|
||
|
||
> After seeing the fabulous [matrix live opsdroid party](https://matrix.org/blog/2020/05/01/this-week-in-matrix-2020-05-01) I decided to release my home-assistant bot.
|
||
>
|
||
> I use this bot for triggering home-assistant automations via matrix.
|
||
> All commands and actions can be configured using just a config file.
|
||
>
|
||
> * Get it : <https://gitlab.com/olegfiksel/home-assistant-bot>
|
||
>
|
||
> * Talk about it: [#home-assistant-bot:fiksel.info](https://matrix.to/#/#home-assistant-bot:fiksel.info)
|
||
>
|
||
> P.S: Thanks for Opsdroid! ❤︎
|
||
|
||
![2020-05-07-VqcJC-screenshot01.png](/blog/img/2020-05-07-VqcJC-screenshot01.png)
|
||
|
||
Awesome example of life imitating art! After we recorded the Matrix Live last week I resolved to get Opsdroid and Home Assistant running!
|
||
|
||
## New Public Rooms 🏟
|
||
|
||
### /r/AV1 discord bridged to Matrix
|
||
|
||
[dandellion](https://matrix.to/#/@dandellion:dodsorf.as) reported:
|
||
|
||
> Anyone here is interested in AV1 (the new open video codec) and related modern codecs?
|
||
>
|
||
> I have bridged the /r/AV1 discord to [+av1:dodsorf.as](https://matrix.to/#/+av1:dodsorf.as)
|
||
|
||
## Dept of Interesting Projects 🛰
|
||
|
||
### Doctor Who watchalongs
|
||
|
||
[Brendan](https://matrix.to/#/@brendan:abolivier.bzh) said:
|
||
|
||
> The Matrix community editions of the Doctor Who watchalongs continue! Next up on our line-up is another two-parter on Sunday (May 10th), we'll be pressing play on The Zygon Invasion at 7PM BST, then on The Zygon Inversion at 8PM BST! Joining us on Twitter will be Peter Harness (writer) & Ingrid Oliver (Petronella Osgood aka The Osgoods™︎), and maybe more 🙂
|
||
>
|
||
> As always, to join the fun or know first-hand when the next event will happen, head over to [#doctor-who-watchalong:abolivier.bzh](https://matrix.to/#/#doctor-who-watchalong:abolivier.bzh)
|
||
|
||
## 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|352.5|
|
||
|2|phys.ethz.ch|394|
|
||
|3|maunium.net|458.5|
|
||
|4|envs.net|560|
|
||
|5|fab.network|601.5|
|
||
|6|asra.gr|659|
|
||
|7|2gather.community|675|
|
||
|8|matrix.vgorcum.com|701.5|
|
||
|9|gottliebtfreitag.de|726|
|
||
|10|danielvinci.com|749|
|
||
|
||
## 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>
|