Matrix Live 🎙
This week my guest is Greg who's been organising the Ansible Contributor Summit on Matrix, and who is happy about it!
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://spec.matrix.org/unstable/proposals.
MSCs with proposed Final Comment Period:
- No MSCs entered proposed FCP state this week.
MSCs in Final Comment Period:
- No MSCs were merged this week.
Matrix v1.1 was released! Read the blog post here if you missed it; it summarises everything that's new in v1.1, as well as plans for the future. Now that the new spec build pipeline and release infrastructure is in place, we're aiming for roughly quarterly releases going forward. Thank you all for being so patient in the meantime!
Random Spec of the Week
The random spec of the week is... MSC1767: Extensible event types & fallback in Matrix (v2) (yes it really chose that).
Extensible events is something that has been a long time coming in Matrix. It unlocks so much potential, and is even currently being built on (see MSC3381 (polls)). Definitely one of the next big ticket items to tackle in the medium term.
Dept of Servers 🏢
Synapse is the reference homeserver for Matrix
Dan (aka callahad) is away this week, so let me report on his behalf.
We cut a release candidate for Synapse (1.47.0rc2, but see the changelog for rc1). It exposes new functionality for pluggable modules and new endpoints to the Admin API. We've fixed a bunch of long-standing bugs and continued to drive forward efforts to improve documentation and code quality. Thank you to all of our contributors!
With future releases in mind, we've been continuing work to support threading and E2EE application services. We've also been prototyping a new Admin API to remove users from all rooms belonging to a certain space.
Elsewhere, we've been doubling down on our effort to improve reliability and maintainability of our services as a whole. Sydent and Sygnal have a number of PRs in flight for both, aimed at improving type coverage and driving down error noise in the logs. We've drafted a blog post to summarise the process of type annotating mypy (keep your eyes out for that one). We also worked to make the matrix.org database more resilient, and made changes to improve the experience of rolling out upgrades to Synapse en masse.
Homeserver Deployment 📥️
Helm Chart ↗
Matrix Kubernetes applications packaged into helm charts
Another week, another update on my Helm Charts - seeing element-web bumped to 1.9.4
Dept of Bridges 🌉
Vermicularis is a script for forwarding messages from Päikky to Matrix. Päikky is a parent-teacher communication website and mobile app for daycare and pre-school. git clone https://k2c42.dy.fi/git/vermicularis.git and join #paikky:ellipsis.fi to give feedback
mijutu also tells us
Päikky was created by a group of parents who wanted to make communication with daycare staff easier. They started a company and later sold it to Abilita. Päikky is currently used in 40+ municipalities in Finland and also in some private daycare companies too.
Päikky is also used for reserving daycare times for kids.
Heisenbridge is a bouncer-style Matrix IRC bridge.
Release v1.6.0 🥳
- Make reconnect loop more robust
- Sensitive flag for MSG and NICKSERV to hide it from network room (for AUTOCMD)
- Improved STATUS for admin room and simple STATUS for network rooms
- Small fixes
Not much going on this week. Hopefully the reconnect refactor doesn't cause any breakage as it fixed multiple issues that have been around since the inception of Heisenbridge.
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
Do you love bugs as much as I do? ♥🐛♥
I guess not. For that reason bug fixing in Nheko for the next release continues. We fixed a super annoying issue, where loading keys from the online backup could make Nheko stuck in a flickering mode with no way to interact with it anymore. You can now also click anywhere on a read receipt to open someones profile instead of just their avaitar, edited messages now also show as redacted, if only the original message got redacted and don't lose the reply in encrypted rooms, if the edit was sent by a client, that is not Nheko. You also used to get logged out after registration, which should finally be resolved. There were also a bazillion translation updates! Thank you, everyone who contributed to those.
We also finally merged the prettier video player, which also fixes a video playback issue on macOS. Try it out and give us feedback on it!
We are still hunting down some last bugs, but expect the release soon now. In the meantime, I did start summarizing the changes, if you want to see what will be in the next release: https://github.com/Nheko-Reborn/nheko/blob/master/CHANGELOG.md#090----unreleased
That's all and have a great weekend!
Everything related to Element but not strictly bound to a client
- Message threading is coming to Element! If you haven’t yet, head to develop.element.io and ensure ‘Enable threading’ is turned on in Labs to test on the web.
- We’re spinning up development on iOS & Android as we speak.
- We’ll also be running the first Threads community testing session next Thursday (18th Nov) at 17:00 GMT. Come join us in #element-community-testing:matrix.org!
- Threads are backed by MSC3440.
- We also recently started implementing Polls.
- On the web/desktop, we’ve implemented poll creation and displaying them in the timeline. Next up is implementing voting.
- Mobile development started recently too, with Android slightly ahead of iOS.
- Polls are backed by MSC3381.
- As well as the community testing on Threads, we’ll also be hosting our next testing session for Android on Wednesday (17th), with the time to be confirmed. If you’d like to be involved, join us in #element-community-testing:matrix.org.
- In the background, if you’ve been paying close attention to our issue tracker, you might have noticed lots of changes to our triage & issue workflows over the past couple of months. We’re continuing to iterate on these, extending the best learnings to iOS & Android too.
- We recently started a project to improve the info architecture/layout of our apps, starting on the web first. We’re merging our first tweaks and experiments soon, so expect exciting things to be landing on develop!
- We’re continuing to implement more Space creation & management support on iOS. We’ve added in Space creation screens (implemented in SwiftUI!) and we’re polishing inviting people to Spaces.
- We’ve also been conducting user research to see what parts of the app are tripping users up, and working on fixes to various issues. Expect tweaks to land soon!
- Otherwise, we’re also merging & testing release candidates for upcoming releases, merging several branches.
- We’ve been conducting the same user research on Android, watch this space for more tweaks & improvements coming soon!
- Otherwise, we’re also fixing up some smaller issues specific to Android 12.
Cinny is a Matrix client focused on simplicity, elegance and security
- Landing page redesign
- Full UIAA implementation means now you can register an account on any hs that allow
- Configure default homeserver with options to add more than one.
- Can use http when looking for homeserver
- Enhanced invite list UX
- Added logout in loading screen
- Hide pinned space notification from home icon
- Add option to select role on roomCreation
- Added Invite/disinvite option in profile viewer
- Fix commands activating anywhere in the input
- Fix duplicate and minus notification count
- Fix links splitting across line mid-word
Find more about Cinny at https://cinny.in/ Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny Twitter: https://twitter.com/@cinnyapp
Dept of Non Clients 🎛️
The time command, but it sends the output to a Matrix room
It's time! time-to-matrix (ttm) v1.2.0.
time-like command that will send end of an arbitrary command output and some other info (like exit status) to matrix room. Useful when you need to run something in terminal and get a ping when it's done.
Since the last ttm news in TWIM new options were added:
- matrix auth with access token - useful for SSO when you don't have actual login/password pair
- skip html formatting (doubles allowed log size in message)
- post full log output to matrix (with auto-shrinker to avoid "message is too big" error)
Dept of SDKs and Frameworks 🧰
simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.
Version 2.2.0 Released!
Version 2.2.0 adds support for authentication via access_tokens. In addition to username/access_token, it is possible to authenticate using username/password and login(SSO) token.
Example usage is shown below:
""" Example Usage: random_user !echo something echo_bot something """ import simplematrixbotlib as botlib creds = botlib.Creds( homeserver="https://example.org", username="echo_bot", access_token="syt_c2...DTJ", ) bot = botlib.Bot(creds) PREFIX = '!' @bot.listener.on_message_event async def echo(room, message): match = botlib.MessageMatch(room, message, bot, PREFIX) if match.is_not_from_this_bot() and match.prefix() and match.command( "echo"): await bot.api.send_text_message(room.room_id, " ".join(arg for arg in match.args())) bot.run()
Request additional features here.
Halcyon is an easy to use matrix library inspired by discord.py
Hello again! Halcyon is a Matrix bot library created with the intention of being easy to install and use. This release brings minor non-breaking features and some bug fixes:
- change_presence() now allows you to set if you are online, idle, or away. Status message support
- Roadmap and documentation updates
- A fix for retrying on 5xx errors
- A better catch for bad server syncs
- Windows support, fixing the NotImplementedError reported by @bhuitt (Thanks!)
More info at on the project at https://github.com/WesR/Halcyon . Come by and chat with us over in https://matrix.to/#/#halcyon:blackline.xyz
Dept of Events and Talks 🗣️
Heads up for those in Berlin. You're welcome to join us Tuesday, 16th Nov at 7:00 PM chatting about Matrix development and hosting. We're going to meet in person at c-base. In compliance with the hackerspace's house rules this is a strict 2G event.
We'll talk about everyone's Matrix projects, test the P2P demo via Bluetooth in person and plan the presence of Matrix at the rC3 event happening in the c-base shortly before New Years.
If possible, join our #matrix-berlin:matrix.org room.
Dept of Interesting Projects 🛰️
"Sign in with Matrix" is a web component, which developers can use to build a web login using Matrix account
it is similar to those "Sign in with Google" and "Sign in with Facebook" buttons you see on the internet but now it's Matrix!
i invite you to take a look at the repository: https://github.com/mishushakov/signin-with-matrix and experience a demo: https://mishushakov.github.io/signin-with-matrix/
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!