364 lines
18 KiB
Markdown
364 lines
18 KiB
Markdown
+++
|
|
title = "This Week in Matrix 2020-05-29"
|
|
path = "/blog/2020/05/29/this-week-in-matrix-2020-05-29"
|
|
|
|
[taxonomies]
|
|
author = ["Ben Parsons"]
|
|
category = ["This Week in Matrix"]
|
|
|
|
[extra]
|
|
image = "https://matrix.org/blog/img/2020-05-29-vjRQ5-technicolor-yawn.jpg"
|
|
+++
|
|
|
|
## Matrix Live 🎙 Demos!
|
|
|
|
{{ youtube_player(video_id="v9qXjN0G1-k") }}
|
|
|
|
This week we have demos from our core team remote sync!
|
|
|
|
## Dept of Spec 📜
|
|
|
|
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) announced:
|
|
|
|
> 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:**
|
|
>
|
|
> * [MSC2540: Stricter event validation: JSON compliance](https://github.com/matrix-org/matrix-doc/pull/2540)
|
|
> * [MSC2240: Room version 6](https://github.com/matrix-org/matrix-doc/pull/2240)
|
|
>
|
|
> * [MSC2209: Alter auth rules to check notifications in m.room.power_levels](https://github.com/matrix-org/matrix-doc/pull/2209)
|
|
> * [MSC1466: Soft Logout](https://github.com/matrix-org/matrix-doc/issues/1466)
|
|
>
|
|
> **MSCs in Final Comment Period:**
|
|
>
|
|
> * _No MSCs are in FCP._
|
|
>
|
|
> **New MSCs:**
|
|
>
|
|
> * [MSC2582: Remove mimetype from EncryptedFile object](https://github.com/matrix-org/matrix-doc/pull/2582)
|
|
> * [MSC2579: Improved tagging support](https://github.com/matrix-org/matrix-doc/pull/2579)
|
|
>
|
|
> #### Spec Core Team
|
|
>
|
|
> In terms of Spec Core Team MSC focus for this week, we've still got [MSC2366](https://github.com/matrix-org/matrix-doc/pull/2366) (verification flows) and [MSC2399](https://github.com/matrix-org/matrix-doc/pull/2399) (UISI messaging), however they are now joined by a third, _secret_ MSC that we'll be working on internally for now :)
|
|
|
|
![2020-05-29-s6ujI-plot.png](/blog/img/2020-05-29-s6ujI-plot.png)
|
|
|
|
### Spec releases: Room Version 6, Client-Server r0.6.1, and Federation r0.1.4
|
|
|
|
Says TravisR:
|
|
|
|
> It's been a little while since we've done a round of spec releases, so we have a bunch of spec releases to share. If you're implementing something from the spec, please have a look at the news: https://matrix.org/blog/2020/05/27/room-version-6-client-server-r-0-6-1-and-federation-r-0-1-4-spec-releases/
|
|
>
|
|
> As always, any questions about the spec itself can be answered in [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org), [#matrix-dev:matrix.org](https://matrix.to/#/#matrix-dev:matrix.org), or in the various area-specific rooms floating around the federation.
|
|
|
|
## Dept of Servers 🏢
|
|
|
|
### Conduit
|
|
|
|
Conduit is a Matrix homeserver written in Rust <https://conduit.rs>
|
|
|
|
[timo](https://matrix.to/#/@timo:koesters.xyz) said:
|
|
|
|
> Hello again! This week I worked on access control, which means that private rooms are private and invite-only rooms are invite-only. The public room directory only shows rooms marked as such now.
|
|
>
|
|
> I also made [a milestone to track progress on Conduit 1.0](https://git.koesters.xyz/timo/conduit/milestones). This release marks the point where Conduit is fully usable as a non-federating homeserver. All features of the client server specification should be implemented, unless they can be seen as optional extensions (e.g. alternative registrations methods like email). Conduit should also be free of all known bugs with those features.
|
|
>
|
|
> Adding federation on top of the 1.0 release will very likely require breaking changes. This means that the release which brings federation will be 2.0 or later and will require a partial or full database deletion.
|
|
>
|
|
> @TravisR wrote a [fix for Riot Web](https://github.com/matrix-org/matrix-js-sdk/pull/1304), so you should be able to create accounts on Conduit from <<https://riot.im/app>> soon.
|
|
>
|
|
> Thanks to my supporters on [Liberapay](https://liberapay.com/timokoesters).
|
|
|
|
### Dendrite / gomatrixserverlib
|
|
|
|
Dendrite is a next-generation homeserver written in Go
|
|
|
|
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) said:
|
|
|
|
> Updates:
|
|
>
|
|
> * The monolith now has a "hybrid" mode that uses the full HTTP APIs instead of short-circuiting
|
|
>
|
|
> * A number of the internal HTTP APIs are now tested fully and have been fixed as a result, which will also improve running a full polylith component deployment
|
|
> * Server keys are now managed by a separate server key API component
|
|
>
|
|
> * Batched sends in the federation sender are now working properly, improving send performance significantly
|
|
> * Error handling in the federation `/send` endpoint has been tweaked
|
|
>
|
|
> * `/get_missing_events` now returns events that don't fail signature checks
|
|
> * Federated room joins by room alias now attempt the server specified in the alias much more reliably
|
|
>
|
|
> * The correct room ID is now returned from the PerformJoin API
|
|
> * Much of the room server storage code has been deduplicated
|
|
>
|
|
> * Fixed some bugs in the device database storage code
|
|
> * Sync streams are now managed per-user-per-device, rather than just per-user
|
|
>
|
|
> * We no longer incorrectly default to federated joins in response to local invites
|
|
>
|
|
> Spec compliance:
|
|
>
|
|
> * Client-Server APIs: 34% (228/672 tests)
|
|
>
|
|
> * Federation APIs: 34% (35/103 tests)
|
|
|
|
### Synapse
|
|
|
|
Says Neil:
|
|
|
|
> The main news this week is that we switched event persistence away from the matrix.org master process which has made a big difference to overall performance. The impact is best demonstrated by graphing message send times.
|
|
|
|
![synapse perf](/blog/img/2020-05-29-synapse-perf.png)
|
|
|
|
> We also shipped [1.14.0](https://matrix.org/blog/2020/05/28/synapse-1-14-0-released) which includes OpenId Connect support and improved cache control granularity. It also contains rooms v6.
|
|
>
|
|
> Next week will be having a think about what to do next for matrix.org performance. Watch this space.
|
|
|
|
### TARDIS (Time Agnostic Room DAG Inspection Service)
|
|
|
|
[Matthew](https://matrix.to/#/@matthew:matrix.org) offered:
|
|
|
|
> I made a TARDIS (Time Agnostic Room DAG Inspection Service) - a simple time-travelling debugger for Room DAGs which plugs into Dendrite's internal APIs to visualise room DAGs. The intention is to provide it as a widget which Riot can use to visualise DAGs for debugging, particularly for P2P Matrix. The time-travel bit is simply that it could let you filter out the newer events to show how the DAG has evolved over time, although that isn't hooked up yet. <https://github.com/matrix-org/tardis>
|
|
|
|
![2020-05-29-vjRQ5-technicolor-yawn.jpg](/blog/img/2020-05-29-vjRQ5-technicolor-yawn.jpg)
|
|
|
|
## Synapse Deployment 📥
|
|
|
|
### Kubernetes
|
|
|
|
[Ananace](https://matrix.to/#/@ace:kittenface.studio) said:
|
|
|
|
> Just pushed the [K8s-optimized images](https://github.com/ananace/matrix-synapse) for Synapse 1.14.0 - slight changes have been done to the image to further streamline it a bit.
|
|
|
|
### Docker-matrix
|
|
|
|
[Mathijs](https://matrix.to/#/@mathijs:matrix.vgorcum.com) said:
|
|
|
|
> With the release of synapse 1.14.0 the avhost image, including jemalloc, mjolnir and coturn has been updated as well, avhost/docker-matrix:v1.14.0, as always the release candidates were uploaded at mvgorcum/docker-matrix:v1.14.0rc1 and rc2
|
|
|
|
## Dept of SDKs and Frameworks 🧰
|
|
|
|
### Ruma
|
|
|
|
[jplatte](https://matrix.to/#/@jplatte:matrix.org) offered:
|
|
|
|
> This week,
|
|
>
|
|
> * iinuwa added some new endpoints to ruma-federation-api
|
|
>
|
|
> * devinr528 wrote lots of macro code for the next major revision of ruma-events as part of his GSoC project
|
|
> * Timo (author of the Conduit homeserver) reported lots of small issues with ruma-client-api of which some are now fixed already
|
|
>
|
|
> Additionally, we released two new bugfix library versions:
|
|
>
|
|
> * [ruma-events 0.21.3](https://github.com/ruma/ruma-events/releases/tag/0.21.3) fixes an event serialization issue
|
|
>
|
|
> * ruma-serde 0.2.2 (an internal dependency) fixed an incomplete part of querystring deserialization, so Conduit (and other future homeservers building on ruma-*-api) can properly handle querystrings in which parameters are repeated (like the `server_name` in [/join/{roomIdOrAlias}](https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-join-roomidoralias))
|
|
|
|
### buildbot-matrix v0.0.5
|
|
|
|
Thanks [haywo](https://matrix.to/#/@haywo:nct08.de) for this update:
|
|
|
|
> buildbot-matrix v0.0.5 has been released:
|
|
> * Option to only get notifications on finished builds was added.
|
|
>
|
|
> buildbot-matrix is a small plugin for the Buildbot CI framework which sends notifications to matrix rooms.
|
|
> It's available an GitHub and PyPi, take a look at [https://github.com/HayWo/buildbot-matrix](https://github.com/HayWo/buildbot-matrix) for more information.
|
|
|
|
## Dept of Bridges 🌉
|
|
|
|
### Let's start with the big news of the week
|
|
|
|
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) announced:
|
|
|
|
> I, Half-Shot, changed the status of the IRC Bridge on <https://matrix.org/docs/projects/bridge/matrix-org-irc-bridge> from "Early beta" to "Stable". This does not mean it's feature complete, or even all the way there, but it sure doesn't crash nearly as often as it did when I started, so that's good enough for me.
|
|
|
|
### matrix-appservice-slack 1.4.0-rc1
|
|
|
|
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) offered:
|
|
|
|
> Hey folks, we've released the [first RC for 1.4.0](https://github.com/matrix-org/matrix-appservice-slack/releases/tag/1.4.0-rc1) of the slack bridge. This change includes a number of bug fixes around puppeting, but includes a few nice to haves like a /ready endpoint for kube/docker deployments and setting profile information on startup. Please test, and feedback in #matrix_appservice_slack:cadair.com :)
|
|
|
|
### Mau-bridge multi-update
|
|
|
|
[Tulir](https://matrix.to/#/@tulir:maunium.net) told us:
|
|
|
|
> I've been working on improving the reliability of my bridges, primarily by making sure that the user knows if something went wrong. All my bridges now support delivery receipts (implemented as bridge bot read receipts) and can send delivery error messages if there was an error bridging a message. The Facebook and Hangouts bridges also now send connection status messages to a bridge notice room like WhatsApp already did before.
|
|
|
|
### Minetrix
|
|
|
|
Certainly not from *this* week, but we haven't featured it before: [Minetrix](https://github.com/rrerrNet/Minetrix) allows you to bridge a Minecraft server with a Matrix room.
|
|
|
|
I read recently that Minecraft still has [126 million MAU](https://news.xbox.com/en-us/2020/05/18/minecraft-connecting-more-players-than-ever-before/)!
|
|
|
|
## Dept of Clients 📱
|
|
|
|
### Daydream
|
|
|
|
[mtrnord](https://matrix.to/#/@mtrnord:nordgedanken.dev) told us:
|
|
|
|
> A Matrix webclient written in (mostly) Rust using the official Matrix-Rust-SDK and Rusts WASM Support.
|
|
>
|
|
> Daydream is the Idea of a Rust Matrix Client. It is still in a very early state and at the time of writing this supports basic displaying of text, image and bot messages as well as sending plain text and markdown.
|
|
>
|
|
> Try it at <https://daydream.nordgedanken.dev/> or check out the Source Code at <https://github.com/MTRNord/Daydream>
|
|
>
|
|
> Feel free to join the Matrix Room: [#daydream:nordgedanken.dev](https://matrix.to/#/#daydream:nordgedanken.dev)
|
|
|
|
![2020-05-29-ATL-f-grafik.png](/blog/img/2020-05-29-ATL-f-grafik.png)
|
|
|
|
### RumaTui
|
|
|
|
Thanks [devinr528](https://matrix.to/#/@devinr528:matrix.org) for sharing this
|
|
WIP Command line Matrix client using matrix-rust-sdk:
|
|
|
|
* Display read receipts for the last few messages
|
|
* Display membership status when updated
|
|
* Join a room you have been invited to
|
|
* Client sends read receipts to server
|
|
* Display when messages have been read
|
|
* Leave a room by pressing Delete key (this should probably be a Ctrl-some key deal...)
|
|
* Specify homeserver to join on start up (before the login screen)
|
|
* Simply run `rumatui [HOMESERVER]`, defaults to \"http://matrix.org\"
|
|
* Displays errors, albeit not very helpful or specific
|
|
* Receive and display messages
|
|
* formatted messages display as rendered markdown
|
|
* Send messages
|
|
* local echo is removed
|
|
* Send textbox grows as more lines of text are added
|
|
* Selectable rooms list
|
|
* change rooms using the arrow keys, making this clickable may be difficult
|
|
* Login widget is click/arrow key navigable
|
|
* hides password
|
|
|
|
![rumatui-demo](/blog/img/2020-05-29-rumatui-notice.gif)
|
|
|
|
A new notification bar under the message window displays notifications such as membership changes, typing, and read notices.
|
|
I am hoping to have an actual release on crates.io by the end of the day. If you have any thoughts join [#rumatui:matrix.org](https://matrix.to/#/#rumatui:matrix.org) or check it out on [github](https://github.com/DevinR528/RumaTui).
|
|
|
|
### Riot-web
|
|
|
|
[Bruno](https://matrix.to/#/@bwindels:matrix.org) said:
|
|
|
|
> This week on Riot-web, we've been:
|
|
>
|
|
> * starting work on shifting the UX for the encryption upgrade towards using recovery keys in favor of passphrases.
|
|
>
|
|
> * starting early work on a redesigned matrix.to website
|
|
> * starting looking to integrate riot desktop with the native password manager of your platform of choice through keytar
|
|
>
|
|
> * fixing some issues with the (still experimental) IRC layout
|
|
> * iterating on the (also still experimental) new room list
|
|
>
|
|
> * looking into some issues that arose from the cross-signing release
|
|
|
|
### Riot-iOS
|
|
|
|
Says Manu:
|
|
|
|
> Riot-iOS (and MatrixSDK and MatrixKit) is now fully compatible with iOS13 SDK. A TestFlight 0.12.0 will be available soon.
|
|
> The work is still on its branches (xcode11). It comes with the new notification service mechanism and we want to run a lot of tests next week before going to production.
|
|
|
|
### 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) offered:
|
|
|
|
> * Ikito added options to show larger emoji in the timeline and added tooltips to all settings, that provide additional explanations.
|
|
>
|
|
> * You can now limit the width of the timeline to make long messages more readable, if you maximise Nheko on a widescreen monitor.
|
|
> * Lorenzo added a pretty much complete italian translation!
|
|
>
|
|
> * Settings that apply to the qml parts in Nheko now apply immediately without a restart.
|
|
|
|
## Dept of Bots 🤖
|
|
|
|
### midori jabbot 0.5
|
|
|
|
[Torrey Searle](https://matrix.to/#/@tsearle:hackerspaces.be) reported:
|
|
|
|
> midori jabbot 0.5 has now been released.
|
|
>
|
|
> Jabbot is a multi-protocol chat bot that can be taught new commands in-chat
|
|
>
|
|
> This is the first release of jabbot with support of matrix in it. This release also includes support for DISCORD.
|
|
>
|
|
> Additionally this release is the first release that can be installed via APT
|
|
>
|
|
> ```
|
|
>
|
|
> echo "deb [trusted=yes] <https://dl.bintray.com/midoricorp/deb> unstable main" | sudo tee -a /etc/apt/sources.list
|
|
> apt-get update
|
|
>
|
|
> apt-get install jabbot-full
|
|
> ```
|
|
>
|
|
>
|
|
> See <https://github.com/midoricorp/jabbot/blob/master/README.md> for details
|
|
>
|
|
> or goto [#midori-dev:hackerspaces.be](https://matrix.to/#/#midori-dev:hackerspaces.be) for support/live-demo
|
|
|
|
## Dept of Guides 🧭
|
|
|
|
### Cross Signing explanation
|
|
|
|
This is a great resource for helping explain how cross-signing works!
|
|
|
|
[JCG](https://matrix.to/#/@jan.christian:gruenhage.xyz) said:
|
|
|
|
> After explaining cross signing to others multiple times in the past and seeing the question again on mastodon, I decided to write a short blog post on the topic, explaining how the keys interact with each other and how Alice's devices then end up trusting Bob's devices. You can read it over on <https://jcg.re/blog/quick-overview-matrix-cross-signing/>
|
|
|
|
## Cross-signing implementors guide
|
|
|
|
This one isn't quite merged yet as we're going to give a thorough review, but big *thank you* to [sorunome](https://matrix.to/#/@sorunome:sorunome.de) for taking the time to put this together:
|
|
|
|
> While implementing cross-signing for fluffychat soru decided to write a guide that would help other client developers to implement that, too. So far it is still WIP and doesn't cover too much, yet, but soru might have typed up more once this TWIM goes live. The PR (and thus the markdown of the guide) can be found here: <https://github.com/matrix-org/matrix.org/pull/740>
|
|
|
|
## Dept of Event Videos 📹
|
|
|
|
[Matthew spoke at Rust London meetup](https://twitter.com/RustLdnUsers/status/1265712573078540290) earlier in the week, check out the video!
|
|
|
|
{{ youtube_player(video_id="XCQdEIVcwzA") }}
|
|
|
|
(Matrix at around 29:30)
|
|
|
|
## New Public Rooms 🏟
|
|
|
|
[Ludwig](https://matrix.to/#/@ludwig:disko.media) announced:
|
|
|
|
> May I advertise [#matrix-design:matrix.org](https://matrix.to/#/#matrix-design:matrix.org) to you.
|
|
>
|
|
> It's a bunch of people who are passively learning design for their matrix projects. You might pick up a few things if you join :p
|
|
|
|
## 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|350.5|
|
|
|2|jonas-schuermann.name|437.5|
|
|
|3|fachschaften.org|446|
|
|
|4|revreso.de|576.5|
|
|
|5|heitkoetter.net|598|
|
|
|6|matrix.vgorcum.com|634.5|
|
|
|7|c-base.org|694|
|
|
|8|fab.network|828|
|
|
|9|sumnerevans.com|1023|
|
|
|10|nltrix.net|1032|
|
|
|
|
## Final Thoughts
|
|
|
|
You may have seen that [Mastodon is preparing to implement Olm](https://github.com/tootsuite/mastodon/pull/13820)! Read [some news in German](https://www.golem.de/news/twitter-alternative-mastodon-soll-ende-zu-ende-verschluesselung-bekommen-2005-148714.html) or why not watch [Gargon on Open Tech Will Save Us #2](https://www.youtube.com/watch?v=O3YP1TU-L_8) where the idea was first discussed? It's like you're in the room where it happens... 🎶
|
|
|
|
## 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>
|