matrix.org/content/blog/2020/11/2020-11-20-this-week-in-mat...

428 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "This Week in Matrix 2020-11-20"
path = "/blog/2020/11/20/this-week-in-matrix-2020-11-20"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2020-11-20-oleg.png"
+++
## Matrix Live 🎙
{{ youtube_player(video_id="7eIHkUdfR-A") }}
Something different this week as we welcomed the community to submit their own demos!
1. Oleg presents his Matrix home-automation setup, which uses Opsdroid, home-assistant and the reminder maubot.
2. Nico gives presents a selection of small-ish new features in Nheko
3. Timo gives a tour of the current state of the Conduit homeserver
4. MTRNord (Marcel) presents the time-tracking bot used by Famedly
5. Sorunome presents bootstrapping (creating cross-signing keys and online keybackup) in Fluffychat.
6. Bala from Noteworthy presents *Deploy a Matrix home server in 2 minutes with Noteworthy* (set to royalty free music!)
## Dept of *Status of Matrix* 🌡️
### Bundeswehr deployment and app goes live
[Matthew](https://matrix.to/#/@matthew:matrix.org) reported:
> The Matrix deployment for the Bundeswehr (German Armed Forces) has gone live - details (in German) at <https://messenger.bwi.de/> and <https://www.bwi.de/news-blog/news/artikel/open-source-matrix-ist-einheitlicher-messenger-standard-fuer-die-bundeswehr> and further coverage at <https://www.egovernment-computing.de/bwi-und-bundeswehr-setzen-auf-open-source-a-980033/>
[Oleg](https://matrix.to/#/@oleg:fiksel.info) (same fellow from the video - wow!) added:
> Heise (German news portal) also quoted the news: <https://www.heise.de/news/Matrix-steht-als-Messenger-fuer-Soldaten-und-zivile-Angehoerige-zur-Verfuegung-4963211.html>
[David Mehren](https://matrix.to/#/@davebloggt:kif.rocks) linked to Element's own coverage:
> <https://element.io/blog/bwmessenger-goes-live-for-bundeswehr/>
## Dept of Spec 📜
### New spec platform
[wbamberg](https://matrix.to/#/@wbamberg:matrix.org) said:
> * Demo site is at <https://adoring-einstein-5ea514.netlify.app/1.1/>
>
> * This week we have:
> * Migrated all spec documents into the new platform, updated all template calls to the new toolchain except those for versioning and changelogs.
>
> * Implemented basic support for representing spec versions in the new site, based on the [global versioning MSC](https://github.com/matrix-org/matrix-doc/pull/2844).
### Spec
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) reported:
> 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:**
>
> * [MSC1544: Key verification using QR codes](https://github.com/matrix-org/matrix-doc/pull/1544)
> * This landed right after I wrote the first draft of this entry!
>
> **New MSCs:**
>
> * [MSC2870: Protect server ACLs from redaction](https://github.com/matrix-org/matrix-doc/pull/2870)
> * [MSC2867: Marking rooms as unread](https://github.com/matrix-org/matrix-doc/pull/2867)
>
> Personally I would find that last one quite helpful!
>
> #### Spec Core Team
>
> In terms of Spec Core Team MSC focus for this week, we're sticking with the same three MSCs: [MSC2844](https://github.com/matrix-org/matrix-doc/issues/2844) (global versioning), [MSC1544](https://github.com/matrix-org/matrix-doc/issues/1544) (QR code verification) and [MSC2790](https://github.com/matrix-org/matrix-doc/issues/2790) (modal widgets). [MSC2844](https://github.com/matrix-org/matrix-doc/issues/2844) in particular I personally found quite interesting.
![2020-11-20-M8ArJ-stacked_area_chart.png](/blog/img/2020-11-20-M8ArJ-stacked_area_chart.png)
## Dept of Servers 🏢
### Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) said:
> We started out this week by releasing [Dendrite 0.3.0](https://github.com/matrix-org/dendrite/releases/tag/v0.3.0) and then ended the week with a bug-fix [Dendrite 0.3.1](https://github.com/matrix-org/dendrite/releases/tag/v0.3.1) release.
>
> I'd like to say thank you especially to our community contributors who have been adding new features and filling gaps!
>
> Changes this week include:
>
> * Memory optimisation by reference passing, significantly reducing the number of allocations and duplications in memory
>
> * A concurrency bug has been fixed in the federation API that could cause Dendrite to crash
> * A hook API has been added for experimental MSCs, with an early implementation of MSC2836
>
> * Forgetting rooms is now supported (thanks to [S7evinK](https://github.com/S7evinK))
> * The last seen timestamp and IP address are now updated automatically when calling `/sync`
>
> * The last seen timestamp and IP address are now reported in `/_matrix/client/r0/devices` (thanks to [alexkursell](https://github.com/alexkursell))
> * An optional configuration option `sync_api.real_ip_header` has been added for specifying which HTTP header contains the real client IP address (for if Dendrite is running behind a reverse HTTP proxy)
>
> * Partial implementation of `/_matrix/client/r0/admin/whois` (thanks to [DavidSpenler](https://github.com/DavidSpenler))
> * The error when registering a username with invalid characters has been corrected (thanks to [bodqhrohro](https://github.com/bodqhrohro))
>
> * The `-version` command line flag has been added (thanks to [S7evinK](https://github.com/S7evinK))
> * Backfilling should now work properly on rooms with world-readable history visibility (thanks to [MayeulC](https://github.com/MayeulC))
>
> * Some more client event fields have been marked as omit-when-empty (thanks to [S7evinK](https://github.com/S7evinK))
> * The `build.sh` script has been updated to work properly on all POSIX platforms (thanks to [felix](https://github.com/felix))
>
> Spec compliance is unchanged, although some Synapse-specific tests have been removed and some new tests have been added:
>
> * Client-server APIs: 58%, same as last week
>
> * Server-server APIs: 83%, same as last week
>
> As always, feel free to join us in [#dendrite:matrix.org](https://matrix.to/#/#dendrite:matrix.org) for general Dendrite chat or [#dendrite-dev:matrix.org](https://matrix.to/#/#dendrite-dev:matrix.org) for development discussion.
### Synapse
[callahad](https://matrix.to/#/@callahad:matrix.org) offered:
> We released Synapse 1.23.0 on Wednesday! Read all about it on the [Matrix Blog](https://matrix.org/blog/2020/11/18/synapse-1-23-0-released). Otherwise, we'd like to highlight a few developments over the past week:
>
> * We're discussing a policy for ending support for old versions of Python and PostgreSQL. If you have opinions, please [let us know on GitHub](https://github.com/matrix-org/synapse/issues/8782).
>
> * Our initial implementation of [MSC2403: Add "knock" feature](https://github.com/matrix-org/matrix-doc/pull/2403) is undergoing review, and will likely land soon.
> * We've been looking at ways to improve the efficiency of state resolution, and Erik has managed to [devise some algorithmic improvements](https://github.com/matrix-org/synapse/issues/8622#issuecomment-729620021) that yield an order of magnitude speedup for a handful of pathologic cases. We hope to have a better idea of how this might work for real world workloads soon.
>
> Lastly, we'd like to take this opportunity to remind you to **please regularly upgrade your Synapse.** Especially if you're not yet on 1.20.0, as we'll be disclosing a denial of service issue which affects older versions on Monday.
### maunium/synapse
[Tulir](https://matrix.to/#/@tulir:maunium.net) said:
> mewmew wanted to use my fork of Synapse, so I made the changes there configurable (instead of hardcoding to my user ID) and even added a readme to list the features. It might also be useful for other people who want custom room IDs and other fun stuff.
>
> The fork is available at <https://mau.dev/maunium/synapse>
## Homeserver Deployment 📥️
### Kubernetes
[Ananace](https://matrix.to/#/@ace:kittenface.studio) offered:
> And just to be on time, I just pushed an updated tag and new version of my K8s [container image](https://github.com/ananace/matrix-synapse) and [chart](https://gitlab.com/ananace/charts) for Synapse 1.23.0
### Dendrite
Dendrite is a next-generation homeserver written in Go
[TR_SLimey](https://matrix.to/#/@tr_slimey:an-atom-in.space) offered:
> I've updated the Dendrite ARM docker images to v0.3.0. They can be found at <https://hub.docker.com/r/trslimey/dendrite-monolith> & <https://hub.docker.com/r/trslimey/dendrite-polylith>
and later
> I have once again updated the Docker ARM Dendrite images for version 0.3.1.
## Dept of Bridges 🌉
### mx-puppet-bridge
[mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord) is a (double)puppeting and relay bridge for discord, based on mx-puppet-bridge
[sorunome](https://matrix.to/#/@sorunome:sorunome.de) told us:
> Support for receiving EDUs from matrix (typing, read indicators and presence) has been added. Protocol implementations can start using the new events, if they want to. Version `0.1.0` has been released along with this. You have to enable the `de.sorunome.msc2409.push_ephemeral` flag in your registration file
>
> #### mx-puppet-discord
>
> Added support for bridging typing and presence matrix->discord
### Gitter
[Eric Eastwood](https://matrix.to/#/@madlittlemods:matrix.org) offered:
> The native Gitter <-> Matrix bridge is in production! 🚀🚀 We're only testing it out in a single room but feel free to come by and send a message 😀
>
> <https://gitter.im/gitter/testing-matrix-bridge> <-> [#5faa0809d73408ce4ff3ad8e:gitter.im](https://matrix.to/#/#5faa0809d73408ce4ff3ad8e:gitter.im)
>
> We also have edits from the Gitter side flowing to Matrix and soon to support [edits from Matrix](https://gitlab.com/gitterHQ/webapp/-/merge_requests/2058). You can track our full progress from the [GitLab epic for the native Gitter <-> Matrix bridge](https://gitlab.com/groups/gitterHQ/-/epics/10).
![2020-11-20-YVtF0-editingmessages.gif](/blog/img/2020-11-20-YVtF0-editingmessages.gif)
### mx-puppet-vk
[Coma Grayce](https://matrix.to/#/@commagray:sunbutt.faith) told us:
> Hey, our team of colorful ponies proud to introduce you a new Matrix bridge to VK.com chats. It's powered by mx-puppet-bridge and so far supports almost all of core features people want to see, like replies, message edits and file attachments.
>
> Project home: <https://github.com/innereq/mx-puppet-vk>
>
> Video introduction: <https://www.youtube.com/watch?v=nBRBUA9beXs>
## Dept of Clients 📱
### Nheko
[Nheko](https://github.com/Nheko-Reborn/nheko) is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at
[Nico (@deepbluev7:neko.dev)](https://matrix.to/#/@deepbluev7:neko.dev) announced:
> * Profiles should now open again on older versions of Qt.
>
> * I've been slowly rewriting the message are to be qml, to make it easier to do fancy styling. As a result emojis in the emoji-completer are now colorful and the avatars in the username completer now match the avatars used in the timeline. It also open up a few other improvements, like finally sending mentions as links instead of plain text.
> * We have now CI running on our [self hosted gitlab instance](https://nheko.im). We will probably switch of the travis CI, once this is more battle tested. Repositories are now also automatically mirrored between gitlab and github.
>
> * Fixed a bug, where we tried to read the internal world group on your server instead of keeping that to ourself.
### Konheko
[Nico (@deepbluev7:neko.dev)](https://matrix.to/#/@deepbluev7:neko.dev) offered:
> I released 0.0.3 a few days ago bundling a few smaller improvements like redactions, copying messages and the ability to click on more links as well as some visual cleanups. Nothing radical, but also nothing breaking (I hope).
![2020-11-20-2M9RA-Bildschirmfoto_20201120_001.png](/blog/img/2020-11-20-2M9RA-Bildschirmfoto_20201120_001.png)
### Element
[Neil](https://matrix.to/#/@neilj:matrix.org) said:
> #### Delight (Rich vdH, Michael (t3chguy), Valere, Steve, Nique, Nad)
>
> * **Improving usability**
>
> * Last week
> * Observed user tests of people trying to use Element for the first time for personal and professional use cases
>
> * This week:
> * Began work on fixing several of the issues observed, like:
>
> * adding an invite people button to new rooms, so users can more easily add people;
> * changing copy to help people understand what DMs are
>
> * **Spaces**
>
> * Communities are coming back with a bang! Last week we said we renamed them to Spaces, and this week, weve started designing what[ MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) would look like for users on Element, to start user testing next week.
>
> * **Social login**
>
> * To make authentication easier, weve started initial implementations of SSO in Element, exploring how homeservers & Matrix clients can support multiple SSO providers. Most of the work so far is captured in [MSC2858](https://github.com/matrix-org/matrix-doc/pull/2858).
>
>
> #### VoIP (Dave, Brendan, Ismail, Francois, Simon, Nad)
>
> * Web
>
> * PR up for new look in-call UI, now looking at line 1 / 2 support
>
> * Mobile
>
> * Work ongoing to update both platforms to v1 VoIP
>
> * Design
>
> * Some tweaks as implementation is ongoing
>
>
> #### Web Platform (Ryan)
>
> * Element Web 1.7.14-rc.1 is now available at [<https://staging.element.io>](https://staging.element.io), including:
>
> * Several tweaks and improvements to the room list filter
> * Improved registration based on user feedback
>
> * Improved invite / create DM flow
>
>
> #### iOS Platform (Manu, Gil)
>
> * Last week:
>
> * The release has been blocked because a [bug](https://github.com/vector-im/element-ios/issues/3817) has been found in the end to end encryption module. It has been fixed but we want to fix [damages](https://github.com/vector-im/element-ios/issues/3818#issuecomment-731174166) it created on one time keys before releasing the new app version.
> * The new background sync service mechanism PR has been updated
>
> * We started to integrate [tuist](https://tuist.io/) to stop to be annoyed with merge conflicts on the Xcode project file
>
> * This week:
>
> * Release!
> * Merge the background sync service mechanism PR and make more people test it
>
>
> #### Android Platform (Benoit, Onuray)
>
> * Last week:
>
> * Weve just merged a lot of PRs, to improve room creation form and fix some bugs.
> * SDK side, [Dominaezzz](https://github.com/Dominaezzz) is converting some of the Service API methods to coroutines, for a cleaner code. See for instance [<https://github.com/vector-im/element-android/pull/2414>](https://github.com/vector-im/element-android/pull/2414) . 9 out of about 45 services have been migrated so far. We have about a 45 services in the SDK (!)
>
> * This week:
>
> * Release including a new way to invite friends to Matrix and to Element.
### Hydrogen
[Bruno](https://matrix.to/#/@bwindels:matrix.org) reported:
> Released 0.1.30 with image uploads. There is also a new preference in the settings to scale sent images down.
{{ youtube_player(video_id="wpAXR-HYKmI") }}
## Dept of SDKs and Frameworks 🧰
### Ruma
Ruma is a Rust project to create a comprehensive set of APIs for Matrix. Previously there was a Ruma homeserver project.
[jplatte](https://matrix.to/#/@jplatte:privacytools.io) said:
> Since our last update four weeks ago,
>
> * iinuwa created issues for all of the identity service api endpoints (w/ suggested module names!) 🎉
>
> * I updated lots of enumerated types to allow unspecced values, for future compatibility & robustness
> * Devin R made sure a custom Content-Type in responses overwrites the default rather than creating a duplicate header. [#339](https://github.com/ruma/ruma/pull/339)
>
> * [gnieto](https://github.com/gnieto) fixed a bunch of bugs in ruma-federation-api
> * [Alejandro Domínguez](https://github.com/aledomu) added support for deserializing string power levels (requires the `unstable-synapse-quirks` feature because these events are invalid according to the spec but Synapse used to (?) accept them)
### Ruby SDK
[Ananace](https://matrix.to/#/@ace:kittenface.studio) reported:
> Just released version 2.2.0 of the [Matrix Ruby SDK](https://github.com/ananace/ruby-matrix-sdk) with the help of the community, with this release support for JRuby is improved - though still not perfect, in the higher-level abstraction direct messaging rooms are now exposed for all users - as well as all that the current user has, and the lower-level abstraction sees the addition of the CS API method to get an event context.
>
> And just to reiterate; if you're using the gem - or have questions/comments about it. please do drop into the discussion room at [#ruby-matrix-sdk:kittenface.studio](https://matrix.to/#/#ruby-matrix-sdk:kittenface.studio).
## Dept of Bots 🤖
You can see demos of both bots in this section by watching Matrix Live \o/
### [home-assistant-bot v2.0.0 released](https://gitlab.com/olegfiksel/home-assistant-bot/-/releases/v2.0.0)
[Oleg](https://matrix.to/#/@oleg:fiksel.info) told us:
> Opsdroid bot for triggering home-assistant automations.
>
> #### Changes
>
> * ⚠️ Possible breaking change: [change behavior how messages are matched](https://gitlab.com/olegfiksel/home-assistant-bot/-/issues/4)
>
> * Before: messages were matched only if a message starts with `!`
> * In this version: the whole message is matched. This means in v2.0.0 this will work `Hey, please !turnon light1`
>
> * You can override this by using `^` in the config for. For example: `regex: "^!turnon"`
> * This allows one bot trigger another. See this TWIM video for details. 😉
>
> * Add [howto for setting up wakeup-light with home-assistant](https://gitlab.com/olegfiksel/home-assistant-bot/-/blob/master/howtos/wake-up-light/README.md)
>
> * Update Opsdroid to v0.19.0
> * Update opsdroid-homeassistant to 0.1.8
>
> * Add `debug` [config parameter](https://gitlab.com/olegfiksel/home-assistant-bot/-/blob/master/sample-config.yaml#L40) to display messages in the chat, that the bot is getting but, maybe, is not processing/matching
> #### Feedback
>
> * Join us at [#home-assistant-bot:fiksel.info](https://matrix.to/#/#home-assistant-bot:fiksel.info) [#opsdroid-general:matrix.org](https://matrix.to/#/#opsdroid-general:matrix.org)
### Famedly Timetracking bot
[MTRNord](https://matrix.to/#/@mtrnord:nordgedanken.dev) announced:
> As seen in the video I am working at famedly on a bot to track our work hours.
>
> Until this happens the video gives you a sneakpeak on the functions of that bot.
>
> #### Current (implemented) functions
>
> * Tracking of time using `!in` and `!out` commands with forced usage of a description as well as ISO 8601 timestamps.
>
> * Verification if a time is logical based on the known data
> * Saving the times tracked inside of postgresql
>
> * Tracking durations using a `!record` command
> * Responding to only allowed users. (Including ignoring invites if a user is not allowed to use the bot.)
>
> * Using `!delete` to remove entries from the database as needed
> #### Planned functions
>
> * Handling of timezones based on users
>
> * `!stats` command which prints you the tracked durations based on a predefined or custom range of time
> * CSV Export based on a defined range
>
> * `!break` command. Putting a break in between a record or a in/out combination.
> * Better handling of multiple !in commands
>
> * Improved responses
> * Reminders to call !out and to take breaks
>
> Fell free to join us at [#timetracking-bot:famedly.de](https://matrix.to/#/#timetracking-bot:famedly.de) . As soon as the repo gets opened up to public we will announce it in TWIM. Feel free to give suggestions or wishes in our room :)
>
> Get it at: <https://gitlab.com/famedly/bots/timetracking>
## Dept of Ping 🏓
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server. Join [#ping:maunium.net](https://matrix.to/#/#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|297|
|2|neko.dev|297.5|
|3|maescool.be|346|
|4|sorunome.de|396|
|5|apetre.sc|439.5|
|6|maunium.net|503|
|7|midov.moe|520.5|
|8|matrix.sp-codes.de|603|
|9|matrix.thedisco.zone|608|
|10|casavant.org|609|
## That's all I know 🏁
See you next week, and be sure to stop by [#twim:matrix.org] with your updates!
[#TWIM:matrix.org]: https://matrix.to/#/#TWIM:matrix.org