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

329 lines
16 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-07-05"
path = "/blog/2019/07/05/this-week-in-matrix-2019-07-05"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2019-07-05-Matrix-Live.png"
+++
## Matrix Live, featuring Erik and the Interns 🎙
{{ youtube_player(video_id="qPIZSarU9zE") }}
Thanks Erik, Jorik and Oliver!
Note that there is a audio hiccup around 2m30 - video is ok otherwise.
## Dept of Spec 📜
### Highlights
* [MSC2140: Terms of Service for ISes and IMs](https://github.com/matrix-org/matrix-doc/pull/2140)
* Largely complete
* [MSC2134: Identity Hash Lookups](https://github.com/matrix-org/matrix-doc/pull/2134)
* Largely complete
* Going ahead with the simple hash lookup method
* [Matthew/msc1849 rewrite](https://github.com/matrix-org/matrix-doc/pull/2154)
* Rewrite of the [Proposal for m.relates_to aggregations](https://github.com/matrix-org/matrix-doc/pull/1849) MSC with new updates
* [MSC2153: Add a default push rule to ignore m.reaction events](https://github.com/matrix-org/matrix-doc/pull/2153)
* Will help prevent ghost notifications appearing when a reaction is the last event in the room
### Movement on Matrix URIs
Sudden interest in [matrix-org/matrix.to/pull#47](https://github.com/matrix-org/matrix.to/pull/47) means we're getting a lot closer to agreement on Matrix URIs. [Kitsune] even added support for them in [Quaternion] (see below).
## Dept of Servers 🏢
### Dendrite
[anoa]:
> Dendrite continues marching forward! As more attention is turned towards our fairly lengthy PR list, contributors who have not done so already are reminded to merge Dendrite's master branch into their PRs, as converting the project to go modules caused a lot of conflicts. A tag has been added to each PR that needs forward merging, [visible here](https://github.com/matrix-org/dendrite/pulls?q=is%3Apr+is%3Aopen+label%3Aneeds-merge-foward).
>
> Our GSoC student [cnly](https://matrix.to/#/@cnly:matrix.org) has been working away on [implementing profile retrieval over federation](https://github.com/matrix-org/dendrite/pull/726) as well as updating his [various other PRs](https://github.com/matrix-org/dendrite/pulls/Cnly) and would likely have a lot more if they were getting more reviews, but worry not as things look on track for that next week.
>
>We've also got plans now! Plans for how to properly ship this thing over the coming months so look out for that soon!
### Synapse 1.1.0 released
> This week we [shipped v1.1.0](https://matrix.org/blog/2019/07/04/synapse-1-1-0-released), which provides an overhaul of docker configuration, more authentication options and improved db io. Its worth noting that v1.1.0 is the first Synapse release to drop support for Python 2 (and Postgres 9.4), this paves the way for using Python 3 only functionality.
>
> Weve been working on supporting soft logout, more edits and reactions support, open tracing support not to mention a complete rewrite of the push server Sygnal. Well be rolling out new Sygnal gradually over the next week or two.
>
> Finally, aided by dropping Python 2 support, weve been putting in a bunch of work to improve Synapse in resource constrained environments. This will be a constant theme over the coming months.
## Dept of SDKs and Frameworks 🏗
### python-matrixbot
[Brian Ó] appeared to tell us about [python-matrixbot]. This is a project that has existed for some time.
> A Python module meant to act as a base class for a Matrix bot.
> The MatrixBot class will connect to the Matrix server, start a listener on each joined room, and listen for room invites from other users. It also includes helper methods you can use to extend the functionality. It is built on the [Matrix Python SDK] which can be directly accessed via MatrixBot.client
### koma
[yuforia]:
> [koma](https://github.com/koma-im/koma-library) got some improvements, based on what's learned developing Continuum, which is a desktop client based on it.
>
> * Make api calls suspendable functions (which are like Kotlin's flavor of async). This way, the caller don't need to worry about forgetting to call await or a coroutine being left unstarted.
> * Borrowing from functional programming, model the outcome of a call as a discriminated union, which can be either a success or a failure. The successful case is optimized with inline classes, an experimental feature in Kotlin 1.3, and wrapping is avoided.
> * Make MatrixError a subclass of HttpError, because the http status code can be handy
### Ruby SDK
[Ananace]:
> Just released version 1.2.1 of the [Ruby SDK], fixing an error in the media download URL generation
## Dept of Bridges 🌉
### matrix-appservice-bridge release 1.9.0
[Half-Shot] was seen to exist IRL this week, he also found time for a new release:
> Today we have a new [matrix-appservice-bridge release 1.9.0](https://github.com/matrix-org/matrix-appservice-bridge/releases/tag/1.9.0). The bigname feature this week is a new store for mapping matrix events to remote ones, so bridges can handle changes made to sent events like reactions/threading/edits/redactions :). The reason for this feature appearing suddenly will become clear very soon.. 😈
### mx-puppet-bridge (inc slack, tox, discord)
> Another week, which means more work on the mx-puppet-bridge ecosystem! A new > bridge has been added, mx-puppet-discord. Soru finally added license files > (Apache-2-0) and some readmes.
>
> #### [mx-puppet-bridge](https://github.com/Sorunome/mx-puppet-bridge)
>
> * bugfixes
> * implement optional double-puppeting (also logging into your matrix acc)
> * relate remote event IDs to matrix event IDs
> * handle edits in both directions
> * handle redactions in both directions
> * initiating conversations from matrix! Invite a ghost for 1:1 or follow a > room alias for rooms
> * bot provisioning: list users and rooms
>
> #### [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-bridge)
>
> * add linting
> * map channels and slack pills
> * handle message edits
> * handle message deletions
> * properly handle /me messages
> * handle ghost invites
> * handle room joins via alias
>
> #### [mx-puppet-tox](https://github.com/Sorunome/mx-puppet-tox)
>
> * add linting
> * improve bootstrapping
> * improve file transfers
> * handle ghost invites
>
> #### [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord)
>
> This is the new puppeting bridge! The idea is that, in the long run, this will > be run in conjunction with [matrix-appservice-discord](https://github.com/) Half-Shot/matrix-appservice-discord), where mx-puppet-discord handles DM > puppeting and matrix-appservice-discord the remaining. For this, the message > parsing was split in a new repository, [matrix-discord-parser](https://github.com/matrix-discord/matrix-discord-parser). The idea is that, in the > future, when inviting a ghost on matrix-appservice-discord it'll initiate > conversation within mx-puppet-discord
>
> * basic text messages
> * handle files
> * handle edits, deletes
>
> mx-puppet-discord does only DMs, for non-DMs please use matrix-appservice-discord
>
> If you have any questions for any of these, please join our channel > [#mx-puppet-bridge:sorunome.de]. Software doesn't write itself, please consider > [donating on liberapay](https://liberapay.com/Sorunome/donate)!
### matrix-appservice-slack
[Cadair] and [Half-Shot] have been doing substantial work on [matrix-appservice-slack].
> We've got a dedicated room for slack bridge development over at [#matrix_appservice_slack:cadair.com], since it's picked up in terms of community PRs and general interest. It's not currently being used as a support room, however.
They mention,
> warning may contain ranting about the codebase
But that could be any room, so it seems ok to me.
`WARNING: LATE ADDITION`
> Hi everyone! [Myself][Half-Shot] and [Cadair] have been working hard on a new Slack bridge release, and we are finally ready to push out a release candidate for **0.3**.
>
> The headline features are:
>
> * Implement message deletion.
> * Add support for edits.
> * Add support for reactions.
> * Add support for threading (using replies).
> * Support displayname and avatar lookups for Slack bots.
> * Replace channel mentions with canonical aliases for bridged rooms.
> * Support for slack attachments (Thanks @umitalp for the initial groundwork and @Cadair for the cleanup)
>
> The new release is having very final minute checks, and will be available at <https://github.com/matrix-org/matrix-appservice-slack/releases> shortly.
## Dept of Clients 📱
### RiotX (Android)
> After an internal release, we are working on improving the performance, especially for initial sync and for navigation between rooms.
> Also we are fighting bugs.
### Pattle 0.9.0 and Testflight available
[Wilko]:
> A new version of Pattle has been pushed to F-droid and TestFlight!
>
> Changes:
>
> * Fix the infamous `FormatException: Not a valid url: ` error!
> * Room upgrades are now handled!
> * Upgraded rooms are now hidden from the overview
> * To access older messages from the previous room, simply scroll up: the timeline is seamless
> * Improve performance of loading the overview.
> Opening the app should be a lot quicker now!
> * Improve performance of loading a chat
> * Add ability to swipe through images in a chat (thanks to Nathan van Beelen!)
> [**See preview here!**](https://git.pattle.im/pattle/app/raw/v0.9.0/CHANGELOG/0.9.0.webm)
Get Pattle from F-droid for Android by adding this repo:
`https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729`
APK also in assets of this release.
For iOS: [join TestFlight here](https://testflight.apple.com/join/uTytydST)
Report issues to [the repo](https://git.pattle.im/pattle/app/issues), you can [login via GitHub and Gitlab.com](https://git.pattle.im/users/sign_in).
> Follow development in [#app:pattle.im](https://matrix.to/#/#app:pattle.im)!
To support Wilko: you can now do so via [Liberapay](https://liberapay.com/wilko/) and [Patreon](https://www.patreon.com/pattle_app).
> I've invested a lot of money in making Pattle happen
on iOS: MacBook, Apple Developer Program, and an iPhone.
Pretty costly, so any donations will be greatly appreciated!
>
> What to expect in the next release:
>
> * Fix timeline jump issues
> * Remove redundant state messages when a room is upgraded
> * Start work on chat details screen (members, change name, etc.)
### Quaternion now with Matrix URI support
[kitsune]:
> to push things forward on Matrix URIs front, [Quaternion] master branch now supports matrix:user/userid, matrix:room/roomalias and matrix:roomid/roomid URIs. For example, Quotient/Quaternion room can be opened by a link <a href="matrix:room/quotient:matrix.org">matrix:room/quotient:matrix.org</a>.
This will be so much easier to use! Also:
> Quaternion has got a new contributor, Roland Pallai (https://github.com/rpallai), who added colouring of messages sent by the local user and support of drag-n-drop of text and images on [Quaternion], along with general improvements on the timeline. Many thanks!
>
> Windows builds of Quaternion (CI and future releases) come with Qt Keychain enabled, storing your access tokens in Windows secure storage.
### Spectral news
[Black Hat]:
> A lot of improvements have been added to [Spectral] last week.
>
> 1. Spectral uses QtKeychain now. Access tokens are stored in system keychain instead of in plain text.
> 2. Room list's filter has a better UX(aka TabBar). Switching between rooms and DMs is now as easy as switching between, well, tabs.
> 3. Notification count in system tray icon, implementation modified from nheko.
> 4. Display initial sync progress. Some people have been complaining about not knowing the progress of initial sync so I added an indicator.
> 5. A *better* room setting page. Specifically displaying aliases and changing room avatar are working.
> 6. Big emojis.
> 7. Typing indicator UI is tweaked and looks better.
### Riot iOS
> * Reactions in e2e rooms
> * “Show all” button when there are too many reactions
> * Support edition of emotes and replies
> * Edits history (even in e2e rooms)
> * Fix joining new upgraded room through federation
> * Use via parameters to join a new room (useful in case of federation)
### Riot Web
> * Allow resending edits, reactions and redactions through context menu, also better visualization of send errors.
> * Allow redacting and viewing source of edits in edit history dialog
## Dept of Ops 🛠
### K8s
[Ananace]:
> Bumped the [K8s optimized Docker image][ananace-matrix-synapse-k8s] to 1.1.0, with the same dropping of Python 2 and Postgres 9.4 support as the official image.
> NB: The upstream docker configuration changes do not affect the K8s-optimized image, no configuration change is necessary to upgrade from 1.0.0 to 1.1.0
### avhost/docker-matrix image
[Mathijs]:
> As announced last week, with the release of synapse 1.1.0 the [avhost/docker-matrix image][avhost-docker-matrix] switched to running synapse with jemalloc by default
## Dept of Services 🚀
### modular.im starting to make Small instances available
[modular.im] are making the *much-asked-for* SMALL instances available. This service is rolling out starting with people who have previously enquired about availability, which I gather is a lot of people. Go sign up if you're interested!
> <p lang="en" dir="ltr">The wait is almost over ... We're now rolling out our trial of Small Hosted Homeservers for Matrix. Have you got your golden ticket yet? 😀🎟️ <a href="https://t.co/iUkAIHW9MY">pic.twitter.com/iUkAIHW9MY</a></p>&mdash; Modular (@ModularIM) <a href="https://twitter.com/ModularIM/status/1146477464488730624?ref_src=twsrc%5Etfw">July 3, 2019</a>
> we've been working on a v1 admin dashboard for managing your Synapse instances through Modular. This is now live on the site and provides a basic suite of functionality including:
>
> * Viewing users of your synapse homeserver(s)
> * Creating users
> * Deleting users
> * Resetting user passwords
> * Viewing user profile and server access / activity
> * Sending messages to all system users as the system alerts user
> * Information about the synapse instance versions
## Final thoughts 💭
[Ananace] is "continuing the rewrite of [the release tracker project](https://github.com/ananace/matrix-releasetracker). Working towards getting it to only store state in Matrix so it can be run in a read-only environment like a K8s deployment."
[lino] "wrote a [script to update riot](https://github.com/l1f/riot-console/blob/master/riot.py). It also works so far, but still needs some improvements"
[Black Hat] has been working "to add .well-known support for [libQuotient]" - presumably this will come back to be used in [Spectral] when it's ready.
Somehow I had a tab open with a [maubot for Urban Dictionary](https://github.com/dvdgsng/UrbanMaubot).
## 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
[ananace]: https://github.com/ananace/
[anoa]: https://matrix.to/#/@andrewm:amorgan.xyz
[Black Hat]: https://matrix.to/#/@bhat:encom.eu.org
[Cadair]: https://matrix.to/#/@cadair:cadair.com
[Half-Shot]: https://matrix.to/#/@Half-Shot:half-shot.uk
[kitsune]: https://matrix.to/#/@kitsune:matrix.org
[koma]: https://github.com/koma-im/koma/
[Mathijs]: https://matrix.to/#/@mathijs:matrix.vgorcum.com
[Matrix Python SDK]: https://github.com/matrix-org/matrix-python-sdk
[Ruby SDK]: https://github.com/ananace/ruby-matrix-sdk
[matrix-appservice-discord]: https://github.com/Half-Shot/matrix-appservice-discord
[matrix-appservice-slack]: https://github.com/matrix-org/matrix-appservice-slack
[modular.im]: https://www.modular.im/
[Quaternion]: https://github.com/QMatrixClient/Quaternion
[Spectral]: https://gitlab.com/spectral-im/spectral
[Wilko]: https://matrix.to/#/@wilko:matrix.org
[yuforia]: https://matrix.to/#/@uforia:matrix.org
[libQuotient]: https://github.com/quotient-im/libQuotient
[mx-puppet-bridge]: https://github.com/Sorunome/mx-puppet-bridge
[#mx-puppet-bridge:sorunome.de]: https://matrix.to/#/#mx-puppet-bridge:sorunome.de
[wilko]: https://matrix.to/#/@wilko:pattle.im
[Cnly]: https://matrix.to/#/@cnly:matrix.org
[Brian Ó]: https://matrix.to/#/@blacksam:matrix.gibberfish.org
[python-matrixbot]: https://pypi.org/project/python-matrixbot/
[#matrix_appservice_slack:cadair.com]: https://matrix.to/#/#matrix_appservice_slack:cadair.com
[lino]: https://matrix.to/#/@lino:m.l1f.de
[ananace-matrix-synapse-k8s]: https://github.com/ananace/matrix-synapse
[avhost-docker-matrix]: https://hub.docker.com/r/avhost/docker-matrix
[Cadair]: https://matrix.to/#/@cadair:cadair.com