321 lines
18 KiB
Markdown
321 lines
18 KiB
Markdown
+++
|
|
date = "2023-10-20"
|
|
title = "This Week in Matrix 2023-10-20"
|
|
path = "/blog/2023/10/20/this-week-in-matrix-2023-10-20"
|
|
|
|
[taxonomies]
|
|
author = ["MTRNord"]
|
|
category = ["This Week in Matrix"]
|
|
|
|
[extra]
|
|
image = "https://matrix.org/blog/img/matrix-logo.png"
|
|
+++
|
|
|
|
## Matrix Live
|
|
|
|
{{ youtube_player(video_id="K4NJLkStH9g") }}
|
|
|
|
## Dept of Spec 📜
|
|
|
|
### Weekly Spec Update
|
|
|
|
[Andrew Morgan (anoa)](https://matrix.to/#/@andrewm:element.io) says
|
|
|
|
> 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://spec.matrix.org/proposals>.
|
|
>
|
|
> #### MSC Status
|
|
>
|
|
> **New MSCs:**
|
|
>
|
|
> * [MSC4060: Accept room rules before speaking](https://github.com/matrix-org/matrix-spec-proposals/pull/4060)
|
|
> * [\[WIP\] MSC4059: Mutable event content](https://github.com/matrix-org/matrix-spec-proposals/pull/4059)
|
|
> * [\[WIP\] MSC4058: Additive events](https://github.com/matrix-org/matrix-spec-proposals/pull/4058)
|
|
>
|
|
> **MSCs in Final Comment Period:**
|
|
>
|
|
> * _No MSCs are in FCP._
|
|
>
|
|
> **Accepted MSCs:**
|
|
>
|
|
> * _No MSCs were accepted this week._
|
|
>
|
|
> **Closed MSCs:**
|
|
>
|
|
> * _No MSCs were closed/rejected this week._
|
|
>
|
|
> #### Spec Updates
|
|
>
|
|
> In the new MSCs section there are new flurry of MSCs from Travis.
|
|
>
|
|
> **Matrix 1.9** has also been given a scheduled release date of **November 29th, 2023**.
|
|
>
|
|
> Travis has also put out a call in the [#sct-office:matrix.org](https://matrix.to/#/#sct-office:matrix.org) for folks to add/apply feedback to any MSCs related to custom emotes and stickerpacks, as that feature is due to be reviewed (and consolidated) by the Spec Core Team this week or early next week.
|
|
>
|
|
> #### Random MSC of the Week
|
|
>
|
|
> The random MSC of the week is... [MSC4034: Media limits](https://github.com/matrix-org/matrix-spec-proposals/pull/4034)!
|
|
>
|
|
> This MSC facilitates a few new features related to the storage of user media on homeservers. First, it proposes additional metadata on the [`/_matrix/media/v3/config`](https://spec.matrix.org/v1.8/client-server-api/#get_matrixmediav3config) endpoint to inform clients of the total number of bytes they're allowed to store on the homeserver, as well as the maximum number of total files they're able to store.
|
|
>
|
|
> Second, a new endpoint `/_matrix/media/v3/usage` would allow users to query how much of their total number of bytes/files they're currently using.
|
|
>
|
|
> Both of these features would allow homeservers to set and communicate media usage quotas to clients, instead of simply returning an error when the user tries to upload media that would exceed it.
|
|
>
|
|
> Seems like a very sane proposal to me! If this is something that you think would be useful to the Matrix spec, please don't hesitate to weigh in with your support/feedback :)
|
|
|
|
### Call to Action for server owners
|
|
|
|
[Aine](https://matrix.to/#/@aine:etke.cc) announces
|
|
|
|
>
|
|
> Hey there, Matrix Homeserver Owners!
|
|
>
|
|
> I'm Aine from [etke.cc](https://etke.cc/), and I want to tell you about a fantastic project we're working on: [Matrix Rooms Search](https://gitlab.com/etke.cc/mrs/api). It's a search engine for Matrix Federation public rooms.
|
|
>
|
|
> Recently, we introduced [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929) integration into Matrix Rooms Search. This feature automatically notifies server owners by email if a room on their server is reported for any issues. It's an important step toward enhancing safety within the Matrix Federation.
|
|
>
|
|
> However, we've noticed that the adoption of [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929) across Matrix servers is relatively low, despite the fact it is going to the proposed Final Comment Period soon. This is where we need your help!
|
|
>
|
|
> On behalf of the MRS project, we're reaching out to you to add (or update, if you previously configured it) [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929) support to your homeserver. Together, we can make the Matrix Federation a safer and more secure environment for everyone.
|
|
>
|
|
> So, how can you do this? It's simple! You just need to serve the `/.well-known/matrix/support` file with the following structure on your homeserver's domain. If your Matrix ID is `@you:example.com`, the file should be available at `https://example.com/.well-known/matrix/support`:
|
|
>
|
|
> ```json
|
|
> {
|
|
> "contacts": [
|
|
> {
|
|
> "email_address": "your@email.here",
|
|
> "matrix_id": "@your:mxid.here",
|
|
> "role": "admin"
|
|
> }
|
|
> ]
|
|
> }
|
|
> ```
|
|
>
|
|
> If you're using [mdad](https://github.com/spantaleev/matrix-docker-ansible-deploy), there's a handy [guide](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-well-known.md#optional-introduction-to-homeserver-admin-contact-and-support-page) to assist you in setting this up.
|
|
>
|
|
> By taking this step, you'll be contributing to a safer and more secure Matrix Federation. We invite you to join us in the [#mrs:etke.cc](https://matrix.to/#/#mrs:etke.cc) room, where you can connect with others who are interested in the MRS project.
|
|
>
|
|
> Let's work together to make the Matrix Federation a better place for all of us. Your support means a lot, and it's a step in the right direction for a more secure and connected future.
|
|
|
|
<!-- more -->
|
|
|
|
## Dept of Servers 🏢
|
|
|
|
### Synapse ([website](https://github.com/matrix-org/synapse/))
|
|
|
|
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
|
|
|
|
[clokep](https://matrix.to/#/@clokep:matrix.org) announces
|
|
|
|
> This past week we released [Synapse 1.95rc1](https://github.com/matrix-org/synapse/releases/tag/v1.95.0rc1)! The overall theme seems to be
|
|
> stability and performance. Although including no new features, it fixes a handful
|
|
> of known issues, improves performance of purging rooms, and reduces the number of memory allocations of common tasks.
|
|
>
|
|
> Since the release candidate release we've been [preparing for Ubuntu 23.10](https://github.com/matrix-org/synapse/pull/16524) as well as landing additional bugfixes and [performance improvements](https://github.com/matrix-org/synapse/pull/16492).
|
|
|
|
## Dept of Clients 📱
|
|
|
|
### Element X iOS ([website](https://github.com/vector-im/element-x-ios))
|
|
|
|
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
|
|
|
|
[Ștefan](https://matrix.to/#/@stefan.ceriu:matrix.org) announces
|
|
|
|
> This week was all about continuing ongoing work:
|
|
>
|
|
> * We now have UI for [voice message recording](https://github.com/vector-im/element-x-ios/pull/1892)
|
|
> * Audio and voice message file [waveforms in the timeline](https://github.com/vector-im/element-x-ios/pull/1919)
|
|
> * Screens for [key backup and recovery](https://github.com/vector-im/element-x-ios/pull/1913)
|
|
> * A very pretty [app lock screen](https://github.com/vector-im/element-x-ios/pull/1925)
|
|
> * And last but not least a working, widget based, Element Call integration
|
|
>
|
|
> ![An iOS dialog saying "Set up recovery" at the top, a description explaining the recovery key and a button to generate it. At the very bottom is a "Done" Button.](/blog/img/kxBZWSQHjOHIsFFJPFFzPhgy.png)
|
|
>
|
|
> <video controls width="250"><source src="/blog/img/AVgKmzJozBGdUgaaDJcOOORd.mp4" type="video/mp4" /></video>
|
|
|
|
### Element Web/Desktop ([website](https://github.com/vector-im/element-web))
|
|
|
|
Secure and independent communication, connected via Matrix. Come talk with us in [#element-web:matrix.org](https://matrix.to/#/#element-web:matrix.org)!
|
|
|
|
[Johannes Marbach](https://matrix.to/#/@johannesm:element.io) announces
|
|
|
|
> * We continued the investigation of test failures around [stuck notifications](https://github.com/vector-im/element-web/issues/24392) and have identified redactions in threads as one source of issues. The [first](https://github.com/matrix-org/matrix-js-sdk/pull/3798) [fixes](https://github.com/matrix-org/matrix-js-sdk/pull/3800) for this have landed on `develop`.
|
|
>
|
|
> * Work on the new room header & details has continued and the initial [PR](https://github.com/matrix-org/matrix-react-sdk/pull/11664) to update the visual language on the right panel is getting close to landing. We're also halfway through making touch-ups to the room summary tab.
|
|
>
|
|
> * Native OIDC support is nearing completion. We need to think through guest logins and cross-signing before doing final testing.
|
|
|
|
## Dept of Non Chat Clients 🎛️
|
|
|
|
### Circles beta releases ([website](https://www.kombuchaprivacy.com/circles/))
|
|
|
|
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
|
|
|
|
[cvwright](https://matrix.to/#/@cvwright:futo.org) reports
|
|
|
|
> Circles is an end-to-end encrypted social network app that lets families and friends safely share photos, videos, and text updates. This week we have new beta releases on both iOS and Android.
|
|
>
|
|
> #### Circles iOS beta 0.6.1
|
|
>
|
|
> This week we released two new beta builds on iOS. The biggest new features include:
|
|
>
|
|
> * Ability to edit posts, and the app now shows the latest version of an edited post
|
|
> * Highlight posts that mention you
|
|
> * Show unread counts for circles and groups
|
|
> * Send read receipts so that unread counts are accurate
|
|
> * Various design improvements
|
|
> * Numerous bug fixes
|
|
>
|
|
> Known limitations:
|
|
>
|
|
> * QR codes don't work with Circles Android
|
|
> * Not compatible with accounts created on Circles iOS v0.4.1 and below
|
|
>
|
|
> Circles for iOS is available now on [TestFlight](https://testflight.apple.com/join/Hvj9S0SX)
|
|
>
|
|
> #### Circles Android beta 1.0.17
|
|
>
|
|
> This build fixes a crash on Android 14.
|
|
>
|
|
> Circles for Android is available from [Google Play](https://play.google.com/store/apps/details?id=org.futo.circles) and the [Circles F-Droid repo](https://circu.li/fdroid/repo/)
|
|
|
|
## Dept of SDKs and Frameworks 🧰
|
|
|
|
### Rory&::LibMatrix (.NET matrix bot/client library)
|
|
|
|
[Emma [it/its]](https://matrix.to/#/@emma:rory.gay) says
|
|
|
|
>
|
|
> While no major work was done, some new features were dropped.
|
|
>
|
|
> #### New features
|
|
>
|
|
> * Ability to update user profile, with the option to restore room-specific profiles (why isn't this a thing in base matrix?)
|
|
> * Handle conversion of floating point values to strings on POST/PUT requests (intended for state but is applied everywhere, may raise bugs in the future though I haven't come across any)
|
|
>
|
|
> #### Fixes
|
|
>
|
|
> * Homeserver-local MXC to URL conversion now removes double slash in base path (no more `//_matrix/`!)
|
|
> * Added a null check when trying to call sync with homeserver == null
|
|
>
|
|
> _**And, as always:**_
|
|
>
|
|
> * The code is available at [cgit.rory.gay](https://cgit.rory.gay/matrix/LibMatrix.git)
|
|
> * All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
|
|
> * Discussion, suggestions and ideas are welcome in [#libmatrix:rory.gay](https://matrix.to/#/#libmatrix:rory.gay) (Space: [#mru-space:rory.gay](https://matrix.to/#/#mru-space:rory.gay))
|
|
|
|
### Matrix Rust SDK ([website](https://github.com/matrix-org/matrix-rust-sdk))
|
|
|
|
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
|
|
|
|
[Jonas Platte](https://matrix.to/#/@jplatte:flipdot.org) announces
|
|
|
|
> Lots of progress on widgets this week. Expect Element Call integration to be available in Element X in the coming weeks!
|
|
|
|
### Complement ([website](https://github.com/matrix-org/complement))
|
|
|
|
Matrix compliance test suite
|
|
|
|
[Kegan](https://matrix.to/#/@kegan:matrix.org) announces
|
|
|
|
> *Complement is an end-to-end testing suite for matrix homeservers. It's used by Synapse, Dendrite and Conduit to test client/federation APIs.*
|
|
>
|
|
> Complement has had some much needed improvements to the API over the past week or two. A summary of the main changes:
|
|
>
|
|
> * **Complement now runs 2x fast as before**, if you run it with `COMPLEMENT_ENABLE_DIRTY_RUNS=1`. This speedup is possible because this setting reuses containers between tests rather than creating a new clean container for each test. On Synapse's repository, this decreases CI for postgres/worker mode from 40m to 20m.
|
|
> * **Complement CS API tests can now be written out-of-repo**. Previously, you could only write Complement tests from within the Complement repository, because tests imported private packages not exposed publicly. These packages have been cleaned up and are now exposed for people to use in their own projects. This is significant because it opens up the door for homeservers to have their own homeserver-specific tests (e.g Synapse admin APIs) in their own repository, whilst reusing all of Complement's machinery. Federation tests cannot be written out-of-repo yet as the `federation` package is still private.
|
|
> * **Complement assertion APIs are cleaner**. Complement makes heavy use of test "matchers" to check that responses have the right data in the right places. These matchers are designed to be composable so you can just use what you want and nothing more. However, helper functions which use the matchers weren't particularly composable: some required `[]byte`, others `gjson.Result`, others still `http.Response`. In addition, the common `m.MatchResponse` helper function would fail the test if the matcher returned an error, making it impossible to use in cases where you want to "retry until you see X". The API has been cleaned up into two packages: `should` and `must`. The former will just return errors if the matches fail, whilst the latter will fail the test as before. This makes it easier to reuse matchers in a variety of tests.
|
|
> * **Complement handles MSCs better**. Previously, MSCs were defined as a dedicated file e.g `msc1234_test.go` with a conditional build tag at the top of the file. Tests could then opt-in to running the MSC with `go test -tags "msc1234" ./tests/...`. This wasn't ideal for a few reasons: A) conditional builds meant that by default the files were not compiled, making it easy to break tests when refactoring, B) it wasn't possible to just run the MSC tests. MSCs are now dedicated packages and run using `go test ./tests/msc1234`. This means they are always compiled (no conditional builds) and they can be run stand-alone during development by just executing tests in that directory.
|
|
>
|
|
> We hope with these changes Complement will be even easier to use and applicable to a wider set of use cases than before.
|
|
|
|
## Dept of Ops 🛠
|
|
|
|
### synadm ([website](https://github.com/JOJ0/synadm))
|
|
|
|
Command line admin tool for Synapse (Matrix reference homeserver)
|
|
|
|
[jacksonchen666](https://matrix.to/#/@jacksonchen666:jacksonchen666.com) says
|
|
|
|
> synadm [v0.44](https://github.com/JOJ0/synadm/releases/tag/v0.44) has been released with 2 new things:
|
|
>
|
|
> * [--force-purge added to `synadm room delete`](https://github.com/JOJ0/synadm/pull/130)
|
|
> * something to do with [`raw` commands](https://github.com/JOJ0/synadm/pull/129)
|
|
>
|
|
> Also [a bug fix](https://github.com/JOJ0/synadm/commit/b7b301fa93929c56efd6d038a5bd584fcbf6fabb) but who cares.
|
|
>
|
|
> That's it!
|
|
|
|
## Dept of Services 🚀
|
|
|
|
### etke.cc ([website](https://etke.cc))
|
|
|
|
Your matrix server on your conditions
|
|
|
|
[Slavi](https://matrix.to/#/@slavi:etke.cc) reports
|
|
|
|
> As a follow-up to Aine's Call-to-Action about the popularization of [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929), at [etke.cc](https://etke.cc/) we'd like to lead the effort to make it ubiquitous for Matrix servers to be publishing Matrix/Email contact information for administrator/security-related staff members via a `/.well-known/matrix/support` file (as described in the MSC).
|
|
>
|
|
> As such, all future etke.cc customers will be opted into this by default for their Matrix servers. Existing customers' servers will not be affected.
|
|
|
|
## Dept of Events and Talks 🗣️
|
|
|
|
### Matrix Salon Podcast (English episode)
|
|
|
|
[Christian Paul (jaller94)](https://matrix.to/#/@jaller94:matrix.org) reports
|
|
|
|
> Meet Greg Gwmngilfen, who is one of the Ansible Community managers. He cares about growing and moderating the Ansible community chat. With the use of IRC declining, #Matrix became the new default. Learn how Ansible is using two homeservers to separate between official moderation and open registration community accounts.
|
|
>
|
|
> The #podcast episode can be found here: <https://podcasters.spotify.com/pod/show/matrix-podcast0/episodes/Greg---Matrix-Community-Summit-2023-e29v0i1>
|
|
>
|
|
> RSS feed: <https://anchor.fm/s/cdb34188/podcast/rss>
|
|
>
|
|
> Mastodon post: <https://mastodontech.de/@jaller94/111266521940897538>
|
|
|
|
## Dept of Guides 🧭
|
|
|
|
### Matrix Client Tutorial
|
|
|
|
[uhoreg](https://matrix.to/#/@hubert:uhoreg.ca) announces
|
|
|
|
> I've made a bit of progress on my [Matrix Client Tutorial](https://uhoreg.gitlab.io/matrix-tutorial/), and added some information on [how Olm and Megolm decryption fit within a client](https://uhoreg.gitlab.io/matrix-tutorial/tying_together_megolm.html). Encryption (both Olm and Megolm) look like they will be quite complicated to explain, due to error handling and performance considerations, so I'm expecting that Olm encryption won't be written until November at the earliest, and Megolm encryption in December at the earliest.
|
|
|
|
## 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|maunium.net|259|
|
|
|2|utzutzutz.net|262|
|
|
|3|tcpip.uk|321|
|
|
|4|pentago.nl|340|
|
|
|5|chrrreeeeesss.com|506|
|
|
|6|intothematrix.in|521|
|
|
|7|halogen.place|530|
|
|
|8|forgedtheir.phd|599.5|
|
|
|9|nerdhouse.io|643|
|
|
|10|matrix.tillmannheigel.de|830.5|
|
|
|
|
### [#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|matrix.its-tps.fr|403|
|
|
|2|herkinf.de|509|
|
|
|3|inu.is|538|
|
|
|4|littlevortex.net|683|
|
|
|5|shiftsystems.net|982|
|
|
|6|matrix.fryer.net.au|2852.5|
|
|
|
|
## That's all I know
|
|
|
|
See you next week, and be sure to stop by [#twim:matrix.org](https://matrix.to/#/#twim:matrix.org) with your updates!
|