Ben is away this week for some well-deserved holidays (don't worry, he'll be back next week), so I'm filling in for him so you don't miss out on your weekly dose of Matrix-related news, let's do this!
Matrix Live 🎙
It's demos week this week! Enjoy a selection of demos featuring: Spaces, low-bandwidth Matrix, Hydrogen notifications and bridging DMs between Gitter and Matrix!
Dept of 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.
MSCs in Final Comment Period:
MSC2403: Add "knock" feature (merge)
Lots of MSCs moving through the pipeline last week and this week!
Spec Core Team
We're still working on improving our process for day-to-day MSC work, but small individual improvements seem to be adding up! Otherwise some members of the team came together and summarised the team's thoughts on MSC2190.
Unfreezing the spec
Still shifting internal infrastructure to allow redirecting from the old spec to the new where necessary.
Dept of Servers 🏢
callahad told us:
We're proud to announce that Synapse 1.30.0 was released on Monday.
The 1.30 release focused on improving our resilience to interruptions in federation, both being smarter about what work we do, as well as improving the CPU and DB performance of the
state_idsendpoint by at least an order of magnitude. Check the release post for full details.
...but also check out this graph (of that endpoint only) from an EMS host after deploying 1.30.0:
That ain't gonna bother us no more.
In other news, we've decided to try out GitHub Actions for automated testing of Synapse and will report back in a few weeks. Our hope is that this makes our CI more amenable to iterative improvement and outside contributions.
It's also worth flagging that the next release of Synapse, due in early April, will be the last to support Python 3.5.
See y'all next week!
matrix-media-repo is a highly customizable multi-domain media repository for Matrix
v1.2.6 is out now with a guest account patch and some added libraries to the Docker image. It's a small one, but worth the upgrade when there's a few spare cycles to use :)
As always, if you run into problems or have questions, visit #media-repo:t2bot.io
Homeserver Deployment 📥️
Finally did what I've been talking about for a while, and got the Synapse chart I'm doing upgraded to the point where it won't require my own image any more, Version 2.0.0. (In fact, the chart will now deploy the upstream
matrixdotorg/synapseimage by default)
I also went through and fixed a bunch of things, refactored the worker config some to get it closer to the generic_worker setup, added configuration to include arbitrary values in .well-known (for Jitsi and the like), etc.
They've also added:
And just updated my Kubernetes image and Helm Chart for Synapse to the new 1.30.0 version - note that the image has been deprecated by now though, the chart is the new go-to way to get Synapse on Kubernetes.
And then, following today's 1.30.1 Synapse update:
I've pushed Helm Chart updates for Synapse 1.30.1 and Matrix Media Repo 1.2.6
This Ansible playbook is meant to easily let you run your own Matrix homeserver.
Slavi told us:
This is only useful to people who develop/build their own Matrix client applications.
Additional details are available in our Setting up Sygnal docs.
Dept of Bridges 🌉
matrix-puppeteer-line: A bridge for LINE messenger based on running LINE's Chrome extension in Puppeteer.
When logging in with an incorrect email/password, the bot will tell you.
TODOs: Everything I mentioned last week, except for avatars 🙂
Eric Eastwood offered:
We're working on bridging DM conversations between Matrix and Gitter. For our first iteration, you will be able to start a DM conversation with a Gitter user from Matrix. In the next iteration, we will allow Gitter users to start a DM conversation with a Matrix user.
The following is a small taste of what it will look like and will also be included in the upcoming Matrix live demo day.
Dept of Clients 📱
A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/
Hydrogen 0.1.40 got released this week with support for push notifications (look to enable it from the settings) and some other smaller fixes.
(Note that because of a sygnal bug, push messages are sometimes failing to be delivered to mobile. This will be fixed in the coming days without any action needed if you already enable it before.)
If you want to know more about Hydrogen's new shiny notifications, check out this week's Matrix live (at the top of this post)!
Updates from the teams:
- Spaces are now testable on develop.element.io & matrix.org! Buyer beware: They’re in early beta, using unstable prefixes, so may break at any time. But you can test by enabling the Spaces labs flag while connecting to matrix.org or a Synapse development build
- If you’d also like access to a test build for Android, we’re working out a better way to deliver test builds, but in the meanwhile let us know in the new spaces feedback room
- There’s lots of rough edges, but we’re first focusing on polishing public spaces, and feedback is welcome in the spaces feedback room, or via GitHub issues
- If you run an online community (using any platform), we’d love to talk to learn more about your general pains too, in you guessed it: the spaces feedback room
- Watch this week's Matrix Live for a demo of the above!
- Not too much news this week, but look out for another connectivity fix in next week’s element web release.
- Element Web 1.7.24-rc.1 on staging, including:
- Additional VoIP call connection reliability improvements
- Added invite option to room tile context menu
- Improved cross-signing login flow
- On develop / nightly:
- Improved invite error handling
- Search indexing errors now properly state the error, instead of asking you to use desktop (when you already are)
- Element-iOS 1.2.7 is already available from TestFlight and will be available on the App Store on Monday.
Dept of SDKs and Frameworks 🧰
libkazv (and the Kazv Project)
libkazv is a sans-io C++ (gnu++17) client library
In the past 2 week we ("tusooa and her longcat," we hope someday we can remove this annotation :P):
Recorded state events in timeline. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/2
Added support for streaming download. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/3
Just pushed version 2.3.0 of the Matrix Ruby SDK, headline features include; Ruby 3.0 support (though might still be a few niggles in there, expect a 2.3.1 once it's been more tested), a complete redesign of the room data cache to improve memory usage and code quality, and general request additions that people were interested in.
Hello everybody! I released Guile-Deck 0.1.0, GNU Guile SDK for Matrix network: https://lists.gnu.org/archive/html/guile-user/2021-03/msg00048.html
This library allows to write Matrix clients in Scheme Lisp.
Dept of Bots 🤖
Matrix Daily Calendar
I've written a simple little script that connects to CalDav servers and sends me a summary of the events for the day over Matrix. https://gitlab.com/uhoreg/matrix_daily_calendar I find it useful as I don't have enough meetings that I'm constantly checking my calendar, so having a message at the beginning of the day helps me remember the meetings that I do have.
Dept of Built on Matrix 🏗️
🌵 Cactus Comments
Cactus Comments is a federated comment system for the open web built on Matrix.
Web Client v0.6.0 released! No new features, just UI/UX improvements this time around.
Move matrix.to link into login modal.
Removed login status string above textarea.
Show userid in Post button.
Add placeholder text to comment textarea.
Textarea inherits background color, to work better with darkmode websites.
dev.html example page now has a darkmode toggle button.
A bunch of smaller improvements to the default CSS.
/ipns/latest.cactus.chat is updated to point to the latest release, so sites linking there should already be using the new version.
If you forked the CSS to style it yourself, you may want to replace it with the new CSS file and add your changes again, to get the new styling.
Come play with the demo: https://cactus.chat
Join our Matrix room: #cactus:cactus.chat
Dept of Guides 🧭
krazykirby99999's guide to creating Matrix bots
krazykirby99999 shared with us their guide for creating simple Matrix bots in Python: https://www.reddit.com/r/matrixdotorg/comments/mdqitp/how_to_create_a_matrix_bot/
Final Thoughts 💭
Hey everyone 👋 One year ago I started to explore combining CRDTs with end-to-end encryption (Matrix's Olm/Megolm) to allow people to collaborate on the same documents/data. Couple months back I got a first prototype working and then evolved to a production ready app. Think of a simple Google Docs, but end-to-end encrypted and offline-first (iOS & Android for now).
Feedback, ideas and question are very welcome!
The app/client source is available here: https://github.com/SerenityNotes/serenity-notes-clients
This is not a project built directly on Matrix, but I thought it was a very cool use of Matrix's end-to-end encryption library, olm!
Dept of Ping 🏓
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!