matrix.org/content/blog/2023/10/2023-10-20-twim.md

18 KiB

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

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 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!

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 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 announces

Hey there, Matrix Homeserver Owners!

I'm Aine from etke.cc, and I want to tell you about a fantastic project we're working on: Matrix Rooms Search. It's a search engine for Matrix Federation public rooms.

Recently, we introduced MSC1929 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 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 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:

{
  "contacts": [
    {
      "email_address": "your@email.here",
      "matrix_id": "@your:mxid.here",
      "role": "admin"
    }
  ]
}

If you're using mdad, there's a handy guide 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 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.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

clokep announces

This past week we released Synapse 1.95rc1! 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 as well as landing additional bugfixes and performance improvements.

Dept of Clients 📱

Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Ștefan announces

This week was all about continuing ongoing work:

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.

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Johannes Marbach announces

  • We continued the investigation of test failures around stuck notifications and have identified redactions in threads as one source of issues. The first fixes for this have landed on develop.

  • Work on the new room header & details has continued and the initial PR 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)

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

cvwright 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

Circles Android beta 1.0.17

This build fixes a crash on Android 14.

Circles for Android is available from Google Play and the Circles F-Droid repo

Dept of SDKs and Frameworks 🧰

Rory&::LibMatrix (.NET matrix bot/client library)

Emma [it/its] 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:

Matrix Rust SDK (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

Jonas Platte announces

Lots of progress on widgets this week. Expect Element Call integration to be available in Element X in the coming weeks!

Complement (website)

Matrix compliance test suite

Kegan 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)

Command line admin tool for Synapse (Matrix reference homeserver)

jacksonchen666 says

synadm v0.44 has been released with 2 new things:

Also a bug fix but who cares.

That's it!

Dept of Services 🚀

etke.cc (website)

Your matrix server on your conditions

Slavi reports

As a follow-up to Aine's Call-to-Action about the popularization of MSC1929, at 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) 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 announces

I've made a bit of progress on my Matrix Client Tutorial, and added some information on how Olm and Megolm decryption fit within a client. 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, a maubot that you can host on your own server.

#ping:maunium.net

Join #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

Join #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 with your updates!