22 KiB
+++ title = "This Week in Matrix 2020-10-02" path = "/blog/2020/10/02/this-week-in-matrix-2020-10-02"
[taxonomies] author = ["Andrew Morgan"] category = ["This Week in Matrix"]
[extra] image = "https://matrix.org/blog/img/2020-10-02-gitter-ml.jpg" +++
Matrix Live 🎙
{{ youtube_player(video_id="J7aNMUg3pvA") }}
Don't forget that Matrix Live is also available in podcast form. Search for "Matrix Live" wherever you get your podcasts.
Dept of Status of Matrix 🌡️
Gitter Enters the Matrix
Half-Shot reported:
Gitter is joining the Matrix ecosystem!
It's true! Element has acquired Gitter from GitLab and will be implementing Gitter's current chat features in Matrix, before rebuilding Gitter as a Matrix client! Before all that however, the first step is to build a proper, modern bridge between the two networks, replacing the old one that's been around for years.
The full spectrum of news is:
- The Matrix.org blog post
- The Element blog post
- The Gitter blog post
- Techcrunch article
- ChangeLog Podcast episode w/ Matthew Hodgson from Matrix and Sytse "Sid" Sijbrandij from GitLab
And if you'd like to chat with your fellow Matrix and Gitter users, there's a bridged room already set up at #gitter:matrix.org!
Welcome to the community, Gitter! 🎉
Dept of Spec 📜
anoa reported:
Spec
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
Merged MSCs:
- No MSCs were merged this week.
MSCs in Final Comment Period:
- MSC2788: Room version 6 as the default room version (merge)
- MSC2414: Make reason and score parameters optional for reporting content (merge)
New MSCs:
Spec Core Team
In terms of Spec Core Team MSC focus for this week, after dropping off MSC2414 in the FCP bucket, we're heading back for another big swing at widgets. MSC2774 (widget ID URL parameter), MSC2765 (widget avatars) and MSC2790 (modal widgets) are the focus for this week 🙂
Matrix URIs
kitsune told us:
being totally shook up about the Gitter announcement for a good part of the week, I completed the work on MSC2312 (it's about Matrix URIs, ICYMI) and it hopefully won't be long before it becomes the actual standard to share Matrix coordinates in popular web browsers. Ok, who am I kidding - before Matrix clients get on with adoption.
This will allow people to post links to Matrix rooms/messages/users and when clicked will open right in your favourite Matrix client. Super convenient and great for adoption!
Dept of P2P 👥
iOS P2P Demo
Dendrite is a next-generation homeserver written in Go. It is currently serving as the basis for peer-to-peer Matrix experiments
Neil Alexander announced:
Build 38 of the iOS P2P Demo, as built using Element iOS and Dendrite, has been submitted to TestFlight and will hopefully be available for testers shortly (pending Apple approval)! It features lots of updates in the Dendrite backend which should hopefully make it more reliable.
If you have an iPhone or iPad and enjoy things that sometimes work, join the TestFlight here!
Dept of Servers 🏢
Synapse
Neil reported:
This week we put out a new release candidate -1.21.0rc2
Highlights include
Add experimental support for sharding event persister. (#8294, #8387, #8396, #8419)
Add experimental prometheus metric to track numbers of "large" rooms for state resolutiom. (#8425)
Add prometheus metrics to track federation delays. (#8430)
Fix messages not being sent over federation until an event is sent into the same room. (#8230, #8247, #8258, #8272, #8322)
Fix a regression in v1.21.0rc1 which broke thumbnails of remote media. #8438
Aside from that we are working on moving background processes away from the main process, actually getting the event persister sharding onto matrix.org and trying to improve Synapse stability generally.
Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
Neil Alexander said:
Dendrite is nearing beta! Today we will be cutting a candidate 0.1.0rc1 version after a week of hunting and fixing bugs. We are on track to release version 0.1.0 next week, at which point we will be inviting people to try installing and using Dendrite!
Changes this week include:
Initial sync is fixed after a bug caused us to fall back on incremental sync
The
Content-Type
HTTP header is now handled properly when MIME-formattedInternal API calls over HTTP in polylith mode now use their own HTTP client with higher timeouts
Dendrite now tries harder to find missing auth events, using fetcher workers
Dendrite no longer falls back on
/state
unnecessarily, which was the cause of a major memory leak and high CPU usageFederation HTTP calls now include the
User-Agent
headerThe event
depth
field is now ignored in the federation APIWe now report the password change capability properly (thanks bn4t!)
Registration flows now include the
completed
field after a failure (thanks Lesterpig!)A bug in the previous event updater in the roomserver has been fixed
A bug where we didn't check our own old verify keys when verifying event signatures is fixed
A bug where we didn't handle event ID domains being different to the event origin in earlier room versions has been fixed
TLS fingerprints have been removed
Spec compliance is unchanged:
Client-Server APIs: 56%, same as last week
Server-Server APIs: 77%, same as last week
Recently, we updated some of our documentation and created a whole new set of easy first issues and medium to hard issues for contributors.
If contributing to Dendrite sounds like something you would be interested in, please take a look at these issues and join us in #dendrite-dev:matrix.org! There's also #dendrite:matrix.org for general Dendrite chat and updates and #dendrite-alerts:matrix.org for release notifications and important alerts.
Conduit
Conduit is a Matrix homeserver written in Rust https://conduit.rs
timo reported:
Fix bug leading to many requests at the same time due to error in waiting code
Implement /query/profile over federation
Start work on /invite over federation
Thanks to everyone who supports me on Liberapay or Bitcoin!
The Construct
Jason reported:
This week in Matrix Construct supports aarch64 (ARMv8) architectures. The experience has been phenomenal, with performance exceeding all expectations. Last week I wrote about all new vector code inside Construct using SSE through AVX-512 hardware acceleration in servers; that same code is now accelerated by SVE (Scalable Vector Extensions) on ARM architectures when you compile with clang.
This result is important: ARM virtual machines are offered at a significantly lower price compared to x86 from the same vendor. The systems are cheaper, require less power, but generally perform worse. The trick is to optimize the software for the weaker hardware. The benefit allows, for example, Matrix server hosts running Construct to make th eir profit margin from the lower TCO, getting more out of every computing cycle.
Construct is available at https://github.com/matrix-construct/construct and don't forget to idle and idle #construct:zemos.net.
Synapse Deployment 📥️
YunoHost
Pierre announced:
YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.
Synapse integration had been updated to 1.19.3 (1.20.1 available in branch
testing
)Element Web integration had been updated to 1.7.7 (1.7.8 available in branch
testing
)
Dept of Bridges 🌉
mautrix-signal
Tulir said:
I made a Signal bridge using signald.
Currently it supports bridging messages, reactions and signal read receipts. End-to-bridge encryption also exists (mautrix-python does all the work there). The bridge can be linked as a secondary device and possibly even registered as the main device, but I didn't actually test registering yet. Setup instructions are currently somewhat non-existent, but it's mostly the same as my other bridges plus signald as a separate daemon.
The repo is https://github.com/tulir/mautrix-signal and the room is #signal:maunium.net
He then popped up again a few days later to say:
After the initial announcement earlier this week, I implemented a few of the missing features like media bridging, and even added setup instructions.
The speed at which Tulir writes bridges scares me sometimes.
mx-puppet-discord
mx-puppet-discord is a (double)puppeting and relay bridge for discord, based on mx-puppet-bridge
sorunome said:
mx-puppet-discord got updated to the newest discord.js version, meaning you have to update if you want to continue to operate it, due to discord having changed their gateway url!
mx-puppet-discord now also supports the intent stuff, so be sure to update by 7th oct
If you run mx-puppet-discord (like I do), make sure to update by October 7th or it will stop working!
Bridges do Hackertoberfest
Half-Shot reported:
Hey folks, I wanted to give another shoutout to say that we are still accepting PRs as part of hacktoberfest. Contributing 4 PRs will get you a T-Shirt (sadly not a Matrix one). Obviously, please ensure your PRs are meaningful (no copyright adjustments, typo fixes).
You can work on any issue, but we've highlighted some issues that would be perfect for newcomers over at https://github.com/matrix-org/matrix-appservice-bridge/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest and https://github.com/matrix-org/matrix-appservice-slack/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest
Cadair reported:
In the hope of expanding the number of people contributing to the matrix-appservice-slack repo I have spent a chunk of my morning improving the issue descriptions and labelling up issues. If you are interested in fixing a little annoyance with the slack bridge or just fancy writing some typescript see the good first issue label on the repo.
matrix-appservice-slack 1.6.0 rocks the block
Half-Shot reported:
The matrix.org team are delighted to bring you the latest in Slack bridging technology. Do not let the
minor version bump fool you, this release is packed with the good stuff. The headline feature is that our phase 1 encryption feature has landed and is free for users to experiment with. Head over to the
docs to see how to set this up.
There have been other notable changes, such as:
New configuration options to allow or deny some channels from being bridged.
Support removing reactions from Slack and Matrix messages.
Add onboarding message for new users when puppeting is enabled, to encourage them to puppet.
Improved feature documentation
(and many many bugfixes)
You can read the release information over at https://github.com/matrix-org/matrix-appservice-slack/releases
Looking forward to seeing all the new Hacktoberfest contributors! 🎃
Dept of Clients 📱
fluffychat
sorunome offered:
Fluffychat 0.19.1 has been released!
Features
Implemented ignore list
Jump to events in timeline: When tapping on a reply and when tapping a matrix.to link
Display messages with up to 10 emotes or emoji bigger
New design for the chat list and message bubbles
Implement reactions
Implement password change
Implement deactivate user account
Fixes
Timeline randomly resorting while more history is being fetched
Automatically request history if the "load more" button is on the screen
Hydrogen
Bruno said:
More browser compatibility work this week, making Hydrogen run IE11 on Windows 7, and on Safari on macOS and iOS (still with some caveats). Also fixed several bugs:
fix for unable to open session after a synapse bug manifested itself
prevent the app locking up when you start the app with previously unsent messages
fix sync errors being reported as "null" in the banner
handle timeout during initial sync (important for large accounts) (although I have seen 1 report that this still isn't fixed, please report if you can't login with a large account)
SchildiChat for Android
SpiritCroc said:
SchildiChat's codebase has been updated to Element 1.0.8!
Furthermore, there have been a few design updates:
Media items (pictures, videos, stickers) are no longer displayed in message bubbles
Bigger stickers
Avatars are now hidden in direct chats (when using dual-side message bubbles)
Finally, Schildi doesn't crash anymore if somebody sends an empty message.
SpiritCroc also mentioned some relevant links!
Element-iOS
Manu announced:
1.0.14 is in on the release path. It has:
Room: Differentiate wordings for DMs
Room: New room details screen
Add Estonian support
Polishment in several areas and many bug fixes
Full changelog:
https://github.com/vector-im/element-ios/releases/tag/v1.0.14 https://github.com/vector-im/element-ios/releases/tag/v1.0.13
Element Web
Neil announced:
This week released v1.7.8
Highlights include
Secure Backup has been moved out of the registration flow to a toast when you first encounter an E2EE room, which simplifies the new user experience
Added options to hide various UI features when hosting a custom Element
Aside from that we continue to improve on widget support for resizable widgets, modal widgets and generally making widgets better.
We are also continuing to work on instrumenting the app, improving mobile support for matrix.to and making jitsi calling more reliable.
Element Android
benoit told us:
Element Android: Version 1.0.8 is now available on the stores, it fixes issues with verification and PIN code among other issues (see https://github.com/vector-im/element-android/releases/tag/v1.0.8 for more details). Now we are working on improving performance when sending messages to rooms, and also improving global UX, especially of the home (rooms list). Search messages (in clear rooms for the moment) is coming soon, and it will be also possible to filter the room members list.
We will also spend some time on the new Android SDK, https://github.com/matrix-org/matrix-android-sdk2, which is for the moment a quick extract of what we have in Element Android. We have to take care of it as a real product now: document it properly, set up CI, export Javadoc, develop a sample app, etc.
Element for Nextcloud
Gary Kim reported:
Element for Nextcloud v0.6.11 has been released this week. The new version comes with various bug fixes, dependency upgrades, and an upgrade to Element Web v1.7.8. The version is also compatible with Nextcloud 20 which is being released soon.
Dept of SDKs and Frameworks 🧰
Ruma
iinuwa told us:
Over the past couple of weeks, we've received PRs for all of the remaining federation endpoints, and all but one have already been merged!
Now that the end is in sight, we're turning our focus elsewhere. We're working on cleaning up and fixing a few bugs in our event signing code and soon will create tracking issues for filling out the Identity Service API.
Dept of Services 🚀
t2bot.io
TravisR reported:
t2bot.io has crossed 1M monthly active users
All of these users are Telegram/Discord users that have been brought into Matrix over the last 30 days. This doesn't appear to be a temporary spike either: over the last 8 weeks t2bot.io has been hovering at 900-950 thousand monthly active users, up from 600-700 thousand. Record-setting traffic levels have also been achieved, with matrix.org being able to keep up for the first time in a long while.
Overall it's a good sign to see so many communities making the jump to Matrix and sticking around ❤️
Dept of Bots 🤖
zabbix-matrix
progserega told us:
I added zabbix-bot to my zabbix-matrix repo, which can get information about current problems from zabbix-server and send it to matrix user. https://github.com/progserega/matrix_zabbix
In our company we use it for get current situation and https://github.com/progserega/im_sender_service for sending events from zabbix.
I've found that having your systems reporting in a room while you chat around it can be really productive. Props to supporting yet another monitoring platform!
Dept of Interesting Projects 🛰️
Jitsi E2EE Calls using Olm
While 1-1 calls benefit from end-to-end encryption due to WebRTC, Jitsi group calls have always only benefitted from transport encryption.
A while ago Jitsi announced that they were adding E2EE to Jitsi. But did you know that it's using Matrix's Olm encryption under the hood? It's currently available as an experimental feature on https://meet.jit.si!
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.
Rank | Hostname | Median MS |
---|---|---|
1 | fairydust.space | 368 |
2 | blob.cat | 543 |
3 | nuclearlimes.co.uk | 580 |
4 | nuclearlemons.uk | 889 |
5 | conduit.rs | 912.5 |
6 | mailstation.de | 1075 |
7 | matrix.org | 1092 |
8 | test.zemos.net | 1123 |
9 | shortestpath.dev | 1251.5 |
10 | chatcloud.net | 1338.5 |
We also now have a room where the ping bots are only hosted on non-Synapse servers! See the scoreboard below.
Rank | Hostname | Median MS |
---|---|---|
1 | conduit.rs | 104 |
2 | settgast.org | 154 |
3 | construct.grin.hu | 182 |
4 | blob.cat | 209 |
5 | grin.hu | 324.5 |
6 | dendrite.neilalexander.dev | 367 |
7 | test.zemos.net | 379 |
8 | maunium.net | 448.5 |
9 | conduit.nordgedanken.dev | 476 |
10 | inferiorlattice.com | 592 |
Final Thoughts 💭
XKCD 2365
Alexandre Franke told us:
XKCD made another strip about messaging systems and I’m outraged to see that Matrix has been left out of it.
Not to worry though, we've fixed it up!
TWIM authorship
I hope you enjoyed this week and last's TWIM editions! Benpa will return next week for more of your regularly scheduled programming. Ciao!
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!