matrix.org/content/blog/2019/05/2019-05-31-this-week-in-mat...

158 lines
9.8 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 2019-05-31"
path = "/blog/2019/05/31/this-week-in-matrix-2019-05-31"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2019-05-31-matrixlive.png"
+++
## Matrix Live - Half-Shot and Sorunome discuss the Discord-Matrix Bridge 🎙
{{ youtube_player(video_id="uXVci8AkEKE") }}
## Dept of Spec 📜
[TravisR]:
> Alongside Synapses 1.0 release, the Matrix Specification is also getting a 1.0 on June 10th. In practice this means a fresh release of the Client-Server, Server-Server, Application Service, and Identity Service specifications. The Push Specification is just so simple it hasnt needed an update yet.
>
> Work has been happening to get all the specs in shape for 1.0 - follow along at <https://github.com/matrix-org/matrix-doc/projects/2?fullscreen=true>
## Dept of Servers 🏢
### Synapse
> Main news in synapse-land this week is that we released Synapse v0.99.5.2, which fixes a big performance regression which was introduced v0.99.5. Folks who are currently on v0.99.5/v0.99.5.1 are advised to upgrade asap.
>
>Otherwise, work has been continuing apace towards a v1.0 release on 10th June.
### Construct
[Construct] is a homeserver implementation in C++:
>* Construct has added support for Server Access Control Lists (m.room.server_acl). The exact behavior of the implementation is configurable by the server administrator, and is even more comprehensive than Synapse. In Construct, ACLs can be configured to cover incoming EDUs, outgoing events, and indirectly fetched events.
>* The GraphicsMagick library has been utilized to implement the media thumbnailing feature called for by the specification. This is an optional dependency written in C and offers a rich API which as been extremely fun to work with. In the future, expect your Construct to be capable of things like annotating images with the Server Command Line which can be used to generate memes in your chatroom or write custom text on top of stickers!
>* On the backend we have devoted significant effort to getting the most out of dynamic-linking to simplify the architecture of a large and modular free-software project. This effort makes adding features and contributions to Construct extremely straightforward. I will enumerate the basics for those familiar with developing C software: We are now loading all modules at runtime with the flags `RTLD_GLOBAL|RTLD_DEEPBIND|RTLD_LAZY` and we build with the flag `--weak-unresolved-symbols`; during execution we hook the error handling in `ld.so` to throw our own C++ exception directly from the PLT slot of a missing symbol. In summary this allows features to be added to Construct by simply creating an interface in a header and definitions in a loadable module, while still enjoying optional loading and unloading of the module at runtime. This is a significant feat that remains unrealized in most existing projects around the free software ecosystem!
## Dept of SDKs and Frameworks 🧰
## Dept of Clients 📱
### nheko 0.6.4 and 0.7.0 roadmap
[red_sky] updated us on [nheko](https://github.com/Nheko-Reborn/nheko/):
> Just wanted to pop in and mention that 0.6.4 is out this week. It comes with a decent number of bug fixes.
And then:
> Nheko 0.7.0 roadmap is out:
<https://github.com/Nheko-Reborn/nheko/milestone/2>
> Also, Nheko-Reborn has a new team member, with MonokelPinguin joining the team : <https://github.com/MonokelPinguin>. (goes by Nico in the [#nheko-reborn](https://matrix.to/#/#nheko-reborn:matrix.org) room)
[el0](https://matrix.to/#/@l0phty1:privacytools.io) pointed out that nheko is available on flathub: <https://flathub.org/apps/details/io.github.NhekoReborn.Nheko>
### continuum, JavaFX client
[yuforia]:
[continuum](https://github.com/koma-im/continuum-desktop) modified the JSON parser to save a copy of the source. Now fields that are not standard or not yet supported are displayed when you right-click to view the source. For example, "age" and "transaction_id" are not used by the app, but are available when viewing the raw JSON
![continuum screenshot](/blog/img/2019-05-31-continuum.png)
### Neo
[f0x](https://matrix.to/#/@f0x:pixie.town) has been working on Neo:
> Neo can now finally fetch old backlog, with a fancy css loading animation
>
> The Neo room has moved to [#neo:pixie.town](https://matrix.to/#/#neo:pixie.town), and the site+deployment are being moved to <https://neo.pixie.town>
### Fractal 🦶
[Alexandre Franke]:
> [Fractal] got initial support for being kicked, implemented by first time contributor Isaac Curtis.
>
> We also joined the new call at <https://stopthemingmy.app>
### Riot Web
> Continued work on edits and reactions. Also ongoing work on sdk-level support for cross-signing. Released Riot 1.2.0 (and 1.2.1).
## Dept of Bridges 🌉
### mautrix-telegram, mautrix-facebook, mautrix-hangouts, mautrix-whatsapp
Can you believe it, [tulir] had a busy week working on his various bridges:
>[mautrix-telegram](https://github.com/tulir/mautrix-telegram) now has native Matrix edit support in both directions and basic Prometheus metrics. I'll probably start making 0.6.0 RCs after improving the metrics a bit.
>
>[mautrix-facebook](https://github.com/tulir/mautrix-facebook) and [mautrix-hangouts](https://github.com/tulir/mautrix-hangouts) got some bugfixes and options to configure the displaynames of the ghost users on Matrix (like adding `(FB)` or `(Hangouts)` suffixes).
>
>[mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp)'s Matrix puppeting was finished (meaning typing notifs, read receipts and presence updates can now be bridged to WhatsApp) and unexpected disconnection handling was fixed (automatic reconnections should now usually work again).
>Backfilling needed some hacks to work with Matrix puppeting. The problem is that the real Matrix users have rate limits and can't send timestamp-massaged messages. I decided to just invite the default ghost user to the room while backfilling and make it leave afterwards so that private chat room names and such would stay intact. Some clients like Riot Android/iOS sometimes do weird things, such as moving the room out of "People", but that shouldn't be too bad.
## Dept of Ops 🛠
### matrix-docker-ansible-deploy makes Synapse optional
[Slavi]:
>[matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) has seen some work in becoming more flexible.
>
>Synapse is not a requirement anymore. People can now use the playbook to install any of the other services, wiring them to a Synapse instance installed in another way.
>This is mostly useful for installing bridges or other auxiliary services without going "all in" on the playbook.
>Not having Synapse as a fixed requirement also opens the door for installing alternative homeservers, when such become available in the future.
>
>On a similar note, to ease maintainability, all bridges have been moved to separate Ansible roles (outside of the `matrix-synapse` role).
>There have been lots of improvements related to bridge configuration with even more likely to come soon.
### 0.99.5.2 kubernetes-optimized images
[Ananace] had [0.99.5.2 kubernetes-optimized images](https://github.com/ananace/matrix-synapse) ready to go very quickly.
## Dept of Services 🚀
### Matrix User Documentation launches 🎉
[Aaron][Aaron Raimist] (formerly known as Aaron Raimist) has been a major help to the Matrix project, and has recently launched something new:
>I have started another Matrix documentation project, Matrix User Documentation. I know, there are several however none of them aim to actually be a handbook for using Riot or any other clients. I would like for this to become a place where you can find "The (unofficial) Riot Handbook" or "The (unofficial) Quaternion Handbook" as well as a place where you can find answers to more of your FAQs.
>
>It's still very early, only a few answers are written so far and none of the handbooks have been started but I would welcome any community assistance. You can view what I have so far at: <http://mud.raim.ist/en/latest/>
>
>You can contribute some documentation at: <https://github.com/aaronraimist/matrix-user-documentation> and join our room: [#matrix-user-documentation:raim.ist](https://matrix.to/#/#matrix-user-documentation:raim.ist)
### matrixservers.net
We welcomed [Atreatis](https://matrix.to/#/@atreatis:novaim.com) to Matrix recently. They are creating a new directory service:
> Someone mentioned earlier that there is a need for a list of public servers on Github so people can find and add their public matrix servers. Which combines well with what I am building at the moment. Hopefully you guys don't mind helping me out on creating the list and spreading the word. The repository can be found here: <https://github.com/Atreatis/matrix-servers>
## Final thoughts 💭
[Matrix Shell Suite](https://gitlab.com/darnir/matrix-shell-suite) is a promising looking project which could deserve more attention.
Thank You to [PyConWeb](https://pyconweb.com/) and especially to [Hardy](https://matrix.to/#/@hardy:netspectrum.de) for letting richvdh and myself host TWO Matrix sessions at your event last weekend - was a great time and I hope everyone enjoyed the presentations and workshops.
## That's all I know 🏁
See you next week, and be sure to stop by [#twim:matrix.org] with your updates!
[Ananace]: https://github.com/ananace/
[Alexandre Franke]: https://matrix.to/#/@afranke:matrix.org
[yuforia]: https://matrix.to/#/@uforia:matrix.org
[Aaron Raimist]: https://matrix.to/#/@aaron:raim.ist
[TravisR]: https://github.com/turt2live
[Construct]: https://github.com/matrix-construct/construct/
[red_sky]: https://matrix.to/#/@red_sky:ocean.joedonofry.com
[Fractal]: https://wiki.gnome.org/Apps/Fractal
[tulir]: https://matrix.to/#/@tulir:maunium.net
[Slavi]: https://matrix.to/#/@slavi:devture.com
[#twim:matrix.org]: https://matrix.to/#/#twim:matrix.org