This Week in Matrix 2020-03-06

2020-03-06 — This Week in Matrix — Ben Parsons

Matrix Live 🎙

Dept of Servers 🏢

Dendrite / gomatrixserverlib

Neil Alexander said:

  • Initial support for building for WASM with the P2P demo has been merged into the Dendrite master branch
  • Initial State Resolution v2 code has been merged into gomatrixserverlib master branch, with wiring for Dendrite to follow shortly
  • Further room version support is in progress
  • Error logging now actually reports where errors happened
  • A minor bug in the sync API has been fixed
  • gomatrixserverlib now doesn't make unnecessary key requests over federation

matrix-media-repo

TravisR told us:

matrix-media-repo has early support for IPFS! Currently it's only gateway support, but in the coming days it should be possible to also upload into the IPFS world. See https://github.com/turt2live/matrix-media-repo/issues/115#issuecomment-593772429 for details.

Synapse

richvdh said:

A busy week in Synapse this week! We've released Synapse 1.11.1 to fix a security problem with single-sign-on, Patrick has been putting the finishing touches to the room-alias-spam mitigation measures in MSC2432, and Erik has been doing some exciting work in replacing the inter-process replication protocol for worker-based deployments.

We've also started the design work on single-sign-on support for user-interactive-auth, which we'll be starting implementation work on next week.

Also:

Synapse Deployment 📥

multi arch synapse docker image

Black Hat announced:

I finally remembered to update my multi arch synapse docker image to 1.11.0. Now with more architectures!

Docker-matrix

Mathijs offered:

The image for synapse 1.11.1 is now available as avhost/docker-matrix:v1.11.1 and mvgorcum/docker-matrix:v1.11.1. As always these images use jemalloc and mjolnir anti-spam.

Dept of Bridges 🌉

Matrix Icinga notifier

Oleg told us:

Send notifications from Icinga(1,2) to a Matrix room.

v1.2.0

Roadmap

mx-puppet-slack

sorunome said:

mx-puppet-slack supports xoxc tokens now! That means you are able to bridge slack workspaces without the need of legacy tokens or oauth - no permission from the workspace admins are required for those!

mx-puppet-bridge

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 Donate

sorunome offered:

  • Added optional parsing of file metadata (filling in the info block) for images, video and audio (requires ffprobe to be installed)
  • Adding advanced relays --> protocol implementations can e.g. use webhooks to display relayed messages more nicely
  • Add userlist syncing options for rooms

mx-puppet-discord

  • Use the advanced relay to bridge relay messages using webhooks
  • Implement userlist syncing: The userlist on matrix now accurately reflects the discord members in that room

Mumble Bridge

There is a simple Mumble-Matrix Bridge available.

A simple Matrix to Mumble bridge. It sends messages between bridged rooms and tells you when people join / leave Murmur.

Written in TypeScript and based on matrix-appservice-bridge.

The creator, mymindstorm said:

Hello again, I made a public room at #mumble-bridge:evermiss.net

Dept of Clients 📱

gomuks

Tulir announced:

gomuks now supports sending replies, reactions and redactions with commands. You can either run the command (e.g. /react 👍️) first and then select the message with up/down arrows and enter, or you can click on a message to select it first and then run the command.

Ditto v0.3.0 Release

Annie offered:

Ditto is a user-friendly Matrix client for iOS and Android.

Updates

  • Long press to show button for leaving a room
  • Data is stored on the device, you can now browse offline
  • More helpful error messages on login failure
  • Show if a chat has unread messages in chat list
  • Send typing notifications
  • Send read receipts
  • and a lot of other major code-quality things!

See the full list of changes here

Help Wanted

In general, we'll welcome any help if someone would like to contribute - great way to get some experience with React Native! Just reach out!

If anybody has the skill set or interest, we are also looking at creating a React Native specific Matrix SDK to improve performance and allow others to develop RN clients easily.

Website | #ditto:ditto.chat | Contact Annie

RiotX

benoit said:

We have fixed several errors on file and media sending/downloading/sharing. Also we are still working on cross-signing and e2e stabilization.

Riot-iOS

Manu said:

Riot-iOS: We have fixed an issue with push notifications but we are still investigating rageshake logs before doing the release. In parallel, we are still working on cross-signing: QR code and Secret Sharing.

Nheko

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) reported:

  • We welcomed adasauce as an official member to the Nheko project on Github! Adasauce has been working on a lot of the smaller annoyances and layout issues.
  • Adasauce started working on configuring what events get shown in the timeline on a per room or account wide basis.
  • We have merged the dev branch to master, because it confused a lot of people. If your packages use 0.7.0-dev, now is the time to switch
  • red_sky merged the dev branch and started updating everything, that depends on this branch. This includes the AUR package and our Weblate instance (for translations).
  • Nheko now has experimental support for MSC2448. This adds a blurry preview for images (and videos) sent via nheko directly into the event body (at the cost of ~30 bytes). This considerably reduces latency until clients show something, that isn't an empty box, to preview media, since downloading the media over federation and generatig a thumbnail has positive latency.
  • Avatars should now not be blurry when using display scaling. Please report, if this is still happening to you (in the timeline or room list, there is a known issue with the user profile dialog and servers that don't do dynamic thumbnailing)
  • Misc fixes and translation updates from multiple contributors.

Various Riot-theme news

Dylan told us:

Selenized Light, Dark, and Black for Riot! If you have your own build of riot-web you can simply modify the config.json and add this theme to it!

I particularly like the Selenized Dark:

2020-03-06-kxlmu-image.png

Nord Light Theme for Riot is also available from Dylan:

Aaron said:

Dylan created #riot-web-themes:m.dhdf.dev

If you use https://github.com/spantaleev/matrix-docker-ansible-deploy/ it will automatically download and install all of the themes just by setting matrix_riot_web_themes_enabled: true

Dept of SDKs and Frameworks 🧰

simplematrixlib

swedneck reported:

i have updated simplematrixlib and py-matrix-utils adding (among other things) the ability to upload and download media, and send messages! Simplematrixlib is available on PyPi.

simplematrixlib now also has a matrix room, #simplematrixlib:matrix.org (also used for py-matrix-utils)

Dept of Ops 🛠

Kubernetes

Ananace announced:

Another image bump, this time to 1.11.1 The accompanying Helm chart I've been writing has sadly gotten rather delayed due to prioritisations at work, so might be a bit until then.

Dept of Bots 🤖

OBS bot

msirringhaus told us:

During last hackweek, I wrote a chat bot integration in Rust for openSUSEs Open Build Service. OBS is used for development of the openSUSE distribution and can build packages from the same sources for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions.

The bot follows given packages and pull requests and pings a room if any changes occur (build finished, PR got commented or accepted, ..).

Sources can be found here, RPMs exist as well.

Dept of Interesting Projects 🛰

Matrix Notepad v0.2.1

KB1RD reported:

  • Fixes some bugs
  • Adds a new theme
  • Allows the editing of room names

Unfortunately, there still are bugs. Sorry ;(

2020-03-06-CGTyV-Screenshotfrom2020-02-2812.39.52.png

2020-03-06-oTyHd-Screenshotfrom2020-02-2812.41.03.png

Final Thoughts 💭

There's a new stickerpack available in Riot, Diego "rehrar" Salazar offered:

Isabella the Monero Girl is a fun sticker pack made by Cypher Stack designed to be cute, fun, and used by anyone. We hope you enjoy emoting with Isabella.

We'll have a cool image and more info next week.

Tulir offered:

also working on mautrix-manager, although I'm not sure if/when that'll be ready for general usage

Dept of Ping 🏓

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net378.5
2maescool.be379
3gottliebtfreitag.de391.5
4dodsorf.as397
5imninja.net418
6maunium.net437
7shortestpath.dev445
8midov.pl455.5
9ocean.joedonofry.com458
10wcore.org469

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Moznet IRC is dead; long live Mozilla Matrix!

2020-03-03 — In the News — Matthew Hodgson

Hi all,

Heads up that yesterday at 12:00 ET, the Mozilla IRC network was switched off after over 22 years of valiant service, and the mozilla.org Matrix instance is now in full production. You can get at it via the Riot instance at https://chat.mozilla.org, by pointing your client at https://mozilla.modular.im, or by joining rooms on the mozilla.org server over federation via its room directory.

We'd like to thank Mozilla again for putting their faith in Matrix, and are determined to do everything we can to ensure we're a more than worthy successor to IRC; we have big boots to fill :)

We've been gathering a huge amount of invaluable FTUE (first time user experience) feedback from the commentary in #synchronicity:mozilla.org - and we're in the process of implementing it over the coming weeks. In particular, we've already implemented alphabetic room ordering, custom theming support, and done a bunch more SSO work.

The immediate priorities include:

  • Fixing a regression in jumps/jank when scrolling (fix PRed to develop today)
  • Enabling Mozilla IAM SSO authentication on remaining "interactive user auth" flows (e.g. managing devices)
  • Fixing the UX around selecting server when browsing the room directory.
  • Fixing notification defaults, behaviour and settings UX
  • Better educating users to connect to the mozilla.modular.im if using a random app.

Finally, it's worth noting that the matrix-ircd project is seeing some commits again, many thanks to jplatte from the Ruma project - so if you are currently despairing the demise of moznet, never fear: you may yet be able to connect to the Mozilla matrix server via IRC (authing via Mozilla IAM, of course) and pretend that none of this newfangled Matrix stuff exists :D

Please keep the feedback coming in #synchronicity:mozilla.org - we're gathering it all up into Github (under the mozilla label) as well as a high level Google Doc to help collate everything.

thanks,

- The Matrix Core Team.

(Comments over at HN)

Synapse 1.11.1 released

2020-03-03 — Releases — Neil Johnson

Synapse 1.11.1 is a security release which contains a fix impacting installations using Single Sign-On (i.e. SAML2 or CAS) for authentication. Administrators of such installations are encouraged to upgrade as soon as possible.

Admins not using Single Sign-On to authenicate users are not affected though may wish to upgrade anyway to pull in some unrelated bug fixes.

Thanks to Rhys Davies for the responsible disclosure.

Get the new release from github or any of the sources mentioned at https://github.com/matrix-org/synapse/blob/master/INSTALL.md.

Changelog since Synapse 1.11.0

Synapse 1.11.1 (2020-03-03)

This release includes a security fix impacting installations using Single Sign-On (i.e. SAML2 or CAS) for authentication. Administrators of such installations are encouraged to upgrade as soon as possible.

The release also includes fixes for a couple of other bugs.

Bugfixes

  • Add a confirmation step to the SSO login flow before redirecting users to the redirect URL. (b2bd54a2, 65c73cdf, a0178df1)
  • Fixed set a user as an admin with the admin API PUT /_synapse/admin/v2/users/<user_id>. Contributed by @dklimpel. (#6910)
  • Fix bug introduced in Synapse 1.11.0 which sometimes caused errors when joining rooms over federation, with 'coroutine' object has no attribute 'event_id'. (#6996)

This Week in Matrix 2020-02-28

2020-02-28 — This Week in Matrix — Ben Parsons

Dept of Status of Matrix 🌡

Meetup Event in London

This week Matrix held a Meetup Event in London! There were presentations demonstrating E2E Cross-Signing (including the next, sleeker QR codes), P2P in the browser with Dendrite, Message retention, and Github bridging. There was also plenty of P2E* and B2D**.

You can catch up on what was missed by watching this week's Matrix Live (below), or check out the full event playlist, particularly the P2P with Dendrite demo.

* Pizza to eat
** Beer to drink

Éibhear told us:

Hi TWIM, I don't know if you've noted this yet, but I got my company to interview Matthew and Amandine on their podcast: https://www.version1.com/one-zero-one/matrix-org/. Éibhear

Matrix Live now available as an audio podcast

Reminder that Matrix Live is also available as an audio-only podcast. You can find the it:

Google Summer of Code

Last week we announced that Google had selected Matrix for the Google Summer of Code progamme, and requested projects get involved under the Matrix banner. We had a great response to this call: Ditto, Ruma, opsdroid and Nheko are all offering projects this year, as well as projects under the core Matrix team.

We updated suggested projects list (more to come), so if you're a student please take a look. Think about what you'd like to work on, get involved with suggested projects, and join #gsoc:matrix.org to discuss.

Dept of Spec 📜

Spec

anoa offered:

Here's your weekly spec update!

MSC Status

Merged MSCs:

  • No MSCs have been merged this week.

MSCs in Final Comment Period:

  • No FCPs have entered Final Comment Period this week.

New MSCs:

Spec Core Team

Next week the Spec Core Team is focusing on MSC implementation.

Dept of Servers 🏢

Dendrite / gomatrixserverlib

Neil Alexander told us:

  • Experimental support for state res v2 (and, by extension, room version 2) is now in a PR and undergoing testing
  • The hashing algorithm has been fixed which improves federation reliability with Synapse
  • A significant number of SQLite bugs have been fixed and we now have the ability to run Sytest against Dendrite in SQLite mode
  • Kegan has been doing great work on building Dendrite for WASM and running it in the browser as a Service Worker!
  • Sending EDUs in transactions with no PDUs has been fixed, which also seems to fix sending outbound typing notifications

Sydent

Brendan announced:

Sydent v2.0.0 has just been released! 🎉

The biggest changes in this release are the privacy improvements we've worked on last year, along with Python 3 support and improved documentation.

More details can be found in the full changelog, and folks can get their hands on this new version from PyPI or from GitHub 🙂

matrix-media-repo v1.0.1 patch

TravisR reported:

matrix-media-repo got a v1.0.1 patch release to fix a memory leak. Downloads and the very small changelog available at https://github.com/turt2live/matrix-media-repo/releases/tag/v1.0.1

Matrixmon v0.5.0

jaywink said:

Matrixmon, the perl based c2s probe with metrics to track your Synapse server client API responses is now at v0.5.0 and now allows using an access_token for the probe user.

Synapse

anoa reported:

This week Erik been tackling the work on sharding the master process in Synapse, Patrick has been working on the new room alias semantics while richvdh has been doing some background preparation to allow us to change the way events are redacted in future room versions.

Next week: SSO/User Interactive auth is still in the pipeline, alongside an option to allow users to change their password without logging out their other devices, and of course, more sharding.

Dept of Ops 🛠

arm64 support for all Tulir-projects:

The docker images of my projects (specifically mautrix-{telegram,whatsapp,facebook,hangouts} bridges, maubot and mautrix-manager) now support arm64 in addition to amd64. They're multiarch images, so the same tag will work with both architectures.

Dept of Clients 📱

Nheko

Nico (@deepbluev7:neko.dev) offered:

  • adasauce fixed the settings page to properly display on narrow screens, like the PinePhone or Librem5
  • We fixed rooms being stuck on unread. This only applies for rooms, where you receive an event after you updated.
  • Avatars should now render in high res on high dpi screen with display scaling enabled.
  • We fixed some smaller annoyances regarding what happens, when clicking elements of replies and the reply button now only shows on hover (or tap on the right side, like the timestamp, on mobile)
  • We fixed the logic around user interactive authentication needed for registration, which means you should be able to register on servers using recaptcha and other registration requirements again! Note that this currently doesn't seem to work on servers, that use workers. This may be because of a synapse bug, but the jury is still out, it may still be our fault ;-)
  • We wrote some proposals for GSoC, which Nheko was invited to participate in under the matrix.org umbrella.
  • Someone packaged Nheko for Guix!

Nheko in Guix

That "someone" was nixo:

nheko-reborn is now available on the guix package manager! Guix feature reproducible builds, allowing users to verify the binary cache correctness, and the possibility to create tarball/docker images to easily share the build results with all dependencies to systems without guix package manager.

Guix also aims at reducing bootstrap binaries to a minimum (see this blog post for example), reducing the effect of trusting trust attacks. Those properties led guix to be the package manager of choice for bitcoin development.

Riot Themes

Last week Aaron said:

I made a place where you can post Riot Web themes https://github.com/aaronraimist/riot-web-themes

Which like the flap of a butterfly wing has caused a series of events:

A Nord Theme for Riot!

Dylan announced:

If you have your own build of riot-web you can simply modify the config.json and add this theme to it!

A wild Discord themed Riot has appeared!

Dylan reported:

If you have your own build of riot-web you can simply modify the config.json and add this theme to it!

2020-02-28-As3g2-image.png

matrix-docker-ansible-deploy support

Slavi reported:

matrix-docker-ansible-deploy now makes it easy to install custom riot-web themes, either by having you manually define them or by automatically pulling whatever themes are available in aaronraimist/riot-web-themes. To learn more, take a look at our riot-web documentation on Themes.

Fractal

Alexandre Franke announced:

Our current Outreachy intern implemented many nice media related things. Videos now have a preview playing directly in the room history and clicking on them opens a player view with the usual controls.

Audio messages have a nicer presentation too. The audio player downloads the whole file to make seeking possible.

The narrow view (used e.g. on the Pinephone and Librem 5) gained a new swipe-back gesture to go back from room to room list

gomuks

Tulir said:

gomuks now has support for lazy-loading room members, which might mean that small servers won't explode when gomuks does an initial sync.

RiotX 0.17.0

benoit reported:

RiotX: We have released version 0.17.0: new attachment management, with media preview and edition. This release also contains a lot of bug fixes. We are also still working on cross-signing implementation.

Riot iOS

steve told us:

This week we continued to implement verification by QR code at application and SDK level.

Dept of Interesting Projects 🛰

Matrix Notepad

KB1RD offered:

Finally, version 0.2.0 is here, which...

  • Introduces the new version of logootish-js
  • Gets ready for conflict resolution systems
  • Fixes some (but not all) bugs encountered (thanks to the new algo)
  • Removes the debug panel in favor of native browser console based debug

Dept of SDKs and Frameworks 🧰

nio template

anoa told us:

...is a template repo based on the matrix-nio library that you can use to get quickly up and running with making simple, yet powerful matrix bots in Python!

🔒️ Encryption Support is now built-in 🎉! This does shift the login model from access token to username/password. Note that by entering a device id however, you won't be creating a new device every time you start up the bot!

Other notable fixes:

  • /sync is no longer spammed! This should take some load off of your homeserver.
  • Config file parsing is a lot simpler now by way of a _get_cfg method, which allows you to easily device down into yaml dictionaries, set default values, mark whether a config value is required etc.

Thanks to alturiak for motivating me to make these changes :)

The repo is https://github.com/anoadragon453/nio-template, and room is #nio-template:amorgan.xyz.

Dept of Bridges 🌉

mx-puppet-bridge

sorunome told us:

mx-puppet-bridge received a few additions:

  • tulir made a PR to add a provisioning API - said PR is already merged. Thanks a lot!
  • Way better relay mode: You can now configure individual puppets to be a relay rather than a puppet. Additionally you can configure default room visibility and autoinvite.
  • Don't unbridge a room on leaving anymore - it will remain bridged. You can get invites to rooms via the new invite command. With the knock MSC it will also be possible to get an invite via a knock.

If you have any questions, please join our support chat and maybe consider to donate. Thank you!

mx-puppet-slack

tulir made a PR for custom provisioning API endpoints. It is already merged. Thanks a lot!

mx-puppet-tox

mx-puppet-tox is finally functional again! It is updated to the latest mx-puppet-bridge library, giving it all the new features. Yay!

Dept of Bots 🤖

Hemppa the bot

Cos reported:

Hemppa the bot gained ability to run shell commands via Matrix. It's a small feature but enables a lot of possibilities in system management and monitoring, home automation, and whatever you can do in linux shell. As an example project I plan to use it for running a script to open hackerspace door with Raspberry Pi's GPIO if sender is a member. https://github.com/vranki/hemppa

remindbot the bot

stefan announced:

remindbot got support for reacting when mentioned. This allows the bot to be used in rooms with more than 2 participants. The timespec got a minor update, supporting now the variant tomorrow HH:MM. Furthermore, the bot now sends a reaction when a notification has been scheduled instead of a noisy message.

Dept of Ping 🏓

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1gottliebtfreitag.de334
2envs.net349.5
3imninja.net425.5
4swag.industries427
5maunium.net431
6maescool.be594
7shortestpath.dev632
8matrix.vgorcum.com657
9utzutzutz.net688
10matrix.m31.zone712

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Synapse 1.11.0 released

2020-02-24 — General — Matthew Hodgson

Hi all,

Synapse 1.11 landed on Friday (sorry for running late on blogging the release notes!)

The main change is to introduce an experimental API MSC2432 for managing aliases for rooms on your local server. In Synapse 1.10 we removed support for m.room.aliases events, which were a way to try to track which aliases a room had on the room itself (but were vulnerable to abuse). In this release we've re-added the ability to query which aliases a given server has for the room, giving visibility for managing aliases, without having them spray all over the room state itself. Riot/Web 1.5.10 supports the new API, giving a way to manage aliases on your local server while we finish off the remaining work to improve alias safety & maintenance.

We've also changed the default power levels for new rooms so that room upgrades and ACLs require you to be an Admin (PL100), and invites in public rooms now require you to be a moderator (PL50).

Get the new release from github or any of the sources mentioned at https://github.com/matrix-org/synapse/blob/master/INSTALL.md.

Synapse 1.11.0 (2020-02-21)

Improved Documentation

  • Small grammatical fixes to the ACME v1 deprecation notice. (#6944)

Synapse 1.11.0rc1 (2020-02-19)

Features

  • Admin API to add or modify threepids of user accounts. (#6769)
  • Limit the number of events that can be requested by the backfill federation API to 100. (#6864)
  • Add ability to run some group APIs on workers. (#6866)
  • Reject device display names over 100 characters in length to prevent abuse. (#6882)
  • Add ability to route federation user device queries to workers. (#6873)
  • The result of a user directory search can now be filtered via the spam checker. (#6888)
  • Implement new GET /_matrix/client/unstable/org.matrix.msc2432/rooms/{roomId}/aliases endpoint as per MSC2432. (#6939, #6948, #6949)
  • Stop sending m.room.aliases events when adding / removing aliases. Check alt_aliases in the latest m.room.canonical_alias event when deleting an alias. (#6904)
  • Change the default power levels of invites, tombstones and server ACLs for new rooms. (#6834)

Bugfixes

  • Fixed third party event rules function on_create_room's return value being ignored. (#6781)
  • Allow URL-encoded User IDs on /_synapse/admin/v2/users/<user_id>[/admin] endpoints. Thanks to @NHAS for reporting. (#6825)
  • Fix Synapse refusing to start if federation_certificate_verification_whitelist option is blank. (#6849)
  • Fix errors from logging in the purge jobs related to the message retention policies support. (#6945)
  • Return a 404 instead of 200 for querying information of a non-existant user through the admin API. (#6901)

Updates to the Docker image

  • The deprecated "generate-config-on-the-fly" mode is no longer supported. (#6918)

Improved Documentation

  • Add details of PR merge strategy to contributing docs. (#6846)
  • Spell out that the last event sent to a room won't be deleted by a purge. (#6891)
  • Update Synapse's documentation to warn about the deprecation of ACME v1. (#6905, #6907, #6909)
  • Add documentation for the spam checker. (#6906)
  • Fix worker docs to point /publicised_groups API correctly. (#6938)
  • Clean up and update docs on setting up federation. (#6940)
  • Add a warning about indentation to generated configuration files. (#6920)
  • Databases created using the compose file in contrib/docker will now always have correct encoding and locale settings. Contributed by Fridtjof Mund. (#6921)
  • Update pip install directions in readme to avoid error when using zsh. (#6855)

Deprecations and Removals

  • Remove m.lazy_load_members from unstable_features since lazy loading is in the stable Client-Server API version r0.5.0. (#6877)

Internal Changes

  • Add type hints to SyncHandler. (#6821)
  • Refactoring work in preparation for changing the event redaction algorithm. (#6823, #6827, #6854, #6856, #6857, #6858)
  • Fix stacktraces when using ObservableDeferred and async/await. (#6836)
  • Port much of synapse.handlers.federation to async/await. (#6837, #6840)
  • Populate rooms.room_version database column at startup, rather than in a background update. (#6847)
  • Reduce amount we log at INFO level. (#6833, #6862)
  • Remove unused get_room_stats_state method. (#6869)
  • Add typing to synapse.federation.sender and port to async/await. (#6871)
  • Refactor _EventInternalMetadata object to improve type safety. (#6872)
  • Add an additional entry to the SyTest blacklist for worker mode. (#6883)
  • Fix the use of sed in the linting scripts when using BSD sed. (#6887)
  • Add type hints to the spam checker module. (#6915)
  • Convert the directory handler tests to use HomeserverTestCase. (#6919)
  • Increase DB/CPU perf of _is_server_still_joined check. (#6936)
  • Tiny optimisation for incoming HTTP request dispatch. (#6950)

This Week in Matrix 2020-02-21

2020-02-21 — This Week in Matrix — Ben Parsons

Dept of Status of Matrix 🌡

Google Summer of Code 2020

Wise Google have again selected Matrix as a GSOC Mentor Organisation. Matrix has been successful with GSOC for several years now, so please think about what you'd like to work on, get involved with suggested projects, and join #gsoc:matrix.org for more insights.

If you have a Matrix project of your own, and think that you would benefit from mentoring a GSOC student, then let me know. We are very happy to have Matrix-related students working on your project under the Matrix umbrella. (Just like we did with kitsune last year.)

Dept of Events and Talks 🗣

It's happening Next Week!!

Are you interested in a real-life, real-time Matrix-related meetup? Can you make it to London? Join us on the 26th February at Second Home in Spitalfields! Check out the agenda and register at https://www.eventbrite.com/e/matrix-london-meetup-26th-february-2020-tickets-93320354693.

Matrix Live 🎙

Spec

anoa offered:

Here's your weekly spec update!

MSC Status

Merged MSCs:

  • No MSCs have been merged this week.

MSCs in Final Comment Period:

  • No FCPs have entered Final Comment Period this week.

New MSCs:

The section where I talk about mscbot

Hey look, I finished.

Spec Core Team

Next week the Spec Core Team is focusing on MSC implementation.

Dept of Servers 🏢

Synapse

Neil announced:

This week we’ve been working on managing alias abuse, and also improved performance for state res v2. The perf work massively improved average send times on matrix.org. Here’s the heat map.

2020-02-21-2wOF1-Screenshot2020-02-21at14.52.52.png

More excitingly we’re working on sharding out the master process in Synapse, so that worker based installations can scale more efficiently.

Next week it’s all about more alias abuse mitigations, fixing some SSO/User Interactive Auth bugs and continuing with our performance work.

Synapse Deployment

Mathijs reported:

The image for synapse 1.11.0 is now available as avhost/docker-matrix:v1.11.0 and mvgorcum/docker-matrix:v1.11.0. As always these images use jemalloc, and mjolnir anti-spam got added to the images.

Ananace told us:

Just pushed the K8s-optimized Synapse images for 1.10.1

and:

Just pushed version 1.11.0 of the K8s-optimized Synapse images, find them on dockerhub as ananace/matrix-synapse

Dept of Bridges 🌉

matrix-github

Half-Shot offered:

Hola. I wrote the matrix-github bridge a while back to support bridging issues and pullrequests into Matrix as rooms, so that the history of an issue can be tracked within a room, and users can comment on them within Matrix. As of today, you can now bridge in your own notifications into Matrix. It's early days, but is actually proving to be useful.

2020-02-21-t0y89-image.png

matrix-appservice-slack 1.1.0

Half-Shot offered:

More news! This week matrix-appservice-slack has reached 1.1.0-rc1 and included is a whole bunch of puppeting and membership sync features. The headline features are:

  • Add ability to sync Slack channels and users automatically to Matrix
  • Sync Slack membership changes to Matrix
  • Add whoami user command.
  • Create private rooms on demand if they do not exist

...and then...

has reached 1.1.0. Nothing has changed. It's just not called 1.1.0-rc1 anymore.

matrix-xmpp-filter

mijutu offered:

matrix-xmpp-filter can now handle multiple XMPP clients per process and multiple Matrix accounts per XMPP client. It's like matrix-ircd, but with XMPP instead of IRC. Made with libQuotient and libqxmpp. Available at https://k2c42.dy.fi/matrix-xmpp-filter.git Feedback to #matrix-xmpp-filter:ellipsis.fi

mx-puppet-bridge

sorunome said:

mx-puppet-bridge now automatically stops typing indicators for a specific ghost if the remote protocol sends out a message as it.

matrix-discord-parser

sorunome offered:

matrix-discord-parser now utilizes https://mau.lu/ to neatly bridge inline matrix images / custom matrix emojis over to discord! mx-puppet-discord already includes the new version.

Dept of Clients 📱

gomuks: SSO and more

tulir (Mozilla) offered:

gomuks now does single sign-on, which means you can log into mozilla matrix accounts with it.

Check the docs for information on how to add SSO to your Matrix client.

Later:

In addition to the SSO support mentioned earlier, gomuks now has initial support for rendering reactions and full support for edits (both sending and rendering). Some bugs have also been added and/or fixed.

Radical

stoic offered:

Formerly known as Riot WebExtension.

anoa asked:

I'm curious how you got seshat working in a browser, considering wasm doesn't have support for multi-threading?

stoic responded:

it's not actually running in the browser, it uses native messaging to spawn a local rust binary and talk to it over stdio poljar did a great job with seshat, so it wasn't much left for me to do 👌

Radical Native

stoic announced:

Formerly known as Riot Booster Pack.

  • Support for traditional Riot Web over HTTP landed in v0.1beta7, so you can use Radical Native with every Riot instance on the web. We're still in early beta, so no official Firefox AMO install available yet, if you want to give it a try you can follow these install instructions

Riot Web themes repository

Aaron reported:

I made a place where you can post Riot Web themes https://github.com/aaronraimist/riot-web-themes

See also: Riot theming docs

RiotX

benoit told us:

RiotX: this has been a good week on RiotX. We are making progress on cross-signing and SSSS implementation. We are fixing many small annoying issues and also starting to implement little missing features to improve users' life! The big next coming feature is improvement of attachment and share to RiotX flow, already merged in the develop branch, so available in the next release.

Regarding "SSSS", uhoreg helpfully links us to https://github.com/matrix-org/matrix-doc/pull/1946, and also added:

(I usually expand SSSS to "Secure Storage Something Something")

Dept of SDKs and Frameworks 🧰

Matrix Dart SDK (Pattle)

MatMaul told us:

This week a pull request has been pushed to integrate directly the SQL persistence backend inside the SDK, using Moor instead of sqflite. The code is smaller and a lot more readable, and it opens some nice perspectives: Moor has a web backend using sql.js, and now uses FFI by default instead of iOS/Android bindings, which should be faster (untested). https://git.pattle.im/MatMaul/matrix-dart-sdk/tree/moor

Riot iOS

steve announced:

This week is still about cross-signing. We added support of self key verification by to_device and we are currently implementing verification by QR code at SDK level.

simplematrixlib updated

swedneck offered:

I just updated my python library, simplematrixlib, as well as py-matrix-utils, adding the ability to upload files.

ruma

jplatte offered:

Another set of new crates have been released:

  • ruma-events 0.16.0, with a few minor improvements
  • ruma-api 0.14.0 (and ruma-api-macros 0.11.0) has been released, fixing a bug where it would fail to deserialize most matrix requests if used server-side (bug found by timokoesters while experimenting with a new Rust homeserver implementation)

ruma-client-api is also continually being worked on to bring us up to date with r0.6.0 (thanks iinuwa!), but no new release was made this week.

Dept of Bots 🤖

auto-invite-matrix-bot

MTRNord offered:

I made a small utility Bot which allows you to redirect people that send messages to one of your "wrong" accounts to your "real" account.

https://github.com/MTRNord/auto-invite-matrix-bot

It currently does join on invite, invites your "real" account and sends a customizable message.

It does also support listening to multiple accounts or Homeservers.

Dad Bot, the saga

If you were in #twim:matrix.org this week you may have seen that the most popular bot was "Dad Bot"...

Dylan reported:

I made Dad Bot for Matrix which mocks users who use "i'm" or "im" in their sentences.

...and then...

Quick update about Dad Bot:

  • I added edits
  • Dad Bot now sends m.notice instead of m.text and doesn't respond to other m.notices

Thanks Dandellion, and KB1RD

...but suddenly...

DadBot 2.0.0 is already here! With the quick feedback given by the community I added all the features

  • Dad Bot will now edit the response message if the original message was edited
  • Dad Bot won't respond to other Dad Bots (lol)
  • Dad Bot won't respond to old messages on the first time syncing

What's in the works:

  • Responding with images in the message
  • Jokes! (because it's not a full dad bot without jokes)

...and finally...

I opened a room for discussions about dad bot if you want to send feedback there. #dadbot:m.dhdf.dev

lightweight reminder bot

stefan said:

I got my first silly matrix bot running last evening. It is a lightweight reminder bot. The source is over there: https://git.sr.ht/~rumpelsepp/remindbot

2020-02-21-WzON0-screenshot-2020-02-17-08:20:23.png

Dept of Ping 🏓

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1imninja.net365
2shortestpath.dev384
3maescool.be405
4envs.net421
5matrix.vgorcum.com535
6gottliebtfreitag.de535.5
7maunium.net545.5
8queersin.space657
9asra.gr672
10saces.de795

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

NextPage 2