matrix.org/content/blog/2019/06/2019-06-21-this-week-in-mat...

269 lines
17 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-06-21"
path = "/blog/2019/06/21/this-week-in-matrix-2019-06-21"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2019-06-21-matrix-live.jpg"
+++
## Matrix Live 🎙
Matthew and Amandine talk about what we're hoping to ship in June
{{ youtube_player(video_id="RyoCPT_ZvIU") }}
## Dept of Servers 🏢
### Dendrite
We have a whole lot of [Dendrite] news this week! First, from [anoa], on the Matrix team:
> Progress has been picking up this week with some of [Cnly](https://matrix.to/#/@cnly:matrix.org)s [many](https://github.com/matrix-org/dendrite/pulls/Cnly) [PRs](https://github.com/matrix-org/gomatrixserverlib/pulls/Cnly) finally getting merged! [Cnly](https://matrix.to/#/@cnly:matrix.org) is our resident [Google Summer of Code](https://www.matrix.org/blog/2019/05/07/welcome-to-the-2019-g-so-c-participants) student this Summer and has been making strides ever since. We also finally fully migrated to BuildKite for Continuous Integration (which is much quicker than TravisCI) and have implemented golangci-lint as the projects opinionated linter (catching some bugs in the process).
>
> As part of CI, weve set up [Sytest](https://github.com/matrix-org/sytest/) for Dendrite, which grants us a loose method of keeping track of progress as we go along. Currently the only way to do so is to take a look at the [testfile](https://github.com/matrix-org/dendrite/blob/master/testfile) which holds all the tests we know Dendrite to be passing, and cross-referencing that with the list of all sytests (which isnt actually available anywhere). Were hoping to make some nice way of visualizing progress over time with this data (and possibly break it down into Federation/Client/Application Service categories), but this will take some time.
>
> Wed also like to thank some new contributors that have shown up since Matrix 1.0s release. [serra-allgood](https://matrix.to/#/@jump_spider:matrix.spider.ink) contributed [a fix](https://github.com/matrix-org/dendrite/pull/702) for querying aliases when using at least one application service, while [DrGlitchMX](https://matrix.to/#/@drglitch:matrix.org) sent a PR in for some database fixes. [SUMUKHA-PK](https://matrix.to/#/@peekay_46:matrix.org)s [PR](https://github.com/matrix-org/dendrite/pull/694) to add room tags is still around and should see some love very shortly.
>
> As far as the current goals of the project, were looking to primarily make Dendrite federate with Synapse, which will allow it to actually be usable for testing/basic day-to-day usage. We intend to have it done so in the next few months, so stay tuned!
Next, from [Cnly](https://matrix.to/#/@cnly:matrix.org), who is doing GSOC🎓 on Dendrite:
> For Dendrite, the first phase of GSoC has primarily seen improvements for the existing code including bug fixes, refinements for testing, and some refactoring that prepares Dendrite for later feature implementation. Among the changes, two important ones will be the initial support for EDUs in /sync responses as well as a federation destination cache that allows for more effective federation.
>
>In the next phase, more focus will be put into feature completion, mainly for the Client/Server API component. Since this part of work covers various still-under-construction areas in Dendrite, it is foreseeable that more progress will actually be made than proposed.
### Ruma
This Week in Ruma: <https://ruma.dev/news/this-week-in-ruma-2019-06-16/>
> Work is underway to bring Ruma up to date with version r0.5.0 of the Matrix specification. Starting with the most foundational libraries and working up towards the higher-level ruma-client, this work should be done in the next week or two. The bulk of the work since the last update has been on ruma-events, adding all of the events that were previously missing, and doing a full pass through existing events to make sure our definitions match the specification.
I can't wait to see more updates out of Ruma!
## Dept of Bridges 🌉
### matrix-appservice-discord 0.5.1
This announcement is nearly a week old from [Half-Shot], coming in right after the previous TWIM was published:
> We've released v0.5.1 of the discord bridge today. It's mostly comprised of small bugfixes and features, but contains metrics support for tracking performance on the bridge. <https://github.com/Half-Shot/matrix-appservice-discord/releases/tag/0.5.1>
### mautrix-telegram
[tulir]:
> mautrix-telegram got some bugs fixed and minor features:
>
> * Updated to [Telethon 1.8](https://github.com/LonamiWebs/Telethon/compare/v1.8.0...master)
> * Option to limit maximum document size when bridging so it wouldn't download 1.5gb files and run out of ram
> * Made the state cache get updated when sending state events. Not doing this was causing some problems on t2bot.io, which has disabled echoing state events (probably for performance reasons)
### *Reliable Bridges* GSOC 🎓
[Kai] is working on bridging in Matrix, mentored by [Half-Shot]:
> The first phase of GSoC is nearing its end and progress has been made on the *Reliable Bridges* project.
> The main focus of the work was on delivering a running implementation for the signaling of permanent errors. Work has been done on [matrix-appservice-bridge](https://github.com/matrix-org/matrix-appservice-bridge) together with [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord). An internal version of the Discord bridge with the new feature is already running and the related [PR for the bridge SDK](https://github.com/matrix-org/matrix-appservice-bridge/pull/111) is in the state of being completed.
> The next phase of GSOC comes with new goals. First, the preparation of a MSC for the signaling of bridge errors, so that the feature can be discussed in the community and can become a part of The Spec. The second goal will be the modification of Riot Web, so that the user is notified when an error condition occurred.
> There also has been a slight change of plan: The work on notifying clients when parts of the system are temporarily unavailable needs reconsideration as not even the core Matrix network itself has this capability. The way forward here should probably be a [unified solution](https://github.com/matrix-org/matrix-doc/issues/2094).
### New TypeScript puppeting lib: mx-puppet-bridge
[Soru], who you probably know from her work on [matrix-appservice-discord], has started a new library:
> Soru started working on a new puppeting library, for a lack of a better name it is currently called [mx-puppet-bridge](https://github.com/Sorunome/mx-puppet-bridge).
> Unlike the existing puppet bridge, the focus of this one is to handle multiple users at once, all dynamically without needing to edit the configuration file over and over. Additionally the new codebase results in quite a few things smoothened out for easier protocol implementations.
> Furthermore mx-puppet-bridge is written in typescript and based on travis' [matrix-bot-sdk](https://github.com/turt2live/matrix-bot-sdk).
> As protocol implementation for testing, soru also wrote [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) (again, for the lack of a better name). Basic message sending in both directions is already fully functional.
Exciting stuff! And all the more so for the third-person announcement style!
## Dept of Clients 📱
### gomuks
[tulir]:
> Gomuks had a bunch of changes:
>
> * Added support for rendering redactions and edits (rendering reactions coming up next)
> * Added commands to create rooms, start private chats and edit room tags
> * Rendered images now don't take up the whole width
> * Improved memory usage slightly
> * Broke everyones existing caches (`rm -rf ~/.cache/gomuks` should help if it panics at startup)
>
> The command for creating rooms and the image resolution limit were added by a new contributor, [J. R.](https://matrix.to/#/@jrswab:matrix.org), who is currently working on adding .well-known discovery support.
I've been having a good play with this and like it at lot!
![gomuks](/blog/img/2019-06-21-gomuks.png)
### continuum, JavaFX client
[yuforia]:
> Improved support for more types of events in
[continuum](https://github.com/koma-im/continuum-desktop) this week:
>
> * invitation events are supported
> * support for events that typically appear when a room is being set up is in progress
> * events that are not yet supported are displayed with a fallback view. Blank rows in previous versions are now fixed. You could always right-click on any event to view the source, of course
![continuum](/blog/img/2019-06-21-continuum.png)
### Pattle, Dart client
[Wilko] came in with this thorough update, [Pattle] development is MOTORING:
> A new version of Pattle has been pushed to F-droid!
>
> This release is mostly focused on bug fixing and bug reporting! This is why I urge **all users who have been having problems before to try Pattle again!** Chances are that your problem has been fixed, and if not, it will be reported with more information so I can fix it!
>
>When an error is reported, this data is sent:
>
>* Operating system version
>* Device model, brand, manufacturer and whether it's a simulator
>* A unique ID based on your device
>
>In some errors the homeserver domain is logged, I will try to prevent this in the future.
>
>This release also includes preparation for an iOS release next week!
>
> Fixes and other changes:
>
>* Handle rooms that the user has left (a notice is shown that you can't send any messages)
>* Show a date header above the chat creation event (not the first known event in the list as before)
>* When an error occurs during sync, show a message, including the Exception name
>* Fix replies causing an error if the `formattedBody` does not adhere to the spec (thanks to Mathieu!)
>* Fix errors not showing when logging in
>* Fix loading spinner showing when checking username or logging in even if loading took less than 3 seconds
>* Fix direct chats not detected when adder after the initial sync
>* Some general syncing issues have been fixed (causing the dreaded infinite loading spinner).
>
>To install this release, add the following repo in F-droid:
>
><https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729>
>
>And install 'Pattle'.
>
>Or [download the APK](https://git.pattle.im/pattle/app/releases).
>
>If you stumble upon any issues, [please report them](https://git.pattle.im/pattle/app/issues)!
>You can [login via GitHub and Gitlab.com](https://git.pattle.im/users/sign_in), so it's really easy to do! (Logging in via GitHub did not seem to work previously, but it will now!)
>
>Follow development here: [#app:pattle.im]!
>
>If you would like to support me, you can now do so via [Liberapay](https://liberapay.com/wilko/) and [Patreon](https://www.patreon.com/pattle_app). I actually need money for the Apple Developer program, which costs 100 euros per year to release Pattle on the App Store and Testflight.
## Dept of Encryption 🔐
### Quotient (former QMatrixClient)
[aa13q] is a GSOC 🎓 student, working on E2EE and mentored by [Kitsune]:
> I'm working on my E2EE GSoC task: <https://matrix.org/blog/2019/05/07/welcome-to-the-2019-g-so-c-participants>
> One-time keys uploading part is implementing currently. Draft device keys uploading is also here. The implementation follows E2EE guide: <https://matrix.org/docs/guides/end-to-end-encryption-implementation-guide>
> My contribution and reports are currently here: <https://github.com/a-andreyev/libQuotient/wiki/GSoC-2019-reports>. Also, feel free to reach me via Quotient group <https://matrix.to/#/#quotient:matrix.org>.
> I'm trying to reuse [Black Hat](https://matrix.to/#/@bhat:encom.eu.org)'s qtolm project: <https://gitlab.com/b0/libqtolm> -- added CMake files to include to libQuotient project, special thanks to Black Hat for his work.
> Thanks to my GSoC mentors and Matrix and Quotient communities for support and solid groundwork. Long term goal is to provide modern Qt-based library to support full-featured matrix clients like Quaternion, Spectral or even to revive Telepathy IM connection manager <https://github.com/TelepathyIM/telepathy-tank>! %)
>
> P.S.: Maybe somebody reading this is brave enough to play with Qt-based server implementation too? :)
### Riot Web
>* Updating reactions UX to match new designs
>* Continued refinements to editing
>*Tweaked SAS verification dialogs to behave more nicely
Also: [Riot Desktop was updated on the Snap Store](https://snapcraft.io/riot-web).
### Riot iOS
>On the aggregation side, we have started to work on the phase:2 sprint (<https://vector-im.github.io/feature-dashboard/#/summary?repo=vector-im/riot-web&repo=vector-im/riotX-android&repo=vector-im/riot-ios&label=feature:aggregations&label=phase:2>):
>
>* Updating reactions UX to match new designs
>* Support edition of event being sent
### Riot Android
>* Sync with Weblate
>* PlayStore assets has been translated to Spanish
### RiotX (Android)
> * Implementation of notifications is progressing well
> * Migration from Koin to Dagger2 is nearly finished
> * Many other tasks have been done to try to close ambitious phase 1:
> * encrypt/decrypt attachments in e2e rooms
> * Display redacted events properly in e2e rooms
> * Permalink navigation
> * Display version of app and Matrix sdk in settings
> * Disambiguation of display names
> * Many other bug fixes...
## Dept of Ops 🛠
### avhost/docker-matrix
[Mathijs]:
> My PR to the avhost/docker-matrix image (formerly the silviof) adding jemalloc support has just been merged. The image will now run synapse using jemalloc by default, which has been shown to reduce memory usage.
> The first image is tagged as avhost/docker-matrix:jemalloc if all goes well the next synapse release will include jemalloc by default
## Dept of Services 🚀
### New (web) forum from Federated Networks Association
[jaywink]:
> Feneas (short for Federated Networks Association) just launched a new discussion forum aimed at creating a collaboration space for the federated web folk. Of course there is a category for Matrix as well. Have a peek! More info here: <https://feneas.org/federated-networks-forum/>
### Diaspora mirror of this blog (meta)
[jaywink]:
> Should you want to follow the Matrix.org blog using your Diaspora protocol compatible account, there is an unofficial mirror of the blog at matrixorg@social.gibberfish.org. (disclaimer: I'm not affiliated with the account, just found it and reporting)
## Final thoughts 💭
🤔 A company named "Slack" [had an IPO](https://text.npr.org/s.php?sId=734095998), in which the share price [closed up 50%](https://www.theguardian.com/technology/2019/jun/20/slack-ipo-stocks-app-public-latest-share-prices-beat-expectations). Slack are involved in "Instant Messaging" software and their product is known for the ability to connect to other services.
⏰ It's the first GSOC assessment NEXT WEEK. We'll get updates from all four projects, but notice that three of the projects have already provided updates above.
🤖 [tulir] created TWO new maubot plugins, one for translating things: <https://github.com/maubot/translate>. Check out [the bot user](https://matrix.org/#/@translate:maunium.net). The other is a "react bot", <https://github.com/maubot/reactbot>, "that reacts to messages that match predefined rules".
⁉️ [Black Hat] (from [Spectral] and more) is "experimenting with ruma-client-api and plans to create something awesome with it", [Alexandre Franke] (from [Fractal]) got a new laptop. [Fox] "just did \[their\] last java uni exercise ever and am now free from this curse, will have time to work on [Neo]".
🔨 This website has had a lot of polish over the last couple of weeks. We'll be focusing on the incremental improvements still needed, and also on adding new documentation. [Let us know](https://matrix.to/#/#matrix.org-website:matrix.org) what you think we should do next.
## That's all I know 🏁
See you next week, and be sure to stop by [#twim:matrix.org] with your updates!
[Dendrite]: https://github.com/matrix-org/dendrite
[Half-Shot]: https://matrix.to/#/@Half-Shot:half-shot.uk
[tulir]: https://matrix.to/#/@tulir:maunium.net
[Kai]: https://matrix.to/#/@kai:nasnotfound.de
[Soru]: https://matrix.to/#/@sorunome:sorunome.de
[matrix-appservice-discord]: https://github.com/Half-Shot/matrix-appservice-discord/
[yuforia]: https://matrix.to/#/@uforia:matrix.org
[Wilko]: https://matrix.to/#/@wilko:pattle.im
[Pattle]: https://pattle.im/
[#app:pattle.im]: https://matrix.to/#/#app:pattle.im
[aa13q]: https://matrix.to/#/@aa13q:matrix.org
[Kitsune]: https://matrix.to/#/@kitsune:matrix.org
[Mathijs]: https://matrix.to/#/@mathijs:matrix.vgorcum.com
[jaywink]: https://matrix.to/#/@jaywink:feneas.org
[Black Hat]: https://matrix.to/#/@bhat:encom.eu.org
[Spectral]: https://gitlab.com/spectral-im/spectral
[Alexandre Franke]: https://matrix.to/#/@afranke:matrix.org
[Fractal]: https://wiki.gnome.org/Apps/Fractal
[Fox]: https://matrix.to/#/@f0x:pixie.town
[Neo]: https://github.com/f0x52/neo/
[#twim:matrix.org]: https://matrix.to/#/#twim:matrix.org
[anoa]: https://matrix.to/#/@andrewm:amorgan.xyz