346 lines
18 KiB
Markdown
346 lines
18 KiB
Markdown
+++
|
||
title = "This Week in Matrix 2021-04-16"
|
||
date = "2021-04-16T21:19:38Z"
|
||
updated = "2021-04-16T19:38:03Z"
|
||
path = "/blog/2021/04/16/this-week-in-matrix-2021-04-16"
|
||
|
||
[taxonomies]
|
||
author = ["Ben Parsons"]
|
||
category = ["This Week in Matrix"]
|
||
|
||
[extra]
|
||
image = "https://matrix.org/blog/img/2021-04-16-hydrogen.png"
|
||
+++
|
||
|
||
## Matrix Live 🎙
|
||
|
||
{{ youtube_player(video_id="WP3HCbVAEzU") }}
|
||
|
||
This week we hosted Open Tech Will Save Us #12!
|
||
|
||
- *Creating a SAFE SUPPORT CHAT on the Matrix API*
|
||
- **Kim Allen of PRIMAL GLOW Communications** will be joined by Safe Support Chat Project Team Members,
|
||
**Sharon Kennedy of Nomadic Labs** and **Brent Edwards** to talk about why and how this online crisis
|
||
support tool for sexual assault centres was built on Matrix, using a custom implementation of Element
|
||
and other Open Source resources.
|
||
- *Open Web Docs: web documentation as critical infrastructure*
|
||
- **Will Bamberg** is a technical writer who works on MDN Web Docs, originally for Mozilla and now for
|
||
Open Web Docs. He's especially interested in ways we can make documentation more engaging and accessible.
|
||
Open Web Docs is a collective of people and organizations that exists to support web documentation.
|
||
- *Hydrogen Deep Dive*
|
||
- **Bruno from Element** will do a deep dive into the architecture of Hydrogen, the upcoming next-generation
|
||
Matrix web-client. What are the guiding principles, what makes it fast, what is different about it, and how
|
||
could it also benefit Element Web?
|
||
|
||
## Dept of Spec 📜
|
||
|
||
### Spec
|
||
|
||
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) said:
|
||
|
||
> 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
|
||
>
|
||
> **Closed MSCs:**
|
||
>
|
||
> * [Pushing updates about Groups (Communities) to clients](https://github.com/matrix-org/matrix-doc/issues/1222)
|
||
>
|
||
> **MSCs in Final Comment Period:**
|
||
>
|
||
> * [MSC2241: Key verification in DMs](https://github.com/matrix-org/matrix-doc/pull/2241) (merge)
|
||
>
|
||
> **New MSCs:**
|
||
>
|
||
> * [MSC3125: Limits API — Part 5: per-Instance limits](https://github.com/matrix-org/matrix-doc/pull/3125)
|
||
> * [MSC3124: Handling spoilers in plain-text message fallback](https://github.com/matrix-org/matrix-doc/pull/3124)
|
||
>
|
||
> * [MSC3122: Deprecate starting verifications without requesting first](https://github.com/matrix-org/matrix-doc/pull/3122)
|
||
> #### Spec Core Team
|
||
>
|
||
> In terms of Spec Core Team MSC focus for this week, we talked a little bit about [MSC2970](https://github.com/matrix-org/matrix-doc/pull/2970) (path requirements for push gateways) and left some thoughts on the MSC. We also merged a few spec clarification/fixup PRs as they trickle in following the spec unfreeze last week.
|
||
|
||
|
||
|
||
![2021-04-16-t2TNS-stacked_area_chart.png](/blog/img/2021-04-16-t2TNS-stacked_area_chart.png)
|
||
|
||
## Dept of Servers 🏢
|
||
|
||
### Conduit
|
||
|
||
Conduit is a Matrix homeserver written in Rust https://conduit.rs
|
||
|
||
[timokoesters](https://matrix.to/#/@timokoesters:fachschaften.org) offered:
|
||
|
||
> A lot of progress is happening currently! Federation is becoming more and more stable and missing features are being implemented:
|
||
>
|
||
> * Feature: /make_join, /send_join and /query/directory
|
||
>
|
||
> * Feature: Incoming invites over federation
|
||
> * Feature: Correct and more efficient message count calculation
|
||
>
|
||
> * Improvement: Check event signatures on join
|
||
> * Improvement: Fetch signing keys in parallel when joining
|
||
>
|
||
> * Improvement: Relaxed verification code to allow joining partially broken rooms
|
||
> * Fix: Lost forward extremitites
|
||
>
|
||
> * Fix: "Malformed pushrule" errors
|
||
> * Fix: Mistakes in DEPLOY.md documentation
|
||
>
|
||
> * Fix: Alias parsing
|
||
> * Fix: Optimize /send calculations
|
||
>
|
||
> * Fix: State resolution bugs
|
||
|
||
### Synapse
|
||
|
||
Synapse is a popular homeserver written in Python.
|
||
|
||
[callahad](https://matrix.to/#/@callahad:matrix.org) announced:
|
||
|
||
> In addition to Homeservers, the Matrix spec also describes Push Gateways and Identity Services, which augment our ability to send notifications or discover users via identifiers like email addresses.
|
||
>
|
||
> On the Matrix.org Foundation side, we maintain production-grade reference implementations of these services:
|
||
>
|
||
> * Synapse, a Homeserver
|
||
>
|
||
> * Sygnal, a Push Gateway
|
||
> * Sydent, an Identity Service
|
||
>
|
||
> We recently became aware of a few security and denial of service concerns in Sydent. Yesterday, we released [Sydent 2.3.0](https://github.com/matrix-org/sydent/releases/tag/v2.3.0) with fixes for those issues. It's extremely uncommon to self-host Sydent, but we wanted to highlight our work there all the same.
|
||
>
|
||
> We've also finally settled on quarterly objectives for the Synapse team at Element, and the first thing we're focusing on is gaining a better understanding of how Synapse uses memory. Specifically, we'd like to drive down the peak RAM associated with joining large, complex rooms like Matrix HQ. We've already landed a [small speed up](https://github.com/matrix-org/synapse/pull/9825) to that effect, but expect more specific metrics in the future.
|
||
>
|
||
> Synapse 1.32 is due out early next week, and we look forward to seeing you then.
|
||
|
||
## Homeserver Deployment 📥️
|
||
|
||
### YunoHost
|
||
|
||
[Mamie](https://matrix.to/#/@mamie:mamieserv.fr) said:
|
||
|
||
> [YunoHost](https://yunohost.org) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.
|
||
>
|
||
> [Synapse](https://github.com/YunoHost-Apps/synapse_ynh/tree/master) integration had been updated to 1.31.0 (1.31.0 available in branch `testing`)
|
||
>
|
||
> If you had a problem durng the upgrade to 1.28.0, there is a fix here to restore the backup : https://github.com/YunoHost-Apps/synapse_ynh/issues/246
|
||
> [Element Web](https://github.com/YunoHost-Apps/element_ynh/tree/master) integration had been updated to 1.7.24 (1.7.25 available in branch `testing`)
|
||
|
||
## Dept of Bridges 🌉
|
||
|
||
So much bridge news this week!
|
||
|
||
### Old Gitter bridge end of life (2021-04-21)
|
||
|
||
[Eric Eastwood](https://matrix.to/#/@madlittlemods:matrix.org) said:
|
||
|
||
> Next week on Wednesday (2021-04-21), the old Gitter bridge (identified as `@gitterbot:matrix.org`) will be shut down and any plumbed rooms (bridged connections) remaining will no longer bridge. To replace this, we've already migrated all of the portal rooms and many of the plumbed rooms in preparation so most users will not need to take any further actions. The remaining rooms with the old Gitter bridge are unfortunately not possible to migrate and for those communities a clean break will be needed. The new native Gitter bridge is here to replace this!
|
||
>
|
||
> You can read most of the same information and details if you still need to plumb for your existing room in the blog post, https://matrix.org/blog/2021/04/15/old-gitter-bridge-end-of-life-2021-04-21-to-be-replaced-with-native-bridge
|
||
|
||
### Element now has a Microsoft Teams bridge
|
||
|
||
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) told us:
|
||
|
||
> Hey hey folks, something I can finally talk about in the open is that Element now has a Teams bridge! After months of being isolated on a desert island being fed nothing but rice crackers and diet pepsi, I can talk about our newest bridge. It's fairly feature packed with support for all the usual formatting options, plus Jitsi widget bridging (as links) and full puppeting including DMs. Matthew even went and nattered to [The Register](https://www.theregister.com/2021/04/14/matrix_teams/) about it. So you heard it here first, no network is truly safe from the open federation and we hope to welcome teams users into the Matrix. The bridge is currently a closed source offering under the EMS banner for now.
|
||
>
|
||
> You can read about it in https://element.io/blog/ems-launches-bridging-for-microsoft-teams/
|
||
|
||
[David Mehren](https://matrix.to/#/@davebloggt:kif.rocks) added:
|
||
|
||
> Heise wrote an article about the Teams bridge: https://www.heise.de/news/Fuer-MS-Teams-Verweigerer-Element-startet-neuen-Bridging-Dienst-6017946.html
|
||
|
||
Half-Shot also added:
|
||
|
||
> Incidentally, would you like ~~access to the teams code~~ to work on lots of bridges and make things happen? [Please reach out](https://apply.workable.com/elementio/j/B43AA3DDA6/)!
|
||
|
||
### matrix-github (new name pending?)
|
||
|
||
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) reported:
|
||
|
||
> Also, some more news. I've started making improvements to [matrix-github](https://github.com/Half-Shot/matrix-github) as it continues to serve as the primary way for me to get notifications from GitHub. The latest improvements are that you can now dynamically create and assign filters to notifications coming to the bridge. This means you can name filters and turn them on and off as required (i.e. don't bug me about matrix-org on weekends please). The v0.1.0 release is [out](https://github.com/Half-Shot/matrix-github/releases/tag/0.1.0).
|
||
>
|
||
> Have questions/ideas/mad-experiments, come chat to us in [Matrix Github Bridge](https://matrix.to/#/#github-bridge:half-shot.uk).
|
||
|
||
I've been using this for months now, and can confirm it works great!
|
||
|
||
### Matrix PSTN Bridge
|
||
|
||
[KB1RD](https://matrix.to/#/@kb1rd:kb1rd.net) reported:
|
||
|
||
> It's a simple puppetting bridge to the public telephone network via providers like Twilio. It's designed to be modular and support several different providers (though it only supports Twilio ATM). Once more providers are added, it will be possible to seamlessly migrate your phone number between multiple providers and save conversation history.
|
||
> Chats are created by starting a DM with the control bot (currently hardcoded at `@_pstn_:myserver.org`) and running the `dial` command. Multiple users can join a room with the control bot and are all given access to puppet the bridge.
|
||
>
|
||
> Features include:
|
||
>
|
||
> * Connect to [Twilio](https://www.twilio.com/) & get current account balance
|
||
>
|
||
> * Send SMS texts to phone numbers and receive texts back
|
||
> * Intelligent dialing looks up phone numbers based on the one you're using
|
||
>
|
||
> * Give SMS users "pet names" via the `name` command
|
||
> * Allow multiple users to puppet a bridge & allow the bridging of bots
|
||
>
|
||
> Some planned features could include: (I'm not committing to any of these ;D)
|
||
>
|
||
> * Displaying bridge info in Element settings
|
||
>
|
||
> * Dialer widget
|
||
> * Sending MMS (pictures, video, voice, etc.)
|
||
>
|
||
> * Getting extended information about users. Services like Twilio offer carrier
|
||
> lookups and that sort of thing. Could be useful to help weed out spam.
|
||
>
|
||
> * Phone calls -- This is very hard
|
||
>
|
||
> * Answering machine
|
||
>
|
||
> * Faxing. Why not, I guess?
|
||
>
|
||
> * Pay-as-you-go managed phone number service
|
||
> * Start a chat with the bridge bot and buy a phone number via Matrix
|
||
>
|
||
> * Payment security is an issue here ;)
|
||
>
|
||
> * Puppetting WhatsApp business or Facebook Messenger. Companies like Twilio offer connections to proprietary messengers like these.
|
||
>
|
||
> It's not ready for production use, though. It's still stuck on a SQLite DB and has a few usability issues.
|
||
>
|
||
> Check it out on [GitHub](https://github.com/KB1RD/matrix-pstn-bridge) and join [#matrix-pstn-bridge:kb1rd.net](https://matrix.to/#/#matrix-pstn-bridge:kb1rd.net).
|
||
|
||
![2021-04-16-clFJc-ima_4289d95.jpeg](/blog/img/2021-04-16-clFJc-ima_4289d95.jpeg)
|
||
|
||
## Dept of Clients 📱
|
||
|
||
### Element Clients
|
||
|
||
Updates from the teams:
|
||
|
||
**Delight**
|
||
- On Spaces, we’ve been doing first implementations of [MSC3083](https://github.com/matrix-org/matrix-doc/pull/3083) (Restricting room membership based on space membership) on Android & Synapse.
|
||
- Meanwhile, we’re continuing effort on iOS on adding SDK support for Spaces, and also refactoring room navigation to soon implement the Spaces UI.
|
||
|
||
**VoIP**
|
||
- Lots of design in progress for improving group calls, and work ongoing to implement those designs on iOS.
|
||
|
||
**Web**
|
||
- Element Web 1.7.25 released
|
||
|
||
- Added reset button in settings to assist with search index issues
|
||
- Added optional warning before exiting desktop app
|
||
- Improved VoIP call media error handling
|
||
- On develop
|
||
|
||
- Enabled sharing room keys on invite
|
||
- Added persistence of unsent messages across app reloads
|
||
- Fixed replies for IRC layout
|
||
|
||
**iOS**
|
||
- Element-iOS 1.3.0 contained several issues we wanted to fix before publishing it. 1.3.3 will fix all (https://github.com/vector-im/element-ios/milestone/52?closed=1) plus:
|
||
|
||
- An update of self-verification to follow recent Element-Web changes
|
||
- A fix to correctly display sender display name in notifications
|
||
|
||
**Android**
|
||
- Element Android has been released 3 times this week, first version was 1.1.4, then 2 corrective releases, 1.1.5 and 1.1.6 to fix crashes… The main changelog is https://github.com/vector-im/element-android/releases/tag/v1.1.4 . F-Droid store will only get version 1.1.6, please be patient.
|
||
- We are currently working on the account creation and registration flows and made some experiments on it.
|
||
|
||
## Dept of SDKs and Frameworks 🧰
|
||
|
||
### Ruma
|
||
|
||
[Ruma](https://ruma.dev/) is a set of Rust library crates around Matrix
|
||
|
||
[jplatte](https://matrix.to/#/@jplatte:flipdot.org) announced:
|
||
|
||
> It's been almost two months since we shared an update 😱
|
||
>
|
||
> Lots of things have happened in that time:
|
||
>
|
||
> * [@NerdyPepper](https://github.com/NerdyPepper) added [types for the appservice registration YAML](https://github.com/ruma/ruma/pull/430)
|
||
>
|
||
> * [@NerdyPepper](https://github.com/NerdyPepper) added [missing Content-Type headers to the serialization code for some request types](https://github.com/ruma/ruma/pull/432)
|
||
> * [@timokoesters](https://github.com/timokoesters) fixed a few issues that affected Conduit:
|
||
>
|
||
> * [redaction of aliases events](https://github.com/ruma/ruma/pull/435)
|
||
> * [create_invite being broken](https://github.com/ruma/ruma/pull/490)
|
||
>
|
||
> * [create_leave_event and get_leave_event being broken](https://github.com/ruma/ruma/pull/501)
|
||
>
|
||
> * [@jsparber](https://github.com/jsparber) added [a dedicated MxcUri type for mxc:// URIs](https://github.com/ruma/ruma/pull/439)
|
||
>
|
||
> * [@zecakeh](https://github.com/zecakeh) added [methods to test events against push rulesets](https://github.com/ruma/ruma/pull/448)
|
||
> * [@Frinksy](https://github.com/Frinksy) added multiple endpoints to `ruma-identity-service-api`:
|
||
>
|
||
> * [terms of service retrieval](https://github.com/ruma/ruma/pull/453)
|
||
> * [terms of service acceptance](https://github.com/ruma/ruma/pull/459)
|
||
>
|
||
> * [public key retrieval](https://github.com/ruma/ruma/pull/472)
|
||
>
|
||
> * [@zecakeh](https://github.com/zecakeh) added a tool that automates our crate releases over a series of four PRs: [#454](https://github.com/ruma/ruma/pull/454), [#456](https://github.com/ruma/ruma/pull/465), [#498](https://github.com/ruma/ruma/pull/498) and [#508](https://github.com/ruma/ruma/pull/508)
|
||
>
|
||
> * [@louisdewar](https://github.com/louisdewar) added [a CI job that rebuilds our documentation on every push to the main branch](https://github.com/ruma/ruma/pull/457)
|
||
> * You can view it on [https://docs.ruma.io/](https://docs.ruma.dev/)
|
||
>
|
||
> * [@zecakeh](https://github.com/zecakeh) updated `ruma-client-api` and `ruma-federation-api` to make use of the new `MxcUri` type: [#458](https://github.com/ruma/ruma/pull/458), [#463](https://github.com/ruma/ruma/pull/463)
|
||
>
|
||
> * [@zecakeh](https://github.com/zecakeh) improved [various](https://github.com/ruma/ruma/pull/468) [parts](https://github.com/ruma/ruma/pull/470) of [our](https://github.com/ruma/ruma/pull/471) [documentation](https://github.com/ruma/ruma/pull/494)
|
||
> * [@abhikjain360](https://github.com/abhikjain360) also added multiple endpoints to `ruma-identity-service-api`:
|
||
>
|
||
> * [ephemeral key validation](https://github.com/ruma/ruma/pull/484)
|
||
> * [lookup for hashing identifiers, lookup for Matrix user IDs by 3pids](https://github.com/ruma/ruma/pull/489)
|
||
>
|
||
> * [@zecakeh](https://github.com/zecakeh) added [support for MSC2858 (Multiple SSO Identity Providers)](https://github.com/ruma/ruma/pull/491)
|
||
>
|
||
> * [@abhikjain360](https://github.com/abhikjain360) improved usage of serialization attributes by introducing custom casing conventions: [#512](https://github.com/ruma/ruma/pull/512) (the diff of this probably explains the improvement better than I can), [#513](https://github.com/ruma/ruma/pull/513)
|
||
> * and meanwhile, I've been refactoring lots and lots of things but the details would probably be meaningless to non-contributors and I haven't posted PRs for most of these changes so it's hard to collect into a list anyways
|
||
>
|
||
> * some small contributions are not in this list, since it is already huge
|
||
>
|
||
> In addition to all the PRs, we are taking part in GSoC this year again! Proposals have been written, reviewed, updated, finalized, submitted and now there's some quiet time until the student projects are announced on May 17th.
|
||
|
||
## Dept of Interesting Projects 🛰️
|
||
|
||
### Search Peertube via Matrix
|
||
|
||
[Cos](https://matrix.to/#/@cos:hacklab.fi) announced:
|
||
|
||
> I wrote a new tool for fediverse: search Peertube via Matrix. It uses Sepia Search API to search on all participating public Peertube instances. You can also select any single instance. It's implemented as a module for Hemppa the bot - see docs here: https://github.com/vranki/hemppa#peertube-search #peertube #matrix
|
||
|
||
See the announcement: https://fosstodon.org/web/statuses/106048573207784409
|
||
|
||
## 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.
|
||
|
||
### [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net)
|
||
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|envs.net|490|
|
||
|2|fosil.eu|505|
|
||
|3|maescool.be|579|
|
||
|4|maunium.net|592|
|
||
|5|nordgedanken.dev|669|
|
||
|6|fachschaften.org|679|
|
||
|7|matrix.org|717|
|
||
|8|buyvm.net|919|
|
||
|9|boiler.social|953|
|
||
|10|signal-eleven.com|991|
|
||
|
||
### [#ping-no-synapse:maunium.net](https://matrix.to/#/#ping-no-synapse:maunium.net)
|
||
Join [#ping-no-synapse:maunium.net](https://matrix.to/#/#ping-no-synapse:maunium.net) to experience the fun live, and to find out how to add YOUR server to the game.
|
||
|
||
|Rank|Hostname|Median MS|
|
||
|:---:|:---:|:---:|
|
||
|1|dendrite.foxomy.com|587.5|
|
||
|2|dendrite01.fiksel.info|903|
|
||
|
||
## 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
|