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:
- MSC4060: Accept room rules before speaking
- [WIP] MSC4059: Mutable event content
- [WIP] MSC4058: Additive events
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 athttps://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:
- We now have UI for voice message recording
- Audio and voice message file waveforms in the timeline
- Screens for key backup and recovery
- A very pretty app lock screen
- And last but not least a working, widget based, Element Call integration
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:
- The code is available at cgit.rory.gay
- 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 (Space: #mru-space:rory.gay)
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
, othersgjson.Result
, others stillhttp.Response
. In addition, the commonm.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
andmust
. 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 withgo 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 usinggo 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:
- --force-purge added to
synadm room delete
- something to do with
raw
commandsAlso 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!