Matrix Live π
Google Summer of Code - GSoC -- Final Call: put your seatbelts on!
From Nico (@deepbluev7:neko.dev), who is assisting with GSoC admin this year:
As already mentioned a few times, this year the Matrix organization is taking part in GSoC again. This is an amazing opportunity for students to take part in various Matrix-related projects and helping those projects implement awesome new features. Submission for this closes on April 13 this year (which is Monday on my clock)! If you want to take part in GSoC as a student, submit your final proposals now! You can find some examples here: http://matrix-org.github.io/gsoc. If you want to submit your own ideas, please contact a potential mentor before that. If you have questions, please check out the #gsoc:matrix.org room.
If you have already been writing a proposal, now is the time to put on the final polish and submit your proposal. If you are interested, now is the last opportunity this year to submit your proposal! We are excited to see, who will want to take part this year!
Dept of Spec π
Spec
anoa said:
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
Closed MSCs:
Merged MSCs:
MSCs in Final Comment Period:
- MSC2190: Allow appservice bots to use /sync (postpone)
- Pushing updates about Groups (Communities) to clients (close)
New MSCs:
Spec Core Team
After a lot of work behind the scenes, we've now officially unfrozen the spec! π§ π¨
This means spec PRs that change the actual content of the spec can be made again, and made they certainly have been! Huge thanks to TravisR for writing all of those up (and others for reviewing!), and for the last push of removing all of the old spec toolchain from the matrix-doc repo.
With this out of the way, we move forward migrating the old spec pages over to the new site, as well as to the next release of the spec, which will feature a new global versioning scheme!
Dept of Servers π’
Synapse
Synapse is a popular homeserver written in Python.
callahad offered:
Ding dong the snake is dead! πβ οΈ
We released SynapseΒ 1.31 on Tuesday. There are certainly nice things in it (read the release notes), but also, two days after that... WE FINALLY REMOVED SUPPORT FOR PYTHON 3.5!
As part of that, we now have a formal deprecation policy that explicitly states our platform support strategy. Namely: we follow upstream lifecycles. Thus, we can say with confidence that we will drop support for Python 3.6 in December of this year. So when upgrading, please do ensure that your operating system of choice provides modern Python packages.
By the way: if you're looking to contribute to Synapse, now is a good time to start grepping for
3.5
orxenial
orstretch
and seeing what cobwebs turn up which can finally be swept away. πΈπ§ΉWe're also experimenting with using GitHub Actions for CI, and would certainly appreciate reviews and pull requests from folks who are more knowledgeable in that area, especially around speeding up workflows and caching.
We'll be back next week with more details on the specific quarterly goals the team is committing itself to, but until then, π!
I don't know specific change helped, but 1.31 is a noticeable performance improvement for my Synapse, so thanks team!
Conduit
- Conduit: A Matrix homeserver written in Rust https://conduit.rs
- Ruma is a set of Rust library crates around Matrix
timokoesters told us:
Done:
Fix media thumbnail generation
Fix appservice detection
Implement room account data endpoints
Big state resolution refactor to make it easier to understand
Use correct room versions
Submit bug reports to libraries and clients:
https://github.com/vector-im/element-android/issues/3065
https://github.com/ruma/ruma/issues/446
https://github.com/ruma/ruma/issues/447
Doing:
Thinking about the future of the sled database in Conduit: https://gitlab.com/famedly/conduit/-/issues/74
Investigating state resolution problems
Investigating why certain clients are not supported by Conduit
Motivations & Challenges:
Some state resolution bugs are (still) very nasty and hard to debug
A deadlock was causing the whole program to freeze. The cause was found.
Our #conduit room had a state reset (it's on room version 5), so we upgraded to version 6, which was annoying
matrix-registration
zeratax offered:
Been a while since I last updated twim about matrix-registration.
Since then we added the possibility to localize the project and already got translations for
german, portuguese and chinese! https://l10n.dmnd.sh/engage/matrix-registration/
there has also been work on a nix package and module over here:
https://github.com/NixOS/nixpkgs/pull/107654 and a nur package to test it right now:
https://github.com/ZerataX/nur-packages/blob/master/pkgs/matrix-registration/default.nix https://github.com/ZerataX/nur-packages/blob/master/modules/matrix-registration.nix
But here are the newest changes for the just released v0.9.0
Features
- now uses alembic to up- or downgrade the database scheme
Please run the following after every update to make sure your database scheme is uptodate
alembic upgrade head
- instead of one time token you can now set arbitrary amounts of usage per token via
*m, --maximum INTEGER times token can be used
- new option in the config file to log IPs to the database
these are viewable by checking the status of individual token via the cli or web api
Changes
There have been a lot of changes to the config file and web api,
please refer to: https://github.com/ZerataX/matrix-registration/releases/tag/v0.9.0 and make sure to check the sample config for other changes you might have missed
Get it here
pypi: https://pypi.org/project/matrix-registration/0.9.0/
docker: https://hub.docker.com/repository/docker/zeratax/matrix-registration
and as always feel free to join #matrix-registration:dmnd.sh for support or w/e else!
Homeserver Deployment π₯οΈ
Kubernetes
Ananace told us:
Updated my Kubernetes chart - and image, for those still using it - to the new Synapse 1.31.0 release.
Dept of Bridges π
matrix-puppeteer-line
Fair announced:
matrix-puppeteer-line: A bridge for LINE Messenger based on running LINE's Chrome extension in Puppeteer.
New features:
Sending & receiving images
Sending Matrix stickers
Receiving LINE stickers
Receiving LINE emoji (via [MSC2545: Emotes](https://github.com/Sorunome/matrix-doc/blob/soru/emotes/proposals/2545-emotes.md ))
TODOs:
Rework message syncing so that receiving a message doesn't require "viewing" the LINE chat in the Puppeteer-controlled browser, which will make LINE send a read receipt even though you may not actually have read the message yourself.
Try to conclude whether bridging LINE stickers & emoji breaks copyright and/or would cause any other legal issues...! And look for something more threatening than just the Terms of Use (relevant section is 10.3). Any advice regarding this would be much appreciated π
Discussion: #matrix-puppeteer-line:miscworks.net
iMessage bridge hinted
Tulir offered:
I sent some messages between two Element web instances this week.
<@jboi:jboi.nl>: is that an iMessage bridge? π
yes, but there's no Mac involved
Dept of Clients π±
Hydrogen
A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/
Bruno reported:
After finishing push notifications last week, this week I've been getting on top of the bugs that had previously come in, before getting to more feature work. There were 3 releases with 7 bugs fixed, the last release being 0.1.45 just now.
Nheko
Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE and intends to be full featured and nice to look at
Nico (@deepbluev7:neko.dev) offered:
For people that use our Nightlies and Windows at the same time, we fixed our nightly builds for Windows now.
For people often going to the TWIM room, we fixed "TWIM" now actually finding the #thisweekinmatrix:matrix.org room. (We also fixed a lot of other small issues on the side, that are less interesting and hope we can tie a release soonish. :3)
Rather meta, that this fix relates so specifically to TWIM.
NeoChat
Tobias Fella offered:
In the last weeks, we have landed several smaller features:
Quick reply: Press Ctrl+Up to reply to the last message
Quick edit: Press Up to edit your last message
React with arbitrary texts using /react
We also fixed a lot of smaller issues, including joining rooms from the global room list, emotes, some commands and deletion of images and added lots of visual improvements. We're still investigating a bug that makes NeoChat get stuck on startup, and some fallout from our recent redesign of the timeline.
Element Clients
Updates provided by the teams.
Delight
- Weβre iterating on private spaces, working towards making them publicly testable first on the Web & Android, with iOS to follow.
- MSC3083 (Restricting room membership based on space membership) has more details on spec changes.
- If you have Spaces enabled in labs on the Web or Android come join us in the Matrix Test Space
- And big thank you to everyone giving feedback in the Spaces feedback room, please keep it coming and as a reminder if you run a public community (on any platform) weβd love to chat to you to get closer to understand your problems and goals.
iOS
- The olm library is now available through Swift Package Manager. Instructions can be found at https://gitlab.matrix.org/matrix-org/olm/-/tree/master/xcode.
- Element-iOS 1.3.0 is almost ready to be shipped. A public TestFlight will be available over the weekend. It has an entire new text composer with changes in the layout around the room timeline. It contains several fixes in the notification extension to avoid βUnable to decryptβ errors and out of memory crashes.
- We made good progress on the new design for VoIP but we preferred to polish it even more. It will be available in another version.
Android
- Element Android 1.1.4 has been released to the beta testers. This version includes lots of optimizations. Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.1.4. This release should be available to all users and to F-Droid users next week. The matrix SDK2 v1.1.4 has also been released today.
- We are making good progress to implement the Spaces, which will replace the communities (AKA groups). Spaces will be available in the release 1.1.5, behind a lab flag.
- Behind the hoods, we are making lots of code cleanup and we are improving the Matrix SDK API.
elmussol let us know that Element Android 1.1.3 is already available on F-droid. I love getting a new Element Android update!
Dept of SDKs and Frameworks π§°
Polyjuice Server π§
uhoreg offered:
There is a new library in the wizarding world: Polyjuice Server, an Elixir library to help with writing Matrix homeservers. It is still in the very early stages, but it is starting to take form. Please note that this is just a library and not a homeserver implementation, as I don't want anyone to mistake this for something that's actually useful. (And now that I've scratched this itch, I should attend to my secret personal side-project that I've been neglecting...)
In 20 years, will we look at this small comment from uhoreg and say, that's the first hint of the project that would change the world?
maubot
Tulir said:
I finally started writing some plugin development docs for maubot. It doesn't cover everything yet, but you can find it at https://docs.mau.fi/maubot/dev/getting-started.html. Setup docs were also moved from the GitHub wiki to docs.mau.fi and some of those docs have been improved (e.g. it now has instructions for enabling e2ee)
Guile-Deck: GNU Guile SDK for Matrix
a_v_p told us:
I released Guile-Deck 0.2.0, a GNU Guile SDK for the Matrix network: https://github.com/artyom-poptsov/guile-deck/releases/tag/v0.2.0
libkazv (and the Kazv Project)
tusooa reported:
libkazv is a sans-io C++ (gnu++17) client library
built upon lager. Along with it there is kazv, a kirigami/qml client, and a
forward bot between matrix and tencent qq. Talk to us on #kazv:tusooa.xyz .
Updates
In the past 2 week we ("tusooa and her longcat," we hope someday we can
remove this annotation :P):
- Added Boost.Serialization support https://lily.kazv.moe/kazv/libkazv/-/merge_requests/4
Dept of Ops π
matrix-docker-ansible-deploy
This Ansible playbook is meant to easily let you run your own Matrix homeserver.
Slavi offered:
Thanks to Aaron Raimist (Aaron), matrix-docker-ansible-deploy can now install and configure the Mjolnir moderation tool (bot).
Additional details are available in our Setting up Mjolnir documentation.
Dept of Events and Talks π£οΈ
Chemnitzer Linux Days talk
Benedict said:
For german speakers: my matrix talk from the Chemnitzer Linux Days is now online.
Dept of Interesting Projects π°οΈ
Cactus Comments π΅
AsbjΓΈrn told us:
Cactus Comments is a federated comment system for the open web built on Matrix.
Web Client v0.7.0 released! This one includes two new configuration options.
New configuration option:
loginEnabled
changes the login button to be a matrix.to link, if set to false (default is true).New configuration option:
guestPostingEnabled
requires users to log in using their Matrix account, if set to false (default is true).Added HACKING.md, a guide to getting started with hacking on the client.
/ipns/latest.cactus.chat is updated to point to the latest release, so sites linking there should already be using the new version.
Come play with the demo: https://cactus.chat/demo
Join our Matrix room: #cactus:cactus.chat
Also, watch Matrix Live! If you've already done so, watch it again.
Matrix in the News π°
Famedly-folk on LinuxLounge
Nico (@deepbluev7:neko.dev) told us:
If anyone understands German and listens to podcasts, Krille Fear and I will be on the LinuxLounge on the 25th of April: https://social.tchncs.de/@theradiocc/106025736391026211
In fact there are dozens of people who understand German, and surely some subset of these listen to podcasts. With these conditions accepted, the LinuxLounge appearance will go ahead.
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 | envs.net | 549 |
2 | fosil.eu | 579.5 |
3 | maunium.net | 614.5 |
4 | xethos.net | 713 |
5 | franssen.xyz | 758 |
6 | privacytools.io | 798 |
7 | covert.tel | 968 |
8 | finallycoffee.eu | 1303.5 |
9 | eqlipsis.io | 1347 |
10 | dodsorf.as | 1351 |
#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 | dendrite.grin.hu | 302 |
2 | dendrite01.fiksel.info | 1011 |
3 | testuser-matrix.duckdns.org | 2630 |
That's all I know π
See you next week, and be sure to stop by #twim:matrix.org with your updates!
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.
Support us