Category – This Week in Matrix
154 posts tagged with "This Week in Matrix" (See all categories)

This Week in Matrix 2021-04-16

2021-04-16 — This Week in Matrix — Ben Parsons

Matrix Live 🎙

This week we hosted Open Tech Will Save Us #12!

  • Creating a SAFE SUPPORT CHAT on the Matrix API
    • Kim Allen of PRIMAL GLOW Communications will be joined by Safe Support Chat Project Team Members, Sharon Kennedy of Nomadic Labs and Brent Edwards to talk about why and how this online crisis support tool for sexual assault centres was built on Matrix, using a custom implementation of Element and other Open Source resources.
  • Open Web Docs: web documentation as critical infrastructure
    • Will Bamberg is a technical writer who works on MDN Web Docs, originally for Mozilla and now for Open Web Docs. He's especially interested in ways we can make documentation more engaging and accessible. Open Web Docs is a collective of people and organizations that exists to support web documentation.
  • Hydrogen Deep Dive
    • Bruno from Element will do a deep dive into the architecture of Hydrogen, the upcoming next-generation Matrix web-client. What are the guiding principles, what makes it fast, what is different about it, and how could it also benefit Element Web?

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:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we talked a little bit about MSC2970 (path requirements for push gateways) and left some thoughts on the MSC. We also merged a few spec clarification/fixup PRs as they trickle in following the spec unfreeze last week.

2021-04-16-t2TNS-stacked_area_chart.png

Dept of Servers 🏢

Conduit

Conduit is a Matrix homeserver written in Rust https://conduit.rs

timokoesters offered:

A lot of progress is happening currently! Federation is becoming more and more stable and missing features are being implemented:

  • Feature: /make_join, /send_join and /query/directory

  • Feature: Incoming invites over federation

  • Feature: Correct and more efficient message count calculation

  • Improvement: Check event signatures on join

  • Improvement: Fetch signing keys in parallel when joining

  • Improvement: Relaxed verification code to allow joining partially broken rooms

  • Fix: Lost forward extremitites

  • Fix: "Malformed pushrule" errors

  • Fix: Mistakes in DEPLOY.md documentation

  • Fix: Alias parsing

  • Fix: Optimize /send calculations

  • Fix: State resolution bugs

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

In addition to Homeservers, the Matrix spec also describes Push Gateways and Identity Services, which augment our ability to send notifications or discover users via identifiers like email addresses.

On the Matrix.org Foundation side, we maintain production-grade reference implementations of these services:

  • Synapse, a Homeserver

  • Sygnal, a Push Gateway

  • Sydent, an Identity Service

We recently became aware of a few security and denial of service concerns in Sydent. Yesterday, we released Sydent 2.3.0 with fixes for those issues. It's extremely uncommon to self-host Sydent, but we wanted to highlight our work there all the same.

We've also finally settled on quarterly objectives for the Synapse team at Element, and the first thing we're focusing on is gaining a better understanding of how Synapse uses memory. Specifically, we'd like to drive down the peak RAM associated with joining large, complex rooms like Matrix HQ. We've already landed a small speed up to that effect, but expect more specific metrics in the future.

Synapse 1.32 is due out early next week, and we look forward to seeing you then.

Homeserver Deployment 📥️

YunoHost

Mamie said:

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.31.0 (1.31.0 available in branch testing)

If you had a problem durng the upgrade to 1.28.0, there is a fix here to restore the backup : https://github.com/YunoHost-Apps/synapse_ynh/issues/246 Element Web integration had been updated to 1.7.24 (1.7.25 available in branch testing)

Dept of Bridges 🌉

So much bridge news this week!

Old Gitter bridge end of life (2021-04-21)

Eric Eastwood said:

Next week on Wednesday (2021-04-21), the old Gitter bridge (identified as @gitterbot:matrix.org) will be shut down and any plumbed rooms (bridged connections) remaining will no longer bridge. To replace this, we've already migrated all of the portal rooms and many of the plumbed rooms in preparation so most users will not need to take any further actions. The remaining rooms with the old Gitter bridge are unfortunately not possible to migrate and for those communities a clean break will be needed. The new native Gitter bridge is here to replace this!

You can read most of the same information and details if you still need to plumb for your existing room in the blog post, https://matrix.org/blog/2021/04/15/old-gitter-bridge-end-of-life-2021-04-21-to-be-replaced-with-native-bridge

Element now has a Microsoft Teams bridge

Half-Shot told us:

Hey hey folks, something I can finally talk about in the open is that Element now has a Teams bridge! After months of being isolated on a desert island being fed nothing but rice crackers and diet pepsi, I can talk about our newest bridge. It's fairly feature packed with support for all the usual formatting options, plus Jitsi widget bridging (as links) and full puppeting including DMs. Matthew even went and nattered to The Register about it. So you heard it here first, no network is truly safe from the open federation and we hope to welcome teams users into the Matrix. The bridge is currently a closed source offering under the EMS banner for now.

You can read about it in https://element.io/blog/ems-launches-bridging-for-microsoft-teams/

David Mehren added:

Heise wrote an article about the Teams bridge: https://www.heise.de/news/Fuer-MS-Teams-Verweigerer-Element-startet-neuen-Bridging-Dienst-6017946.html

Half-Shot also added:

Incidentally, would you like access to the teams code to work on lots of bridges and make things happen? Please reach out!

matrix-github (new name pending?)

Half-Shot reported:

Also, some more news. I've started making improvements to matrix-github as it continues to serve as the primary way for me to get notifications from GitHub. The latest improvements are that you can now dynamically create and assign filters to notifications coming to the bridge. This means you can name filters and turn them on and off as required (i.e. don't bug me about matrix-org on weekends please). The v0.1.0 release is out.

Have questions/ideas/mad-experiments, come chat to us in Matrix Github Bridge.

I've been using this for months now, and can confirm it works great!

Matrix PSTN Bridge

KB1RD reported:

It's a simple puppetting bridge to the public telephone network via providers like Twilio. It's designed to be modular and support several different providers (though it only supports Twilio ATM). Once more providers are added, it will be possible to seamlessly migrate your phone number between multiple providers and save conversation history. Chats are created by starting a DM with the control bot (currently hardcoded at @_pstn_:myserver.org) and running the dial command. Multiple users can join a room with the control bot and are all given access to puppet the bridge.

Features include:

  • Connect to Twilio & get current account balance

  • Send SMS texts to phone numbers and receive texts back

  • Intelligent dialing looks up phone numbers based on the one you're using

  • Give SMS users "pet names" via the name command

  • Allow multiple users to puppet a bridge & allow the bridging of bots

Some planned features could include: (I'm not committing to any of these ;D)

  • Displaying bridge info in Element settings

  • Dialer widget

  • Sending MMS (pictures, video, voice, etc.)

  • Getting extended information about users. Services like Twilio offer carrier lookups and that sort of thing. Could be useful to help weed out spam.

  • Phone calls -- This is very hard

    • Answering machine
  • Faxing. Why not, I guess?

  • Pay-as-you-go managed phone number service

    • Start a chat with the bridge bot and buy a phone number via Matrix

    • Payment security is an issue here ;)

  • Puppetting WhatsApp business or Facebook Messenger. Companies like Twilio offer connections to proprietary messengers like these.

It's not ready for production use, though. It's still stuck on a SQLite DB and has a few usability issues.

Check it out on GitHub and join #matrix-pstn-bridge:kb1rd.net.

2021-04-16-clFJc-ima_4289d95.jpeg

Dept of Clients 📱

Element Clients

Updates from the teams:

Delight

  • On Spaces, we’ve been doing first implementations of MSC3083 (Restricting room membership based on space membership) on Android & Synapse.
  • Meanwhile, we’re continuing effort on iOS on adding SDK support for Spaces, and also refactoring room navigation to soon implement the Spaces UI.

VoIP

  • Lots of design in progress for improving group calls, and work ongoing to implement those designs on iOS.

Web

  • Element Web 1.7.25 released

    • Added reset button in settings to assist with search index issues
    • Added optional warning before exiting desktop app
    • Improved VoIP call media error handling
  • On develop

    • Enabled sharing room keys on invite
    • Added persistence of unsent messages across app reloads
    • Fixed replies for IRC layout

iOS

Android

  • Element Android has been released 3 times this week, first version was 1.1.4, then 2 corrective releases, 1.1.5 and 1.1.6 to fix crashes… The main changelog is https://github.com/vector-im/element-android/releases/tag/v1.1.4 . F-Droid store will only get version 1.1.6, please be patient.
  • We are currently working on the account creation and registration flows and made some experiments on it.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte announced:

It's been almost two months since we shared an update 😱

Lots of things have happened in that time:

In addition to all the PRs, we are taking part in GSoC this year again! Proposals have been written, reviewed, updated, finalized, submitted and now there's some quiet time until the student projects are announced on May 17th.

Dept of Interesting Projects 🛰️

Search Peertube via Matrix

Cos announced:

I wrote a new tool for fediverse: search Peertube via Matrix. It uses Sepia Search API to search on all participating public Peertube instances. You can also select any single instance. It's implemented as a module for Hemppa the bot - see docs here: https://github.com/vranki/hemppa#peertube-search #peertube #matrix

See the announcement: https://fosstodon.org/web/statuses/106048573207784409

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.

RankHostnameMedian MS
1envs.net490
2fosil.eu505
3maescool.be579
4maunium.net592
5nordgedanken.dev669
6fachschaften.org679
7matrix.org717
8buyvm.net919
9boiler.social953
10signal-eleven.com991

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

RankHostnameMedian MS
1dendrite.foxomy.com587.5
2dendrite01.fiksel.info903

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-04-09

2021-04-09 — This Week in Matrix — Ben Parsons

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:

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!

2021-04-09-hGhUh-stacked_area_chart.png

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 or xenial or stretch 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 noticable 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:

Doing:

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

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)

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.

2021-04-09-jvbbb-image.png

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

  1. 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.

RankHostnameMedian MS
1envs.net549
2fosil.eu579.5
3maunium.net614.5
4xethos.net713
5franssen.xyz758
6privacytools.io798
7covert.tel968
8finallycoffee.eu1303.5
9eqlipsis.io1347
10dodsorf.as1351

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

RankHostnameMedian MS
1dendrite.grin.hu302
2dendrite01.fiksel.info1011
3testuser-matrix.duckdns.org2630

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-04-01

2021-04-01 — This Week in Matrix — Ben Parsons

Introduction 🃏

Just keep the date in mind as you read these updates from the community. 😉

Matrix Live 🎙

Dept of Spec 📜

kegan reported:

MSC3079: Low bandwidth CS API is now up, feedback is welcome! Low bandwidth will increase mobile battery life, allow Matrix to be used over low bitrate links (1-5Kbps) and even allow push notifications to be done natively over Matrix (as /sync is now efficient)! We'll be experimenting with this some more and hopefully even enable it on some servers like dendrite.matrix.org in the near future.

anoa told us:

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:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

The Spec Core Team had another retro this week. We're happy with the increased amount of MSCs flowing through the pipeline, but there's still a huge amount of work to get through, mainly revolving around prioritisation.

Don't let that keep you from sending in your well-formed MSCs however - the more the merrier!

New Spec Platform

The unstable version of the spec now lives entirely on https://spec.matrix.org! Redirects have been put in place from the old spec to the new for unstable. Stable versions will be moved over in time (and the redirects will hopefully better preserve url paths!).

We're also planning to unfreeze the spec shortly so that spec PRs can start flowing again. We now just need to clear up the old buildtools from the matrix-doc.

2021-04-01-tN1MO-stacked_area_chart.png

Dept of Servers 🏢

Synapse

callahad offered:

🚪Knock, knock? MSC2403: Add "knock" feature was merged! Now we have a stable target to aim at for implementing knocking support in Synapse. Knocking is part of (well, the entirety of) the forthcoming room version 7.

Not much else to report this week -- it's been a short week, and much of the team is heads down figuring out goals for Q2. With the start of the new quarter, a few Element employees are rotating their responsibilities: richvdh has wrapped up his work on social login and will be focusing more on core platform, with clokep shifting to focus on Spaces. Meanwhile, babolivier will come back into Synapse / Sygnal / Sydent land.

From all of us the Synapse team, we hope you have a great weekend and we'll see you next week!

Dept of Bridges 🌉

mautrix-whatsapp

Tulir announced:

v0.1.6 was released today. Some of the main changes since v0.1.5:

  • Improved connection reliability and auto-reconnection, including auto-resending queued messages after reconnecting.

  • Basic support for broadcast lists (WhatsApp's mass DM feature).

  • Option to re-sync chat and user metadata less aggressively to avoid WhatsApp rate limits on big accounts (if you get 599 errors, enable this).

Full changelog on GitHub: https://github.com/tulir/mautrix-whatsapp/releases/tag/v0.1.6

Dept of Clients 📱

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

Big announcement day! It's been a long time cooking in secret, but today Nheko finally got legs!

nheko1

We are happy to announce, that Nheko got aquired by Google and will now be shipping on Android!

nheko2

Google already contributed a few important improvements. All your messages are now sent in rainbow colors, because inclusivity is very important and we feel like no color should get excluded in a message. We also merged some crypto code to make indexing messages easier and help governments to protect our users.

With great new things sometimes also come sad things. As such we sadly have to announce, that Windows, macOS and Linux will now be degraded to secondary platforms. Primary development target will just be Android and Haiku. The former is the most widely used operating system nowadays and Haiku is the only actual desktop operating system. We are sure this won't lead to such a degraded experience on those platform, just because they are now effectively unmaintained.

We hope you love this day as much as we do and if you are not reading this at the day of publication, we ask you to please check the date and mark it in your calendar, so that we can celebrate next year!

If you are reading this at a later day, please consider the following changes canonical:

  • LordMZTE contributed the /rainbow command, which makes Nheko finally a client, that can be taken seriously.
  • LorenDB has been having some fun building Nheko for Android. This may actually become supported in the future, but so far they are just experiments.
  • red_sky fixed the certificate errors on macOS.
  • You can now leave rooms by using the /part or /leave command.
  • salahmak made the upload widget close, when you press the escape button
  • A few other misc fixes here and there.

That's everything and have a lovely day!

Watch The Matrix

Doug said:

Update: I’ve made the following changes to Watch The Matrix since first sharing it:

  • Reactions and Edits are shown properly.

  • Redactions now work for messages.

  • Rooms indicate if they’re unread and send a read receipt when opened.

  • Older messages can be loaded in a room.

  • Data is persisted so it’s no longer performing a huge sync on each launch! The initial sync is hopefully much lighter too.

  • Sync errors are now shown at the top of the room list.

  • A few basic localisations (aka Google Translate) have been added.

New room: #watchthe:matrix.org

Element Client Updates

From the teams:

Delight

  • Spaces
    • We’ve been iterating on our initial implementation of private spaces, including getting the first parts of restricting room membership to space membership in Synapse
    • We’re also breaking out larger MSCs into smaller ones, like this draft on space membership.

Web

  • 1.7.24 released on Monday
    • Additional VoIP call connection reliability improvements
    • Added invite option to room tile context menu
    • Improved cross-signing login flow
  • On develop
    • Added prompt before quit in desktop
    • Fixed recovery key loop at login
    • Indexing errors added to settings

iOS

Dept of Guides 🧭

Decentralisation/interoperability guides

Bram told us:

Two weeks ago, we held elections in the Netherlands and I went around the bigger political parties to ask them what concrete goals/ideas/plans they had to fight big tech companies.

And the best concrete solution I've heard, I'm not kidding, was that they're happy with the GDPR and that they want to keep that.

Knowledge of the internet is pretty dire in the EU, and I wanted to educate people a little. So I made a video explaining what a decentralized open communication network is: https://youtu.be/v5Y8zCwIxjI

Additionally, I wrote an article for people and politicians to read through, where I share my opinion on how and why the EU should encourage companies to allow for interoperability: https://noordstar.me/b/decentralize.md

Dept of Jobs 💰️

Hiring at Element

Element, the company which employs much of the Matrix core team, is growing! Element are hiring for a number of different roles, 14 of which are currently listed and spec'd.

However, also note what's written at the end of the page:

Can’t find the right role? Feel free to reach out to Mischa (@mischawalmsley:matrix.org) via https://app.element.io or email your resume to [email protected] to be considered for new positions in the future.

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.

RankHostnameMedian MS
1envs.net376
2matrix.dani.icu426
3hmko.net434
4maescool.be484
53r.rs684.5
6thomcat.rocks888
7matrix.sp-codes.de947
8maunium.net1284
9roeckx.be1611
10glowers.club1896

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

RankHostnameMedian MS
1dendrite01.fiksel.info813

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-03-26

2021-03-26 — This Week in Matrix — Brendan Abolivier

Hey everyone!

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 📜

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:

New MSCs:

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.

2021-03-26-idw4I-stacked_area_chart.png

Dept of Servers 🏢

Synapse

callahad told us:

We're proud to announce that Synapse 1.30.0 was released on Monday.

(...and 1.30.1, today, in response to yesterday's OpenSSL advisories)

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_ids endpoint 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:

2021-03-26-stateids-again.png

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

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

TravisR announced:

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 📥️

Kubernetes

Ananace said:

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/synapse image 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

matrix-docker-ansible-deploy

This Ansible playbook is meant to easily let you run your own Matrix homeserver.

Slavi told us:

matrix-docker-ansible-deploy can now install the Sygnal push gateway.

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

Fair announced:

matrix-puppeteer-line: A bridge for LINE messenger based on running LINE's Chrome extension in Puppeteer.

Updates:

  • User/chatroom avatars

  • When logging in with an incorrect email/password, the bot will tell you.

TODOs: Everything I mentioned last week, except for avatars 🙂

Discussion: #matrix-puppeteer-line:miscworks.net

Gitter

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.

2021-03-26-DyR7j-8BB7jFw.gif

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 said:

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

2021-03-26-E06e8-android-notify-screenshot.png

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

Element Clients

Updates from the teams:

Delight

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

VoIP

  • Not too much news this week, but look out for another connectivity fix in next week’s element web release.

Web

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

iOS

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

tusooa offered:

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

  1. Recorded state events in timeline. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/2

  2. Added support for streaming download. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/3

Ruby

Ananace offered:

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.

Guile-Deck

a_v_p said:

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

uhoreg offered:

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

Asbjørn offered:

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 💭

nikgraf reported:

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!

Website: https://www.serenity.re/en/notes

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 🏓

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.

RankHostnameMedian MS
1envs.net410
2maescool.be533
3fosil.eu674.5
4fluse.duckdns.org685.5
5matrix.vgorcum.com743.5
6ctrl-c.liu.se1237
7maunium.net1284
8elcyb.org1287.5
9roeckx.be1341
10shortestpath.dev1427

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

RankHostnameMedian MS
1dendrite.neilalexander.dev1251.5

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-03-19

2021-03-19 — This Week in Matrix — Ben Parsons

Matrix Live 🎙

Dept of Status of Matrix 🌡️

Conduit accepted by Prototype Fund

Conduit is a Matrix homeserver written in Rust https://conduit.rs

timokoesters offered:

Hello everyone! I'm excited to announce that Conduit has been accepted by Prototype Fund and will be funded by the Federal Ministry of Education and Research over the next 6 months: https://prototypefund.de/project/conduit/

The focus lies on federation support and overall improvement and stability, maybe we will even land version 1.0 at the end.

I am surprised how Conduit went from a small hobby project to a very promising Matrix server in just a year. Thank you all for accompanying me on this journey, I really appreciate it.

Now what did we actually do in the last two weeks?

  • Query signing keys through other servers

  • Many state resolution updates

    • Implement /get_missing_events

    • Implement /state_ids

    • Many bugfixes

  • Push notifications on mobile

  • Fix joining via alias with appservices

  • Enable zstd for database compression (3.3GB -> 1.6GB on old db!)

  • Rework state storage to be much more optimized (store a few bytes instead of long strings)

  • Send proper HOST headers in federation requests (thanks Gabriel!)

Conduit is beginning to run fairly well on the state resolution branch, we will probably merge it after fixing the last few bugs.

This is really excellent news! Congratulations to Timo on this achievement!

Linux Plumbers Conference Matrix / BBB RFQ

David Mehren reported:

The Linux Foundation wants to use BigBlueButton and Matrix for the Linux Plumbers Conference in 2021 and is looking for developers to implement various improvements to BBB and to integrate Matrix as the in-meeting chat.

https://www.linuxplumbersconf.org/blog/2021/index.php/2021/03/16/rfq-sw-development-linux-plumbers-conference-2021/

Dept of Spec 📜

Spec

anoa announced:

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:

New MSCs:

Spec Core Team

We're still working to unfreeze the spec, but in the meantime have been working on MSC2516 (voice messages) and MSC1772 (spaces) plus the merged and in FCP MSCs you see above. ⬆️

2021-03-19-gB-lC-stacked_area_chart.png

Dept of Servers 🏢

matrix-media-repo

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

TravisR reported:

v1.2.5 is out now with several bug fixes and other improvements. The most notable things being:

  • Optional support for Sentry (error reporting). This is the same error reporting structure that Synapse uses, so it should fit right in 🙂

  • Several oEmbed URL previews have been fixed, making them useful again. Rejoice once again with a preview of Tweets, Giphys, and other rich content.

  • Fixed a bug where after uploading media to a datastore the media repo would then download it again before returning it. This made remote media downloads inefficient (it'd download from the remote server, upload to S3, then download from S3, then return it to the user), sorry.

  • Sometimes a wobbly database could cause some issues with future requests. While I recommend a not-wobbly database, the media repo should be more resilient to this sort of problem now.

As always, if you have bugs or encounter problems with setup then please pop by #media-repo:t2bot.io

Synapse

callahad told us:

As I mentioned last week, we've been focusing on nailing down some inefficiencies in federation performance. Well, Synapse 1.30.0rc1 is out, and I'm very excited to share one result of that work:

2021-03-19-vEb-4-synapse-1.30rc1-state_ids-cpu.png

If you look closely, you'll note an order of magnitude improvement in our handling of the /_matrix/federation/v1/state_ids/{roomId} endpoint. On matrix.org, we've seen that endpoint go from averaging a few seconds of CPU time to well under 100ms. Database usage is similarly reduced.

This improvement by @clokep builds on the chain cover index that @erikjohnston implemented in Synapse 1.26.0 to speed up the calculation of auth chain differences during state resolution.

Synapse 1.30 will be released early next week.

We also shipped Sygnal 0.9.0 today, which has a few minor bug fixes as well an initial prototype of Web Push support, per the Hydrogen update in last week's TWiM.

Dept of Bridges 🌉

matrix-puppeteer-line

Fair offered:

matrix-puppeteer-line: A bridge for LINE messenger based on running LINE's Chrome extension in Puppeteer.

Updates:

TODOs:

  • User/chat avatars

  • Emoji/sticker support (barring copyright issues??)

  • LINE->Matrix read receipts

  • Not requiring the Puppeteer-controlled browser to be visible in order to run (Puppeteer requires it when loading extensions, but will look for a workaround)

  • Double-puppeting with login support

  • Bugfixes, inevitably 🙂

Discussion: #matrix-puppeteer-line:miscworks.net

Dept of Clients 📱

Nio, Mio, wow-io!

Nio is a client written with SwiftUI

helge5 announced:

I ported the native https://nio.chat iPhone client to macOS Big Sur, and call that "Mio". Nio and Mio share the same SwiftUI code base, with the Mio changes being merged into the Nio upstream repository. Like Nio, Mio is still in very early stages but looks quite nice already.

A preliminary build can be downloaded over here: https://zeezide.de/download/Mio.app-0.2.0-2.zip, and I posted a screenshot in the Nio channel: https://matrix-client.matrix.org/_matrix/media/r0/download/matrix.org/RpPiQFJytjXboshcUnqnGwrd.

2021-03-19-qvIJN-Screenshot2021-03-07at16.47.56.png

Some time ago we featured Nio running on an M1 Mac via Catalyst, this is being compiled natively for Mac.

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:

Thanks to LorenDB, notifications now omit the reply fallback and show that that message is a reply instead. They also should not break on encrypted rooms anymore (they show that the message was encrypted for now, but they will be decrypted in the future, if that is enabled in the settings). Emotes should now also show up in them properly and if someone sends an unencrypted image, this should show up with a preview in the notification as well.

2021-03-19-B7XCf-clipboard.png

Jedi18 ported the room switcher, which can be accessed with Ctrl+K to Qml, which fixes a lot of readability issues and should improve how the rooms get filtered.

2021-03-19-BGKIu-clipboard.png

Jedi18 also fixed a few issues with playing video on Windows. Salahmak made sending media easier by allowing you to send the image by just pressing enter.

Nheko now also stores images outside of the database, which should decrease database size in the future and make it easier to clean out that part of the cache. We also now use native menus where possible and fixed a few crypto and sync issues as well as formatting of mentions sent by Nheko. Nheko should now not randomely fail to /sync anymore, if your network connection dropped out in between. Also the flatpak should now be able to use your webcam in more cases, but this means we also use less sandboxing now. If you don't like that, you can disable access to all devices, but that sadly also includes the webcam.

Quaternion

kitsune reported:

Yet another beta-approximation of Quaternion at version 0.0.95 arrived, with the main change being fonts finally unified throughout the application. Translators are stilll very much welcome (French is almost there to be marked as "sufficiently complete", e.g.). Expect 0.0.95 release in the nearest weeks.

Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/

Bruno told us:

Released 0.1.39 with:

  • Fix for always retrying decryption after fetching key backups

And work on progress:

  • Work is progressing on push notifications, along with the Sygnal webpush implementation. An initial version should land early next week.

  • A community member stepped forward and volunteered on adding SSO support 🎉

  • Another community member fixed the room header disappearing on iOS when showing the keyboard, this should land soon 🎉

  • Fixed updates sometimes taking seconds or even minutes to apply

Element Clients

Updates from the teams:

Delight

  • Social Login
    • MSC 2858 (multiple sso providers) has been pushed to spec
  • Spaces
    • Web is trailblazing private spaces, while Android is catching up on support for public spaces
    • We’ve almost finished the first implementation of the Space Summary API in Synapse, so will start testing public space user flows next week!

VoIP

  • Another connectivity fix on web
  • Fixed jitsi sometimes getting usernames instead of display names on web

Web

Element Web 1.7.23 is now available, including:

  • Refreshed UI for file uploads and sent messages
  • Improved VoIP call connection reliability
  • Added Edge to the set of supported browsers
  • Added send message button to the composer

...along with many smaller fixes.

iOS

  • The 1.2.6 release in on the App Store since Monday
  • Trust shields have been removed from rooms list for performance
  • The crypto module has received several performance improvements
  • Several memory leaks have been fixed

Dept of SDKs and Frameworks 🧰

Polyjuice Client 🧙

uhoreg said:

Polyjuice Client 0.4.0 has been released. This release features support for more endpoints, mostly contributed by two new contributors, multi prise and Arjan Sherpenisse. This release also has some backward-incompatible changes. See the changelog for more information.

libQuotient

kitsune told us:

Aligned with the Quaternion beta, stability-focused libQuotient 0.6.6 has been released - packagers already using libQuotient 0.6.x branch are strongly encouraged to update to this version.

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 Zir0h, matrix-docker-ansible-deploy can now install and configure the Go-NEB bot.

See our Setting up Go-NEB documentation to get started.

Final Thoughts 💭

Did you get involved with FOSDEM this year? If you hung out on Matrix that weekend and had a great time, then maybe you bought a t-shirt? Oleg did, and he shared this photo!

2021-03-19-wS0or-16161468000490.jpg

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.

RankHostnameMedian MS
1envs.net356
2maunium.net386
3neko.dev469.5
4matrix.sp-codes.de654
5maescool.be666.5
6thomcat.rocks669
7fosil.eu674
8helsinki-systems.de702
9halogen.city727
10backhaus.nrw898

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-03-12

2021-03-12 — This Week in Matrix — Ben Parsons

Matrix Live 🎙

Dept of Spec 📜

Spec

anoa told us:

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:

New MSCs:

Random fact: as of last week, we've now hit 400+ MSCs in total! That's a lot of words!

Spec Core Team

Now that the new spec platform is out, we're looking to unfreeze the spec so that spec PRs can once again start landing. That process has been written up in an issue. Once again thanks to everyone that's given https://spec.matrix.org a try and reported their feedback. 🙂

Work this week from the SCT has focused mainly around Multiple SSO Identity Providers and Spaces (+ Spaces Summaries).

2021-03-12-Bwf22-stacked_area_chart.png

Dept of GSoC 🎓️

Google Summer of Code

Matrix has been accepted, once again, as a GSOC mentoring organisation! See us on Google's page, check out the list of project ideas (more to come!) and join GSOC Matrix to chat.

Dept of Servers 🏢

Synapse

callahad said:

(💭 If this gets published every Friday evening, shouldn't it be Last Week in Matrix?)

On Monday we released Synapse 1.29.0! The most visible highlights are new configuration settings which can limit disclosure of user profile information and optionally rank local users higher when searching the user directory. However, we've also made quite a few tweaks under the hood, including some initial improvements to presence performance and allowing the media repository to regenerate missing thumbnails on demand.

The next release of Synapse will focus on mitigating several known inefficiencies and problematic behaviors around federation performance; I look forward to telling you more about that when it reaches release.

We're also excited to announce that we've secured funding to participate in the next round of Outreachy internships. Outreachy encourages people from underrepresented or nontraditional backgrounds to participate in F/OSS. We have funding for one intern and are proposing two possible projects focused on either modernizing Sygnal/Sydent, or extending Complement so it can replace more of SyTest.

While applications for this round have closed, we also expect to also participate in the end-of-year internship round, applications for which will open in September.

Homeserver Deployment 📥️

Kubernetes

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

Ananace said:

More updates for the chart gods! I've pushed new versions of my element-web, matrix-synapse, and matrix-media-repo charts. And a new image tag (1.29.0) for the matrix-synapse image I'm still building, still haven't quite found the time to move everything over from it and into the chart proper.

The charts are still available at https://gitlab.com/ananace/charts, and the #matrix-on-kubernetes:fiksel.info room is still a great place to drop in for questions or general thoughts/comments.

Dept of Clients 📱

🌵 Cactus Comments

Asbjørn told us:

Web Client v0.5.0 released!

A small-ish release, adds support for decoding and rendering some more m.room.message msgtypes.

The only remaining unsupported msgtype is m.location, hopefully we'll figure out something for that soon.

  • Support m.image messages

  • Support m.audio messages

  • Support m.file messages

  • Support m.video messages

  • Stricter MXC url parsing

/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

Join our Matrix room: #cactus:cactus.chat

Element Clients

Updates provided by the teams.

Delight

  • Spaces
    • On Web, we’ve merged in a bunch of WIP work on develop.element.io
      • New concept of suggested rooms to help new users in a space discover important rooms - requires compatible homeserver
      • New experience for previewing spaces before you join them
      • Warning: The feature is in alpha, any spaces created at this time will need to be re-created later
    • On Synapse, we’ve started implementing the Space summary API which is teasing out various details in various MSCs
    • On Android, we’re:
      • Space first cut on a branch behind lab flag; create Space / switch Space / join by link
      • In flight | basic hierarchy support in SDK
    • iOS started SDK foundation work for Spaces
      • SDK: Support room type (MSC1840)
      • In flight | Space creation SDK

Web

  • Issue labels renamed to align with new Synapse style
  • Element Web 1.7.23-rc.1 on staging
    • Refreshed UI for file uploads and sent messages
    • Improved VoIP call connection reliability
    • Added Edge to the set of supported browsers
    • Added send message button to the composer
  • 1.7.23 will be released next Monday (Mar 15)

iOS

  • We released 1.2.6 yesterday. The app is currently in review for the App Store and TestFlight. This release contains a new display for the progress of sending a message or media, a better UX for managing retry and bug fixes.

Android

  • We are working to improve the performance of the application. We are making progress on the local echo display, the initial sync time, the timeline display and scroll, etc. We have prepared a release candidate 1.1.1, but only 1.1.2 will be pushed to production.

Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/

Bruno reported:

  • released 0.1.37 with some more bug fixes; catch-up sync should now be faster ; and adds support for video messages.

  • started working on push notifications & adding web push support to Sygnal. Got a basic proof of concept working, see screenshot.

2021-03-12-Mb1e2-webpush-android-lockscreen.png

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

This was the week of internal changes. If you are building from source, the following changes may affect you:

  • After some distros now ship a newer fork of lmdbxx under the lmdbxx package name, we migrated to that version. While we wanted to do that for some time, if you have been using your distro package and builds now fail for you, you may want to use the bundled version of lmdbxx. Similarly, if there are new database issues, that you experience, please report them!

  • Similarly, we dropped our dependency on tweeny, since we only used that in one location and the same thing can be done natively, so you can remove that from your package builds.

  • Furthermore we are now stricter with how we validate tls certificates and bumped the minimum version to tls 1.2. If that causes issues for you, please report them as well. There is a known issue, that if you are using the bundled OpenSSL, it may not load your system certificate chain, so you will get TLS errors. We are still trying to find a proper solution for that.

  • We also disabled the epoll backend on all ARM builds instead of just our flatpak, since that one just crashes on ARM and until that is fixed in the library we are using, this would lead to a much worse experience on those platforms (and we didn't notice that before, because we disabled it a long time ago in our flatpak while debugging a related issue).

Apart from that, we did also have some cool stuff happening. One thing I want to especially highlight is the push work from tilde. It is one direction that I never thought of Nheko moving in and I think UnifiedPush is a really cool project!

We also switched from inline buttons to a hover overlay for message actions. Please try it out and give us feedback, if that is an improvement or makes the experience worse! It does at least make it clearer, which button belongs to which message, make the interface less messy and scrolling faster.

We also try to suppress the notifications caused by @⁠room mentions, when you reply to such a mention now by inserting a zero width joiner. This seems to work fine for all clients and servers but Element Web... So at least for everyone not using Element Web, if someone replies to an @⁠room as a mod on Nheko, they should not get a notification anymore. (Full disclosure, that was an idea from the FluffyChat team!)

2021-03-12-STO-8-Screenshot_20210312_184249.png

See more about Unified Push below.

Dept of SDKs and Frameworks 🧰

libkazv (and the Kazv Project)

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

tusooa announced:

In the past 1 week we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Added a Dockerfile to build libkazv and its deps.

There is also a pre-built docker image here. You can download it using docker image pull reg.lily.kazv.moe/kazv/libkazv/libkazv:servant.

  1. Added method to deal with sync gaps.

See a video in action here: https://tusooa.xyz/_matrix/media/r0/download/tusooa.xyz/VHsPuGSHNDMnlASQoGmdHnBf

Dept of Ops 🛠

Ansible role for running Mautrix-Telegram with Docker

jaywink told us:

Made a new Ansible role for running Mautrix-Telegram with Docker: https://git.feneas.org/jaywink/ansible-mautrix-telegram

Dept of Interesting Projects 🛰️

UnifiedPush, what is it, what happened this week, and why should you care?

vurpo announced:

UnifiedPush is an interface that apps can use to receive push notifications without caring about which service transported those push notifications to the device, and it's an interface that you can implement to deliver push notifications to people's apps, if you've come up with a great new way to transport push notifications from the internet to a device (did someone say push over Matrix?).

UnifiedPush has been specified for Android with some apps implementing it for a few months now, but now I've been working on specifying and implementing it for D-Bus platforms. (This is mostly intended for mobile Linux OSes such as postmarketOS, but any platform with D-Bus will work!) This means I've implemented a Gotify-based distributor that runs on Linux, and also implemented UnifiedPush in nheko to give it the capability to receive push notifications. I've yet to iron out all the details, so push in nheko isn't exactly ready to be released yet, but I can demonstrate with a video!

To you, Matrix client developers who desperately want to receive push notifications and get your app woken up while it is not running (on Linux or Android), this means that you should simply implement UnifiedPush in your app to receive pushes from the user's choice of distributor. (note: D-Bus API is not yet in the spec, but under discussion) How? See https://unifiedpush.org and join #unifiedpush:matrix.org to discuss it further!

Keyoxide Project adds support for Matrix

haywo told us:

The keyoxide project added support for matrix: https://yarmo.eu/post/keyoxide-project-update-3#proving-matrix-identity-with%E2%80%A6

Dept of Guides 🧭

Discord bridging guide

Cos shared a nice guide to configuring mx-puppet-discord: https://boilingsteam.com/how-to-bridge-discord-in-matrix/.

Soru, the author of mx-puppet-discord, wanted to add some clarifications for the article:

The section on having to set up your .well-known is slightly incorrect: mx-puppet-discord does normal C-S API discovery, so if your C-S API is not on any subdomain it will already just work, .well-known is just needed in case that differs. Additionally, you can set up a manual mapping in your config.yaml (also helpful if you need http for e.g. local development). This is totally unrelated to setmatrixtoken.

While the guide mentions bridges, it does not mention setispublic <puppetId> 1/0 to make the bridge public / private. If you want your relay to just be usable by anyone, you should do setispublic <puppetId> 1, as then the rooms it creates aren't invite-only.

If you have any other questions or need help, please visit #mx-puppet-bridge:sorunome.de , thank you!

Final Thoughts 💭

Brendan Abolivier shared this weeks ago, and we missed it. But, it's really nice content that doesn't go stale.

I did a talk at FOSDEM 2021 two weeks ago titled "Mental health and free software" in which I talk about my experience dealing with mental health issues while working as a full-time Matrix developer and give leads to address some of these issues. I've uploaded the recording of the talk at https://tube.abolivier.bzh/videos/watch/c28a3957-25cb-4519-ad3d-9f8812f88ee2 🙂

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.

RankHostnameMedian MS
1envs.net346
2diem25.tech543
3fluse.duckdns.org579
4matrix.sp-codes.de786
5rollyourown.xyz1282
6flobob.ovh1455
7thomcat.rocks1718
8nobelium.no2143
9utzutzutz.net3095
10mailstation.de3107.5

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

NextPage 2