matrix.org/content/blog/2020/06/2020-06-05-this-week-in-mat...

497 lines
24 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-06-05"
path = "/blog/2020/06/05/this-week-in-matrix-2020-06-05"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2020-06-05-ml.png"
+++
## Firstly... 🏃‍♀️
Make an entry in your calendar, don't just write it on your hand: [Open Tech Will Save Us](https://matrix.org/open-tech-will-save-us/) is back for a third edition!
**Next Wednesday, 10th June 2020!**
## Matrix Live 🎙
{{ youtube_player(video_id="zyUEvprkvjY") }}
## Dept of Spec 📜
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) reported:
> 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:**
>
> * [Proposal for storing megolm keys serverside](https://github.com/matrix-org/matrix-doc/issues/1219)
>
> **MSCs in Final Comment Period:**
>
> * [MSC2265: Proposal for mandating case folding when processing e-mail address localparts](https://github.com/matrix-org/matrix-doc/pull/2265) (merge)
>
> **New MSCs:**
>
> * [MSC2611: Remove m.login.token User-Interactive Authentication type from the specification](https://github.com/matrix-org/matrix-doc/pull/2611)
> * [MSC2610: Remove m.login.oauth2 User-Interactive Authentication type from the specification](https://github.com/matrix-org/matrix-doc/pull/2610)
>
> * [MSC2604: Accept device information for the login fallback endpoint](https://github.com/matrix-org/matrix-doc/pull/2604)
> * [MSC2596: Proposal to always allow rescinding invites](https://github.com/matrix-org/matrix-doc/pull/2596)
>
> * [MSC2589: Improve replies](https://github.com/matrix-org/matrix-doc/pull/2589)
> #### 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/issues/2366) (verification flows) on our plate, but we're removing [MSC2399](https://github.com/matrix-org/matrix-doc/issues/2399) (UISI messaging) as it just needs one more final tick. We're adding [MSC2403](https://github.com/matrix-org/matrix-doc/issues/2403) (knocking) in its place.
![2020-06-05-TmAIq-plot.png](/blog/img/2020-06-05-TmAIq-plot.png)
## Dept of Servers 🏢
### Mascarene
[Nico](https://matrix.to/#/@nico:beerfactory.org) said:
> [Mascarene](https://gitlab.com/mascarene/mascarene) is a quite new homeserver implementation project started a few months ago. Now it's time to introduce it.
>
> Mascarene is written in [Scala](https://www.scala-lang.org/), runs on JVM and relies on [Akka](https://akka.io/) actor model. Out of the box it provides features like efficient streaming I/O, clustering and live data distribution. Data are backed in a PostgreSQL database.
>
> The project is in early stage but already provides a few endpoints which make Mascarene able to talk to Riot.
>
> You can test it at <https://snapshot.mascarene.org>. You should be able to register, login, create a room and talk to yourself.
>
> Current work is focused on client API implementation; federation or e2ee will come later.
>
> Contributions are welcome, join us on [#mascarene:beerfactory.org](https://matrix.to/#/#mascarene:beerfactory.org)
### Conduit
Conduit is a Matrix homeserver written in Rust <https://conduit.rs>
[timo](https://matrix.to/#/@timo:koesters.xyz) told us:
> Welcome back! This week I went through the whole Client-Server API and wrote down everything that is still missing from Conduit. You can find issues for all of them in the [milestone for Conduit 1.0](https://git.koesters.xyz/timo/conduit/milestones). This should make it more easy for contributors to find something to work on and gives a lot more structure to the repo (maybe I also did it, because it's so satisfying to close issues and see the milestone percentage go up 😛).
>
> Some of the issues I could already close this week include:
>
> * Implement redaction
>
> * Implement loading the message someone replied to (/context)
> * Fix bugs with notifications
>
> * Don't send typing events when nothing happened
> * Bundle typing events into one EDU
>
> * Don't send notification counts every /sync
> * Implement heroes
>
> As you can tell, a lot of work is starting to go into smaller improvements, which is a good thing, because it means most of the core work is already done!
>
> Thanks to my supporters on [Liberapay](https://liberapay.com/timokoesters) (Take a look, I improved it 🙂).
### Synapse
[Neil](https://matrix.to/#/@neilj:matrix.org) told us:
> This week in Synapse land we have been focusing on bug fixes especially SSO and soft logout.
>
> We also spent some time thinking about how to further improve performance for large scale deployments (like matrix.org). In short this will mean sharding contested workers such as the media repo worker, the federation sender and the federation reader. We also want to remove some more functionality from the master process because it is still sitting at about 80% and wed like some more head room. We'd also like to fix up the state compressor so it can easily be run as a background progress to save on disk space, this will benefit all installations big and small. Finally we want to speed up joins over federation. Exciting times.
>
> Next week, more of the same and we should start on some of the perf items. Also look out for changes to notification defaults.
### Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) offered:
> Updates:
>
> * Room version 6 support has been added
>
> * Server signing keys which have passed their validity period are now re-requested and updated properly, increasing reliability of federation substantially
> * Federated room joins have been significantly sped up by requesting missing auth events inline when verifying room state, rather than repeating the entire verification for each missing event
>
> * Local send-to-device support has been added (federated send-to-device coming soon)
> * A lot of code clean-up has taken place (with more to come), including cleaning up the internal APIs and the component bases
>
> * Decoding of room version 3 event IDs in request URLs has been improved
> * Inbound federation requests now interrupt backoff intervals on outbound sends
>
> * A new internal API exists now for interrupting backoff intervals on the federation sender
> * The federated `/devices` endpoint now returns in the correct format
>
> * Public rooms are now sorted by their member count
> * Only our own aliases are stored in the public rooms directory now
>
> * gomatrixserverlib is now responsible for marking room versions as supported/stable
> * Spec-compliant transactions are now sent to the appservice component
>
> * File URIs for SQLite databases are now set up using common functions
> * Handling registration for a user that already exists has been fixed (thanks [S7evinK](https://github.com/matrix-org/dendrite/pull/1076)!)
>
> * Dendrite can now be configured to use a HTTP proxy server for outbound HTTP (thanks [dr-bonez](https://github.com/matrix-org/dendrite/pull/1055)!)
>
> Sytest compliance:
>
> * Client-server APIs: 36%
>
> * Server-server APIs: 35%
>
> In other news, Kegan wrote a post on [how p2p.riot.im works](https://github.com/matrix-org/dendrite/wiki/How-p2p.riot.im-works), including Dendrite's journey to SQLite and WebAssembly!
Additionally! You may have already read about [v0.1.1 of the P2P Matrix demo](https://matrix.org/blog/2020/06/02/introducing-p-2-p-matrix) - this is a big update, with local storage, room alias handling, federation improvements and more!
## Dept of Bridges 🌉
### Matrix Appservice Minecraft bridge now in beta
[Dylan](https://matrix.to/#/@dhmf:dhdf.dev) reported:
> My Matrix Appservice Minecraft bridge is now in beta
>
> * <https://github.com/dhghf/matrix-appservice-minecraft>
>
> Here is our Matrix room [#minecraft:dhdf.dev](https://matrix.to/#/#minecraft:dhdf.dev)
![2020-06-05-FLroa-image.png](/blog/img/2020-06-05-FLroa-image.png)
![2020-06-05-0PFg--2020-06-02_04.12.42.png](/blog/img/2020-06-05-0PFg--2020-06-02_04.12.42.png)
More screenshots: <https://github.com/dhghf/matrix-appservice-minecraft#screenshots>
### Tuple
[Alexander Eisele](https://matrix.to/#/@alexander:eiselecloud.de) reported:
> Tuple is a very early simple matrix <--> mqtt bridge for IOT and other embedded devices.
>
> It's my very first golang project, but it works(TM).
>
> * Repo: <https://gitlab.eiselecloud.de/matrix/tuple>
>
> * Discussion/Testing: [#tuple:eiselecloud.de](https://matrix.to/#/#tuple:eiselecloud.de)
This is exciting! I would love to see more IoT-related projects!
### mautrix-hangouts
[Tulir](https://matrix.to/#/@tulir:maunium.net) reported:
> mautrix-hangouts can also do backfilling now, both when creating portal and missed messages when connecting
### mautrix-facebook
[Tulir](https://matrix.to/#/@tulir:maunium.net) told us:
> mautrix-facebook got support for backfilling history when creating portals and backfilling missed messages when connecting. There's also an option to periodically reconnect to potentially fix the bug where Facebook decides that you don't get messages anymore, but doesn't actually disconnect you.
### mautrix-whatsapp
[Tulir](https://matrix.to/#/@tulir:maunium.net) said:
> I had apparently forgotten to implement bridge information in the whatsapp bridge when I implemented it in my other bridges, but that mistake is now corrected. I also fixed a bug with encryption where it would generate too many one-time keys and cause messages to be undecryptable. Finally, mautrix-whatsapp had its first release this week since it's working reasonably well now.
## Dept of Clients 📱
### Radical Native
[stoic](https://matrix.to/#/@stoically:matrix.org) reported:
> Eager to test the keytar feature (pickle key stored in OS secret storage) with Riot Web? Support landed in [radical-native v0.1beta13](https://github.com/stoically/radical-native), which uses [Rust keytar bindings](https://github.com/stoically/keytar-rs) under the hood. Testing requires the latest and greatest of Riot Web, so riot.im/develop might be the place to see it in action
![2020-06-05-nyIuw-image.png](/blog/img/2020-06-05-nyIuw-image.png)
Keytar support is a [very very new feature](https://github.com/matrix-org/matrix-js-sdk/pull/1387), [uhoreg](https://matrix.to/#/@hubert:uhoreg.ca), who has been [working on it in the shadows](https://github.com/vector-im/riot-desktop/pull/95) and wasn't expecting to see it land yet, commented:
> 😲
### Pattle: version 0.17.0
Pattle is a client written for Flutter using Dart
[Wilko](https://matrix.to/#/@wilko:pattle.im) offered:
> A new version has been made available and will become available on Google Play and TestFlight!
>
> ⚠️ If you're not logged out, it's recommend that you logout and additionally clear your data after installing the new version! ⚠️
>
> #### Changes
>
> * Added the ability to reply to messages!
>
> * You can now accept (and reject) invites!
> * You can now join and search channels!
>
> * Chat input has been redesigned!
> * Chat details has been somewhat redesigned
>
> * The group icon in the chat's details is now blurred and can be shown unblurred by scrolling to the top
> * Replies are now a maximum of 3 lines long
>
> * The current version is now shown in settings
> * Wait a bit after typing before checking the homeserver when logging in
>
> * Chat name change events are now shown
> * Chat icon change events are now shown
>
> * Errors are now reported to Sentry again!
> * You won't enter the app with empty chats if the initial load failed
>
> * Show date above chat creation event
> * Fix time sometimes being dark and not readable on image messages
>
> * Fix sender's name going outside of bubble
> * Sender is now in bold for chat description change event
>
> * More messages are now loaded if initially not enough are displayed
> * Show ripple effect on chat app bar when tapping
>
> * And more!
>
> #### Get Pattle
>
> * **Android**
>
> * **[F-Droid](https://f-droid.org/en/packages/im.pattle.app/)**
> * **[Google Play](https://play.google.com/store/apps/details?id=im.pattle.app)**
>
> * **[iOS (TestFlight)](https://testflight.apple.com/join/uTytydST)**
>
> #### Get involved
>
> * **Follow development**: [#app:pattle.im](https://matrix.to/#/#app:pattle.im)
>
> * **Issues or suggestions**: [Post them here!](https://git.pattle.im/pattle/app/issues)
> * **Donate**: If you want to support Pattle, [you can donate!](https://liberapay.com/wilko/)
{{ youtube_player(video_id="76LTTfVZgi0") }}
### RiotX v0.21.0
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) announced:
> RiotX v0.21.0 has been released on May 28th. It adds support to identity server configuration and e-mail/phone binding and unbinding. It's also now possible to switch between languages inside the app and to display the list of attachments (media and file) of a room. A new setting has been also added to hide redacted (deleted) events in the timeline. As Riot-Android SAS v2 is also included in this release. Also `formatted_body` for `m.notice` and `m.emote` are now taken into account.
>
> This week we were still working on implementing VoIP (audio and video call). Support for integration manager, widgets and sending stickers has been merged to develop.
> Many new features are coming soon, stay tuned!
### Riot-Android classic
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) offered:
> Riot-Android: Version 0.9.12 has been released on May 20th. I forgot to mention it the TWIM of last week. It contains a fix for favorite rooms vanishing and also the SAS v2 implementation (new key agreement method).
### Mirage
[miruka](https://matrix.to/#/@miruka:privacytools.io) said:
> Mirage 0.5.1 has been released today:
>
> * Persistent, cross-client, push rules-aware unread message counters
>
> * Read receipts are now sent to mark rooms as read
> * Basic room settings can now be edited and saved
>
> * More control over window alerts, e.g. only enabling them for messages mentioning you
> * Lots of bugfixes
>
> [Full changelog](https://github.com/mirukana/mirage/releases/tag/v0.5.1)
### Riot-iOS
[Manu](https://matrix.to/#/@Manu:matrix.org) said:
> This week, we finalised our work around the iOS13 SDK. The coming public TestFlight (0.12.2) is the result of this work. It comes with a lot of changes including a full rewrite of the push handling codebase, trying to find solutions to make matrix e2ee compatible with iOS Notification Service Extension. Most of these changes are unfortunately invisible for end users. Please report any issues. Note this is safe to switch between this TF and 0.11.5.
>
> In parallel, we started to implement the cross-signing bootstrap and the recovery management. The UX of this is going to be refined on Riot-Web and RiotX-Android. Riot-iOS will implement the refined UX directly.
### Riot Web
A glossy Matrix collaboration client for the web. <https://riot.im>
[Ryan](https://matrix.to/#/@jryans:matrix.org) told us:
> We had several Riot Web releases this week, first with 1.6.3:
>
> * Security fix for auth handling in SSO deployments, thanks Quentin Gliech for responsible disclosure
>
> * Added more shortcuts to jump to read marker and upload a file
> * Fixed notification tray icon stability for desktop on Windows
>
> * Added an IRC style layout (currently available in labs only)
> * Added font scaling settings (currently available in labs only)
>
> * Fixed several bugs in the cross-signing bootstrap process
> * Converted older banner-style UI for updates etc. to newer toasts
>
> This was quickly followed by 1.6.4 to fix a few regressions with dismissing toasts, compact timeline layout, key backup, and tooltips on scroll.
## Dept of SDKs and Frameworks 🧰
### Matrix Dart SDK: version 0.32.0
[Wilko](https://matrix.to/#/@wilko:pattle.im) announced:
> * **Databases are now deleted as a migration strategy**
>
> This will be in effect until 1.0 (or a bit before). If needed, make a backup between every minor version bump.
>
> * All members necessary to render the timeline are now loaded from the store
>
> * `Room.myMembership` has been removed, use `Room.me.membership`
> * Add `Rooms.enter` and `Room.join` to join rooms
>
> * Add `Room.leave` method
> * Add `PublicRooms`
>
> * Add useful getters to `Member` like `isInvited` or `hasJoined`
> * Remove `AliasesChangeEvent`
>
> * Errors in the separate isolate are now added to the `updates` stream where possible, or thrown in the calling isolate
> * Fix profile API not working on servers where authorization is required
>
> * Add `MyUser.hasSynced`
> * Fix `count` not being nullable in `MemberTimeline.load`
>
> * More fixes and small changes!
>
> Get it on [pub](https://pub.dev/packages/matrix_sdk)!
### 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:
> This week,
>
> * Devin, our GSoC student, [started blogging](https://ruma.dev/news/gsoc-begins-2020/) on ruma.io
>
> * We released [ruma-identifiers 0.16.2](https://github.com/ruma/ruma-identifiers/releases/tag/0.16.2) and ruma-federation-api 0.0.2
> * We started updating ruma-events and ruma-client-api with the changes from version r0.6.1 of the client-server specification
>
> * We started moving all of our libraries into one [monorepo](https://github.com/ruma/ruma)!
> * As part of this, we introduced a kind of meta-library so you no longer have to keep the versions of the individual libraries in sync manually
>
> * We're hoping that this makes experiments across multiple libraries and the overall contribution process easier 🙂
## Dept of Interesting Projects 🛰
### Safe Support Chat
[Brendan](https://matrix.to/#/@brendan:abolivier.bzh) said:
> [Safe Support Chat](https://github.com/nomadic-labs/safesupport-chatbox), previously known as [OCRCC Chatbox](https://matrix.org/blog/category/this-week-in-matrix#ocrcc-embeddable-matrix-chatbox), now has a website with guides on how to set it up for organisations: <https://www.safesupport.chat/>
>
> For context, Safe Support Chat is an embeddable chatbox built on Matrix with cool features such as end-to-end encryption support to enable individuals to seek support with organisations that provide it. It was initially built for the [OCRCC](http://www.ocrcc.ca/) (Ontario Coalition of Rape Crisis Centres) in order to allow survivors of sexual violence to communicate and seek help safely with OCRCC facilitators.
>
> Kim Allen of Primal Glow Communications, one of the parties involved in Safe Support Chat's development, also recorded a podcast with Nomadic Labs about this project: <https://podcast.nomadiclabs.ca/episodes/the-adventure-of-building-an-open-source-chatbox>
## Dept of Ops 🛠
### matrix-docker-ansible-deploy
This [Ansible playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy) is meant to easily let you run your own Matrix homeserver.
[Slavi](https://matrix.to/#/@slavi:devture.com) reported:
> Thanks to [benkuly](https://github.com/benkuly)'s efforts, [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) now supports bridging to SMS (with one telephone number only) via [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge).
>
> To learn more, see our [Setting up Matrix SMS bridging](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/8d786713a6b8efb998a1313ca3fd1d9401e984cc/docs/configuring-playbook-matrix-bridge-sms.md) docs page.
### CLI Federation Tester
[Kai](https://matrix.to/#/@kai:matrix.chat-secure.de) reported:
> A new version of the terminal-based federation tester has been released. The current version 1.11 should now cover the entire server discovery process including scenarios with a .well-known configuration without a port, but with a DNS SRV entry.
>
> The script relies on bash, curl, jq and openssl. It has been tested on linux but should also work on *bsd and macos.
>
> The script can be downloaded here:
>
> [#cli_federation-tester_de:matrix.chat-secure.de](https://matrix.to/#/#cli_federation-tester_de:matrix.chat-secure.de)
>
> (The message about the latest version will always be pinned)
### FLAP
[Louis Chmn](https://matrix.to/#/@louis:chmn.me) announced:
> Hi, I've build FLAP to help other self-host multiple free software. FLAP can currently help you to easily setup Synapse, Riot, Nextcloud, SOGo and Jitsi all with SSO and low maintenance needs. Feel free to give it a try !
>
> * Sources are here: <https://gitlab.com/flap-box/flap>
>
> * If you need help setting things up, Matrix room is here: [#flap-software:matrix.org](https://matrix.to/#/#flap-software:matrix.org)
>
> For French companies, I am also offering managed paid hosting: <https://www.flap.cloud>
## Dept of Bots 🤖
### sparky's Matrix Bot
[sparky](https://matrix.to/#/@sparky:matrix.possumlodge.me) told us:
> Announcing Matrix Bot (name is a work in progress)
>
> The first "official" release of matrix bot has been made and you can find the latest release source at <https://github.com/sparky8251/matrix-bot/tree/v1.0.0>
>
> It's flagship features are currently
>
> * an imperial <--> metric unit converter for common conversational units
>
> * a configurable search and link for issues/pulls that responds to any message containing something in the format of `jf#123` or `jf #1234`
>
> * a configurable general purpose URL linker that responds to messages containing things such as `docs@hwa` or `link @troubleshooting` (both sides of the @ are configurable)
>
> There are plans to enable group pings, get a help command that can be limited to function only in a specific room, and more in the works so be sure to check back soon!
### matrix-reminder-bot
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) reported:
> [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) bot to remind you about things. Supports reminding an individual in a room or the whole room itself. Also supports setting alarms, which will continue to sound periodically until silenced.
>
> Built with [nio-template](https://github.com/anoadragon453/nio-template) and the excellent [matrix-nio](https://github.com/poljar/matrix-nio) library.
## 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|354|
|2|aragon.sh|419|
|3|envs.net|426|
|4|maunium.net|456.5|
|5|maclemon.at|559|
|6|matrix.vgorcum.com|667.5|
|7|threatmodel.io|695|
|8|gottliebtfreitag.de|734|
|9|neko.dev|818|
|10|nzbr.de|892|
## Final Thoughts 💭
There are bounties to be had! [AU$500 to support Emoji Reactions in Fractal](https://www.wezm.net/v2/posts/2020/bounties/), for reference this is tracked [on the GNOME gitlab](https://gitlab.gnome.org/GNOME/fractal/-/issues/530).
We didn't hear from Spectral *too* recently, but there are [signs of code being written](https://gitlab.com/spectral-im/spectral/-/commits/qt5-15).
This week I've been chatting with conference organisers making really
interesting virtual event plans, and I'm bursting to share some of the Matrix
integration plans, hopefully more details coming soon.
[elmussol](https://matrix.to/#/@elmussol:elsmussols.net) said:
> For those who Hubzilla or Zap or ActivityPub or Friendica or Diaspora, there is now a Hubzilla forum for all things Matrix: <https://elsmussols.net/channel/matrix>
## 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>