Category – This Week in Matrix
55 posts tagged with "This Week in Matrix" (See all categories)

This Week in Matrix 2019-05-24

2019-05-24 — This Week in Matrix — 

Matrix Live - Wilko, creator of Pattle 🎙

This week I chatted to Wilko, creator of Pattle.

Dept of Servers 🏢

Synapse

Neil:

Folks, big news this week as we announce that Synapse v1.0 is scheduled for release on 10th June - read all about it here

Aside from that we shipped v0.99.5.1 which (hopefully) is the penultimate release ahead of v1.0. Please, everyone upgrade to v0.99.5.1 because it implements rooms v4 which will be the default room version in Synapse v1.0.

0.99.5.1 also contains experimental support for edits and reactions which are currently hidden behind a Riot labs flag.

Dendrite

Brendan:

Some activity has been happening this week in Dendrite-land, with Brendan adding support for Go modules to the project, and anoa adding SyTest runs to the project’s CI. These were two long-awaited maintenance works that will make working on Dendrite much easier in the future!

Dept of SDKs and Frameworks 🧰

libQMatrixClient (that will soon become libQuotient) 0.5.2 has been released, with the sole purpose of fixing a nasty bug unmarking some direct chats when doing initial sync or a clean-cache start up. Everybody on 0.5.x branch is advised to upgrade.

Dept of Clients 📱

QMatrixClient to Quotient

kitsune:

The process of renaming QMatrixClient to Quotient has commenced - expect some turbulence while we're transitioning. The place for the repos is at https://github.com/quotient-im. Note that although the library repo name has changed, the old version of the library will continue releases under the old name (libQMatrixClient), and only in the master branch the library will be renamed. In most cases redirects should bring you home even if you request the old URL (thanks to GitHub); however, people with git repos are strongly advised to update their remotes to new URLs!

For platforms that don't have a separate libQMatrixClient package (that is, Windows, macOS, Flatpak and AppImage), Quaternion 0.0.9.4 has been rebuilt with libQMatrixClient 0.5.2 - in the form of Quaternion 0.0.9.4c release.

tangent

tanget is an embeddable HTML client from sanlox:

I added guest login, possibility to disable guest login, possibility to set own message limit on startup and various error messages. Cleaned up the code to make it more consistent and faster. Everthing I wanted to have for this tiny embeddable web chat is now there so I'd consider it finished for now.

Check it out at: https://sanlox.dev/tangent/

continuum

yuforia updated their JavaJX client:

minor changes in continuum this week:

Neo now has image, video and general file sending

Fox:

Neo now supports sending multiple images, videos and files at once. You'll get a bar with previews, and the option to remove them from the queue/add more.
There's also been a bunch of changes to how events are handled. Images and videos should be much more robust against missing keys (no thumbnail, no information, etc), and there's basic displaying of the most common state events.
I also added an experimental media repository fallback option, which is disabled by default, and only implemented for room avatars. This allows you to provide a list of alternative homeservers Neo is allowed to try when your own homeserver can't load a piece of media.
Due to the loss of lain.haus, I lost admin access in the Neo room, so keep your eyes out for a new one when my infra is back.
I'm currently not really versioning anything, but I do push significant commits to https://neo.lain.haus/neo for people to try. Once it gets to a more useable state, I'll start adopting semantic versioning.

Spectral update

Black Hat:

You can now paste images from the clipboard in Spectral. It is also possible to change room name and topic in room settings. A new release is pushed to Flathub to address direct room issues. Also there've been discussions about implementing custom room themes and backgrounds.

Riot Web

  • Continued work on reactions and edits
  • New emoji font added to standardise emoji appearance and assist OS / browser combinations that don’t support emoji by default

Riot Mobile

  • Continued work on reactions and edits
  • Riot-iOS has a new actions menu on event
  • Fix registration with an email

Riot and RiotX available from F-Droid

krombel updated their Riot(X) F-Droid repos:

I finally found some time to update my fdroid repos which provide the development builds of riot and riotx. Now the builds of buildkite are part of the repos.
There are now 4 separate repos: One for each app and flavor. You can have a look at https://fdroid.krombel.de to find out the URL for the version you want to use.

Riot-dev (F-Droid; Repo; Build-Source)
    https://fdroid.krombel.de/riot-dev-fdroid
    https://fdroid.krombel.de/riot-dev-fdroid/fdroid/repo
    Fingerprint: 312E07B9444D0D1B615EBBAAC55EA4E5A54E123C3BEFCCA5D18B5E12DFC95BDC

Riot-dev (GPlay; Repo; Build-Source)
    https://fdroid.krombel.de/riot-dev-gplay
    https://fdroid.krombel.de/riot-dev-gplay/fdroid/repo
    Fingerprint: 81EDF1741A51B944B00B55E307C7AA043623CB646599182A104B895B6B319844

RiotX-dev (F-Droid; Repo; Build-Source)
    https://fdroid.krombel.de/riotx-dev-fdroid
    https://fdroid.krombel.de/riotx-dev-fdroid/fdroid/repo
    Fingerprint: FD146EF30FA9F8F075BDCD9F02F069D22061B1DF7CC90E90821750A7184BF53D
RiotX-dev (GPlay; Repo; Build-Source)

    https://fdroid.krombel.de/riotx-dev-gplay
    https://fdroid.krombel.de/riotx-dev-gplay/fdroid/repo
    Fingerprint: 5564AB4D4BF9461AF7955449246F12D7E792A8D65165EBB2C0E90E65E77D5095

Dept of Bridges 🌉

Major WhatsApp bridging update

tulir made great strides on mautrix-whatsapp this week:

I've been working on mautrix-whatsapp to add history bridging and Matrix puppeting.

  • New portals are populated with some history when creating them (exact count is configurable)
  • All messages missed during bridge downtime are backfilled
  • Creating portals is smarter now:
  • When logging in initially, it'll create portals for a few recent chats (count configurable).
  • It'll create portals when there are incoming messages as before, but it should no longer create portals for chats that only have old messages.
  • The missed message backfilling creates portals when necessary.

Matrix puppeting isn't quite finished yet. It can already use your Matrix account to bridge messages sent from whatsapp mobile, but it doesn't use the account to bridge EDUs (typing notifs, presence, read receipts) yet.

To make the history bridging a bit nicer, I made a PR to fix timestamp massaging in synapse: https://github.com/matrix-org/synapse/pull/5233. Timestamp massaging was removed from the spec in 1.0, but it wasn't intentionally removed from synapse, it just broke due to other changes. It was probably supposed to stay there as an easter egg until there's a proper solution for bridging history.

Dept of Ops 🛠

Ananace pushed updated K8s images for Synapse 0.99.5

Bubu updated synapse on Arch:

Archlinux updated to synapse 0.99.5 as well after the requests, urllib3 incomopatibility thing was sorted out.

Mathijs updated the synapse avhost docker image:

With synapse v 0.99.5.1 the avhost docker image has finally moved to python 3

Dept of Services 🚀

Modular

New widget for Scalar: EtherCalc.

Dept of Bots 🤖

QuatBot

Very very new, let's take a look at QuatBot, which uses libQuotient:

QuatBot is a simple meeting-management bot for use with the Matrix. Taking turns during an online meeting -- and making sure everyone gets to have their say -- takes a bit of organizing, and this bot helps you do that. QuatBot runs as a command-line application.

Dept of Articles 📝

uhoreg wrote a really informative article about key verification:

For those who want to know more about the security behind emoji-based key verification, I've written a blog post about it: https://www.uhoreg.ca/blog/20190514-1146

Dept of GSOC 🎓

GSoC 2019 – Reliable Bridges

Thanks Kai for this introduction to his project:

The Reliable Bridges GSoC project is about implementing a feedback mechanism for the Matrix network in cases where bridges are not able to properly handle messages. Currently clients are unable to know if a message was successfully sent over a bridge. With the new mechanism in place they get the information about errors happening at bridges and can behave accordingly by e.g. notify the user of the failed delivery.

The implementation is foremost focused on the matrix-appservice-dicord bridge which uses the underlying matrix-appservice-bridge. A JS bridge was chosen so that as much code as possible is brought into the SDK and other bridges can profit sooner from the work done.

The first step for implementing the new feature will be the signaling of permanent errors occurring at the bridge (in contrast to temporary failures). They might occur e.g. when the sending account was banned on the bridged foreign network. These permanent errors will be implemented as a new type of PDU originating from the bridge.

After permanent errors are done, the subsequent weeks will see work on temporary failures which might include work on Synapse as well as work on Riot Web to have a client which actually uses the new events. As these events are new features being introduced there will also be a MSC draft. There everyone can check out the proposed solution and tear it apart with their criticism (if applicable 😉).

For discussions related to the GSoC project or when you have some opinions on how the MSC should look like, you are invited to join the Reliable Bridges Matrix room.

That's all I know 🏁

Finally Alan, friend of Matrix and creator of TADHack and TADSummit is doing an "Open Source Telecom Software Survey" - if you could add value to this research by completing it please do so here: http://alanquayle.com/2019/05/open-source-telecom-software-project-survey/

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-05-17

2019-05-17 — This Week in Matrix — 

Matrix Live - Reactions and Edits coming to Matrix


If Since you've been chatting on Matrix this week, you'll have noticed some new features rolling out.

In Riot develop, hit Labs in the Settings menu and you'll be able to try out the new Reactions and message editing features.

Dept of Servers

Synapse

Neil said:

This week we shipped 0.99.4 - no stand out ‘oh my gosh’ headlines, just lot lot of bug fixes and perf improvements - get involved. We’ve also been working hard to getting things like reactions and edits going, as well more prep for improving perf for small server instances.

Construct

First Construct update for a few weeks:

Construct has added a server command line available in any room when starting a line with a special character (by default it's '\'). The commands are private so the room doesn't actually see it. More on this next week, or check out #test:zemos.net.

Dept of SDKs and Frameworks

Ruby SDK now 1.0!

Big news from Ananace this week:

Finished getting the test coverage to a reasonable enough percentage to feel comfortable releasing the Ruby Matrix SDK as a nice and stable 1.0 (.0)

This is great! All Rubyists should check it out. Ananace notes:

I still need to set up fixtures for all the API endpoints I'm exposing so I can verify every single API call as well, but I see that as a later thing as that relates mostly to how the other side (the HS) handles my input, not to how the SDK itself handles said input

Dept of Clients

Pattle

Wilko:

A new version of Pattle is available on F-droid!

Changes include:

  • Implement direct chats correctly!
    • Use user user avatar as chat avatar if direct
    • Hide user name in direct chat
  • Use names of room members if no room name is set (whether the chat is direct or not)
  • Add border to left of replied-to messages to easily differentiate them
  • Show redaction events!
  • Use icons instead of letters if chat has no avatar
    • Use different icons for direct chats than group chats (and in the future public chats)
  • Use user color for direct chats if the user has no avatar
  • Simplify member change messages ('Pat has joined' -> 'Pat joined', etc)
  • Tweak font sizes (thanks to Mathieu Velten)!
  • Change date header style (smaller and full caps)

Development happens here and development discussion happens here: #pattle:matrix.org!

To install this release, add the following repo in F-droid:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

And install 'Pattle'.

Riot (various)

This week the various Riot teams (web, iOS, Android) have been spending time implementing reactions/edits, but also:

Riot Android

  • PR review from community: Matomo SDK will replace Piwik SDK
  • Weblate is up again, a sync has been done.

RiotX (Android)

  • Crypto integration is still ongoing
  • Reactions are coming soon!
  • New home and navigation to rooms development started

tangent

tangent is an exciting young project designed to create a very lightweight browser-based new client. sanlox:

did alot of changes on tangent to make it more stable and performant, only registration and guest login are left to do, git changed to https://gitlab.com/sanlox/tangent

Test the latest at: https://sanlox.dev/tangent/

Spectral timeline UI and more

Black Hat:

  • Polished the timeline UI for Spectral.
  • Added m.video support.
  • Also added drag-and-drop support in Spectral.

Fractal now with keyboard shortcuts

Alexandre Franke:

Ana, first time contributor, added a bunch of cool keyboard shortcuts to ease navigation in Fractal. One can now e.g. go down to the next room with unread messages with ctrl+shift+page down.

continuum updates

yuforia:

  • Load message history from server lazily when scrolling
  • Loaded messages are always saved to disk, so if you aren't offline for too long, only a few messages will need to be fetched the next time you login
  • The screenshot also shows the UI for handling invitations

early-day reactions support in Quaternion

kitsune:

This week was too packed IRL but I took an hour to experiment with reactions that are a rage in riot.im/develop these days. An experimental "kitsune-reactions" branch understands reaction events and allows clients to further process them. A proof-of-concept in Quaternion will land over the weekend.

Scylla

via Aaron Raimist:

Update on Scylla from VaNilLa: Though I am very busy with schoolwork, I found time to fix a long-standing issue: the names of private messages showing up as <No Name>. this is gone now, and rooms are sorted alphabetically to make it easier to navigate.
Try Scylla here: https://scylla.danilafe.com
Come join us in #scylla:riot.danilafe.com to discuss

Dept of Bridges

matrix-appservice-discord 0.5.0

Half-Shot:

Evening, we've just cut the first RC of matrix-appservice-discord 0.5.0. Most of the changes this time around are bugfixes to formatting, internal re-architecturing / performance boosts and shifting more things to the database. Please help test if you run an instance, so we can get a 0.5.0 out swiftly. The next release has a lot of features planned for it 😉

Also - congratulations to Half-Shot on finishing all his final-year exams! How will you fill your time now?

mautrix-telegram/mautrix-hangouts/mautrix-facebook/mautrix-whatsapp

Think tulir's been busy this week?

Lots of small changes in my projects:

  • mautrix-telegram had a bunch of bugs fixed, like multiline messages from some clients not being bridged correctly.
  • mautrix-hangouts got matrix->hangouts image bridging and some bugfixes.
  • mautrix-facebook also got some bugfixes.
  • mautrix-whatsapp now informs the user about connection problems rather than crashing and has commands to try to reconnect. It also now bridges redactions in both directions.

Dept of Ops

kubernetes from Ananace

Ananace updated their k8s packaging for Synapse to 0.99.4: https://github.com/ananace/matrix-synapse

Debian Packages

andrewsh announced the Debian Matrix Packagers Team has its own dedicated blog

for everything about Matrix on Debian, join #debian-matrix:matrix.org

silvio/avhost synapse docker container

Mathijs:

the silvio/avhost synapse docker container is making progress in moving to python 3, the container is made smaller and no longer runs synapse as root

There are some important differences between this and https://github.com/matrix-org/synapse/tree/master/contrib/docker:

it puts all the configuration files, logfiles and media files in the volume, you don't really configure it with environmental variables but just by editing the homeserver.yaml file in the volume, and it also contains coturn

Dept of Bots

Half-Shot created a "reactbot":

Hot on the heels of the rapid developments of the reaction work, I've written a bot that automatically reacts when spotting certain phrases inside rooms. Honestly I have no idea what the use case is for this, but it exists and I currently use it to stick the :dog: reaction on every dog related event. https://github.com/Half-Shot/matrix-reactbot

The bot is also now used in #twim:matrix.org, whhere it performs the needed work of adding red circles to submissions.

tulir's karma maubot now also supports reactions and redactions, and the maubot sed plugin now underlines changes in messages.

Dept of Status of Matrix

t2bot.io has launched a new website

TravisR:

t2bot.io has launched a new website, surpassed a milestone of 300k total bridged users (70k of those are active monthly), and launched 2 new early-beta-quality bridges. If you're looking to try out tulir's latest Hangouts or Facebook Messenger bridge then t2bot.io is an option for that, assuming you don't mind the occasional bug, missing feature, or problem. Check out https://t2bot.io/hangouts/ and https://t2bot.io/messenger/ for setup instructions.

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

PS Massive thanks to Aaron Raimist for doing the needful to make full articles appear in RSS!

This Week in Matrix 2019-05-10

2019-05-10 — This Week in Matrix — 

Matrix Live

This week Neil and Matthew are talking about recent security issues - this is a really long and detailed chat, but you can skip to around the 32 minute mark to hear about other news - including progress on reactions. Reminder that for a good "big picture" overview of the progress of Matrix, you can look at the Homeserver High Level Roadmap.

Dept of Servers

Synapse

Neil, Synapse-dev wrangler:

Reactions continues at full speed, we have a draft PR and will be implementing over the coming week. The ability to blacklist IPs over federation will land imminently, as well as a nasty device management bug that led to a spate of E2E errors. Next week is all about Reactions, resuming work on the small homeserver project and finally getting back to Synapse 1.0 blockers following all the remediation drama of the past few weeks. With any luck we’ll have a new Synapse release for you next week.

Dept of Encryption

Pantalaimon

Says poljar:

  • Pantalaimon received a configuration file. The configuration file adds the ability to configure multiple Homeservers and pantalaimon will run having each Homeserver exposed on a different TCP port.
  • The panctl utility has received support for more commands, it now has the ability to accept SAS requests, confirm them, import/export keys, list pan users as well as list devices of users. Completions for the commands were also added.

Dept of Clients

Pattle - big update!

Wilko announced:

A new version of Pattle is available on F-droid!

Lots of changes again, including:

  • Render HTML formatting in messages!
  • Replies are now rendered!
  • Show date headers between messages of different days!
  • Render usernames with a color in chat timeline
  • Add loading indicators (when logging in, loading chats, etc.)
  • Show error banner at the top if syncing failed
  • Syncing now resumes after a failed attempt (no more restarting)
  • Fix messages not being sent if connection was lost and the app restarted

To install Pattle, add the following repo in F-droid:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

Follow development here and in #pattle:matrix.org!

Fractal

Alexandre Franke:

Although the development pace has been reduced lately, the Fractal team managed to make significant progress towards the 4.2 release. More specifically since our previous news, Chris has landed much of his adaptive view work to get Fractal in a mobile friendly state so it’s ready to run on the Librem 5 once Purism starts shipping them. But he didn’t stop there: eager to see his awesome work in the hands of many people (figuratively, the literal application will have to wait for the phone to be out 😛) as soon as possible, he tackled a few bugs that we really wanted to get sorted out before we got a new version out.

Alexandre also prepared the changelog with a bird’s-eye view of all changes that happened since 4.0.

Last but not least, we had a few external contributions for features such as network proxy support and typing notifications.

Riot Web

Progress on message composer for editing messages.

Riot iOS

  • 0.8.6 has been released on Tuesday
  • We are working on reactions

Riot Android

  • We have fixed some minor bugs, our efforts are now on RiotX
  • New FDroid mode support for high service level, regardless of battery usage.

RiotX (Android)

  • Benoit has started to implement the crypto on RiotX. Basically all the legacy has been imported and a migration to the new architecture is done. Lots of plumbing and rework, but it should be the fastest way to support crypto on RiotX.
  • Valere is working on the emoji picker and reactions, and has also added some actions on events (copy, share, view source, etc.)
  • François has added room invitation support. It will be possible soon to see invitations, and accept or reject them.

continuum

yuforia has news on continuum, a JavaFX-based client.

this week in continuum

  • right-click on a room in the room list to send invitations
  • experimental support for receiving invitations
  • membership data are now also persisted in database

FluffyChat available as a Snap package, plus E2EE progress

Krille announced FluffyChat for Linux desktops:

FluffyChat is now also available as a Snap package for desktop Linux
https://snapcraft.io/fluffychat :D
It's a Matrix client written in Qml for Ubuntu Phones. Now it is working for Linux Desktop too.

He also has news to share re E2E:

Progress has been made at the end2end encryption for FluffyChat. Qml bindings for the libolm library are mostly ready and the app can now create keys and upload keys to the server. Device tracking is now implemented too.

E2E when? SOON! See the branch here: https://gitlab.com/ChristianPauly/fluffychat/tree/e2eencryption

Dept of Bridges

New Hangouts bridge from tulir / mautrix

tulir has been using his mautrix-python lib, which was recently used to enable his mautrix-facebook bridge, to bring a new method for Matrix-Hangouts bridging:

New bridge again, this time it's Hangouts: https://github.com/tulir/mautrix-hangouts / #hangouts:maunium.net. As with the Messenger bridge, currently the main difference to matrix-puppet-hangouts is multi-user support (also no hacky JS/Python mixing).

Before making mautrix-hangouts, I put a bunch of the generic bridging parts of mautrix-facebook into mautrix-python's bridge module and used that in both bridges. After Debian 10 is released, I'll drop Python 3.5 compatibility in mautrix-telegram and move it to use mautrix-python and the bridge module too.

Next week I'm planning on adding a bunch of features to both my new bridges, such as bridging formatting and remaining media types (so no new bridges planned for now :D).

Dept of SDKs and Frameworks

QMatrixClient is now "Quotient"

kitsune:

The vote on a new name for the QMatrixClient project has been going on over the past week.
We have a winner now, and the new name is "Quotient"! In the nearest weeks, expect changes in the library code (it's going to be libQuotient from the next release), room aliases (already ongoing), links to the repos etc. etc. Where possible, we're going to smoothen the migration path by providing legacy fallbacks (e.g., the new C++ namespace, Quotient, will be introduced but the old one, QMatrixClient, will stay its synonym, although deprecated).
Just in case you missed all the previous mentions of the topic - it's only related to the overall project and the library, but not the client - its name remains Quaternion.

Why rename?

Because the previous name has been a bit clumsy and, most importantly, the project is no more focusing just on client-side but on a wider set of applications of Matrix (no homeserver in plans though). See also the recent backlog of #qmatrixclient:matrix.org (now also #quotient:matrix.org) earlier this week for the whole discussion

Ruby Matrix SDK hits v0.1.0

Ananace:

Just published version 0.1.0 of the Ruby Matrix SDK, and I've gotten enough testing written now where I feel comfortable not marking this as a pre-production release. So feel free to integrate it into more than just prototypes and experiments. 😃
Relevant links; GitHub page, #ruby-matrix-sdk:kittenface.studio.

Opsdroid big updates, with focus on Matrix

Cadair:

Opsdroid 0.15 has been released, with a lot of matrix focused updates. The biggest of which is support for sending and receiving images and files. There have also been a bunch of bug fixes such as clean exit of the matrix connector and correct handling of events which are not parsed. There are also a bunch of other not matrix specific changes like support for the awesome parse library for string matching. Read all about it in the release blog: https://medium.com/opsdroid/event-dispatching-simple-parsing-and-more-in-v0-15-3f721b8a6d6c

PK interfaces for ruby_olm

Willem:

This week I've been adding PK interfaces to cjhdev's Ruby bindings for Olm, in preparation of improving my Tchap proxy. The PK interfaces can be found in my fork of ruby_olm. Building the native extensions for the gem has had a major overhaul, so no pull request yet.

Dept of Ops

matrix-docker-ansible-deploy update

It's been a few weeks since we heard from Slavi about matrix-docker-ansible-deploy, but he's been working away on it:

We haven't shared any matrix-docker-ansible-deploy updates lately, but we've had lots of community contributions.

Most of it has been bug fixes and various internal improvements, but we've also landed a few large features. Here's what's most interesting lately:

Dept of Status of Matrix

jaywink, maintainer of https://the-federation.info, told us what we all know to be true: Matrix is great and is getting more popular:

Matrix (Synapse) jumps to second place in https://the-federation.info site, which lists servers of the federated social web. Help us map the true size of the Matrixverse by adding your server by going a https://the-federation.info/register/yourdomain.tld. Note, SRV and well-known lookups not yet working, so registration needs to happen with the Matrix server real domain (and port if any).

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

PS to people who would normally be reading this in their own RSS reader - I apologise, we'll get the full-article feed back up soon.

This Week in Matrix 2019-05-03

2019-05-03 — This Week in Matrix — 

New matrix.org Security Disclosure Policy and moderation pages

Check out the Matrix Official Security Disclosure Policy, which also features a "Hall of Fame": https://matrix.org/security-disclosure-policy/

We also have an official moderation guide now at https://matrix.org/docs/guides/moderation

Servers

Synapse

Last week

Work progresses on reactions support, expect a more formal MSC rsn, but for check out https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md for more details. Aside from that we now have an API to send server notices, support is coming for blacklisting IP ranges for federation traffic and finally we published a security disclosure policy and hall of fame https://matrix.org/security-disclosure-policy/. We’ve also been tracking down some device management bugs that prevent e2e message decryption as well as fixing some security bugs.

Next week

More reactions work, device management bug hunting and server key validity support.

Crypto

Clients

There are some BIG (capital and bold!) client releases this week, let's take a look

Quaternion 0.0.9.4

Big release for Quaternion this week, following lots of work on libQMatrixClient. kitsune reports that:

Quaternion is now officially at version 0.0.9.4! Optional native scrollbar for the timeline, files uploading, initial support of matrix.to links (the foundation for future Matrix URIs), first complete translations, and much much more - the long list is here: https://github.com/QMatrixClient/Quaternion/releases/tag/0.0.9.4. Packagers are advised to take a look at the building and packaging section of the release notes: there are a few updates for you there.

Spectral

Continuing the QT-client theme, Black Hat has released a new version of Spectral to FlatHub, join #spectral:matrix.org for more:

A new version of Spectral is released on Flathub this week! The last release is half a year ago, and there are a lot of changes since then, including a better UI, bug fixes and performance improvements.

Changelog:

Increase minimum Qt version to 5.12.
Redesigned UI.
Emoji and username auto completion in text input.
Respect server-side notification settings.
Emoji picker.
Fix font size in HiDPI.
Improved reply UI/UX and rich reply UI.
Sending/receiving typing notifications.
Switch to hoedown for parsing markdown.
Display notification count.
Responsive UI.
Fix #2(Room/People separator issue).
Infer device name from system information.
Image caching.

And of course various performance improvements. For my account Spectral takes ~35MB RAM initially, compared to 45~50MB before.

Pattle new release

pattle screenshots

Wilko came to announce a new Pattle release, that's the Flutter client:

A new release of Pattle has been pushed to F-droid! Lots of different changes this release, including:

  • Viewing images!
  • Actual local echo (message is immediately placed in the timeline)
  • Sent state indicators are now shown next to the message time (clock for still being sent and a checkmark for sent)
  • Show member change events! (x has joined, left, invited, etc)
  • Thumbnails are now used for chat avatars, which should improve performance a bit
  • Other small fixes :)

Check out a video demo at here.

continuum

yuforia reports that:

This week in continuum:

Riot Web

Initial UI work on reactions and editing, nothing useable yet though.

Riot iOS

  • Release of 0.8.5 :
    • Grouped notifications
    • Interactive device verification (by emoji)
    • WebRTC and Jitsi libs updates
    • min iOS version is now 10 (Jitsi constraints)
  • Initial UI work on reactions, nothing useable yet though.

Riot Android

Benoit from the Riot team:

  • CI has been configured on Buildkite for the Android matrix sdk, riot and riotx.
  • The Android sdk can now be integrate as a grate dependency via Jitpack.
  • Riot 0.9.1 has been released with sas feature included! Device verification is easier with riot web and riot Android users, soon with riot ios users. Will be on production channel on Monday.
  • We have finally pushed the security fix on GH.
  • Also working on the crypto modularization to integrate it on RiotX.
  • We will concentrate our effort on RiotX now

RiotX (Android)

  • Working on reactions

Bridges

matrix-appservice-discord searching for a new maintainer

Sorunome reports that:

We (matrix-appservice-discord) are looking for a new maintainer!

What are we looking for in a maintainer?
You wouldn't have to be super active, however a few minutes per day would be greatly appreciated. You'd be responsible of reviewing PRs! Because of this not being afraid of Typescript and not being afraid of Discord is required - no need to be at pro-level!

So we are basically looking for someone who can help us look over PRs and maybe do some themself. If you think you are interested, please message us in our matrix room!

Bridging Facebook Messenger

tulir:

I made a new Facebook Messenger bridge: https://github.com/tulir/mautrix-facebook / #facebook:maunium.net. Currently the main difference to matrix-puppet-facebook is multi-user support like my WhatsApp and Telegram bridges. The bridge is Python and the code structure is similar to mautrix-telegram, so I'll probably eventually create a generic bridge library out of the common parts.

SDKs and Frameworks

Ruby SDK

Ananace reports that:

Working on the Ruby SDK again, planning to try and get it to the point where I feel comfortable calling it a provisionary 1.0 release. I want to propose additions to various softwares using it after all, and that tends to look better if it's 1.0 - or close. 😃

That's all I know

That's all for this week folks, come chat in #twim:matrix.org for more, or to share what you've been working on.

PS this interesting-looking project is not ready for public eyes on it yet, so please refrain from checking out the code and discussing with the author in #tangent:matrix.org

This Week in Matrix 2019-04-26

2019-04-26 — This Week in Matrix — 

Hello and welcome

No Ben this week. I'm afraid this means no matrix live, but fear not your Ben orientated programming will resume next week.

Things that have happened

Riot Android

RiotX (Android)

  • Valere has started working on reactions (which will be implemented only on RiotX for Android).
  • François has worked on merging membership Events in the timeline

Riot iOS

  • Interactive device verification has been merged
  • Jitsi and WebRTC updates have been merged
  • Fix bugs in order to prepare a release

Crypto

uhoreg reports that:

olm 3.1.0 has been released. This release adds new functions to help with SAS-based key verification (a.k.a. emoji-based verification) and with cross-signing. The Python bindings are also now available on pypi, so you can install it using "pip install python-olm", though you need the olm library and development files installed first.

Also

  • Python-olm available on pypi.
  • Initial SAS verification support for nio.

Spectral

Black Hat reports that:

Spectral's redesign continues, featuring a beautiful responsive UI(not kirigami yet, sorry) and more functionalities. Legacy UIs such as the room detail panel are changed to fit into redesigned UI better. Basic room upgrade support is added, allowing you to switch between the old room and the new room. Room settings and user detail dialogs are added. You can also ignore users in the user detail dialog.

matrix-nsfw

A Black Hat double header this week:

matrix-nsfw has been ported from Golang to Rust. The backend machine learning framework is also switched to Tensorflow, giving a major performance boost. For anyone that doesn't know what matrix-nsfw is, it is a bot-like utility that detects NSFW images in a room. The new repo is at https://gitlab.com/b0/matrix-nsfw-rust

Neo

Sometimes a picture tells a thousands rainbow coloured words. Thanks Foks

Ruma

Jimmy reports that:

All of Ruma's libraries (but not yet the homeserver itself) are now targeting stable Rust!

Continiuum

yuforia reports that:

  • If a room member is not visible on screen, updating their name doesn't require switching to the main UI thread
  • Apply formatting when viewing the json source of an event
  • Reuse GUI components to improve performance, update content of views instead of creating new ones
  • Use a hash set to avoid going through the list of room members in some cases * Move more of local storage into the database: names and avatars of users and rooms, room membership, recently used accounts, etc.
  • Placeholder avatars are made with GUI components and instead of generated bitmap images
  • Switch to gradle multi-project build to modularize

After switching from plaintext files to an embedded database, some components are still in the process of being rewritten, coming next week: load messages from server on demand when scrolling, if they are not yet stored in database; add support for invitations;

matrix-appservice-discord

Sorunome reports that:

matrix-appservice-discord work has finally resumed! The PRs for both migrating the room and user store to SQL have been merged, and many awesome new things should follow up soon!

Synapse

The reactions and edits API is taking shape, we’re making progress on our small homeserver setup, and we’re hunting a new set of device key management bugs that came to light in the absence of matrix.org.

We’ve been a bit disrupted these past few weeks, but work towards Synapse 1.0 continues and we’ll soon be ready to offer a release candidate.

miniVector

Curious Cat reports that:

miniVector 0.8.29 is available on Goldy and Froid (and are unaffected by the Riot/Android re-release drama).

The 'Incident'

We know you'll have a bunch of questions, we'll be publishing a full post-mortem next week. Thanks for bearing with us.

The End

See you next week, it will be Bentastic I can assure you. Be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-04-18

2019-04-18 — This Week in Matrix — 

Welcome to the new blog!

Check out the new digs! We're happy with this newly deployed blog, and all the old and loveable content is right down there. If you find issues, let me know. You may remember Nad, from previous editions of Matrix Live - huge thanks to him for his work on the design and upkeep of this new deployment.

Notes from the downtimes

Github tokens

jaywink:

Due to the security incident, all GitHub access tokens for the Scalar GitHub integration were cleared. This means that if you have a GitHub bot in the channel and want to use the !github bot commands, you need to re-login to github via the integration manager menu. Note, existing webhooks are untouched and should work fine without re-authenticating.

Bridges

Half-Shot:

From the matrix.org bridge team, we are ressurecting bridges as fast as possible. Currently running are the freenode, slack, gitter and gimpnet (now hosted on gnome.org) with more to come today and next week.
We have the snoonet and oftc irc bridges back. Mozilla is coming soon hopefully this weekend too!

Whoop! Mozilla is actually up now!

Pattle new release on F-Droid

Wilko:

A big release of Pattle has just been pushed to the F-droid repo! Changes include:

  • Display names are now shown
  • You can now click on chats and view them!
  • Messages are grouped by time and sender (see screenshots)
  • Add fancy transition animation and ripples to chat messages (see video)
  • Use Sentry for error reporting (only Android version and device model is sent, along with the stacktrace of the error)

Also, please note that if you have a matrix.org you probably have reinstall the app if you're logged in because of the recent matrix.org incident (because there's no logout button yet and no detection for invalidated access tokens)

There has actually been a release since, which includes:

message sending and viewing image history!

libQMatrixClient 0.5.1.2 && Quaternion 0.0.9.4

kitsune is talking about the long road to 0.0.9.4:

libQMatrixClient 0.5.1.2 has been released, with all the remaining bugfixes for Quaternion 0.0.9.4 that's coming any day soon now. The release notes are here: https://github.com/QMatrixClient/libqmatrixclient/releases/tag/0.5.1.2

Quaternion 0.0.9.4 RC3, the last one before the release that will happen in the nearest days, is out. Release notes can be found at https://github.com/QMatrixClient/Quaternion/releases/tag/0.0.9.4-rc3. Translators, you literally have hours to add your translations for 0.0.9.4!

neo

I reimplemented the matrix sdk into Neo, so it works nicer. Colors and font look nicer (base16-tomorrow, Open Sans), and there's text message sending, with localecho!
I also fixed a bug where react would recycle displayname-components across rooms, attributing them to the wrong messages

a video at https://lain.haus/_matrix/media/v1/download/lain.haus/VfshWRfaNUnpGQbdkyYczxvd

Go test Neo at: https://neo.lain.haus/neo

matrix-registration update

ZerataX:

it's been a long while, but I've finally come around to improving on matrix-registration
For those of you, who have forgotten what this project is about, it basically lets you invite people to your homeserver with tokens, e.g. https://homeserver.tld/register?token=DoubleWizardSky
This whole update was about making the project more user friendly.
I made a new default registration page that requires 0 setup and you can install the project right from pypi with pip, so you don't even need to clone the repo any longer.
check a live example here: https://chat.dmnd.sh/register
and to play around with the api you can can go over to the github page: https://zeratax.github.io/matrix-registration/demo.html?token=ColorWhiskeyExpand
channel: #matrix-registration:dmnd.sh
github: https://github.com/zeratax/matrix-registration

Video available here.

matrix-media-repo now has s3 support

TravisR:

matrix-media-repo now has s3 (and s3-like) support, making it easier to archive older media or use minimal disk space. See the new datastores option in the config and the admin docs ( https://github.com/turt2live/matrix-media-repo/blob/master/docs/admin.md#datastore-management ) for more information.

Dimension

TravisR:

Dimension has been updated to more safely handle when upstream integration managers (like Scalar) are offline. Instead of crashing or breaking in various ways, it'll report which integrations are not accessible.
As well, due to recent events, if you use matrix.org bots or bridges in Dimension then go the the admin section and log everyone out using the red button. Dimension caches upstream tokens and isn't smart enough to realize that they are no longer valid, which means they need clearing. Clients should automatically handle getting new tokens in the background.

Riot iOS

  • Interactive device verification is still in progress
  • Update WebRTC and Jitsi libs (in progress)

Riot Android

We are finalizing SAS device verification feature We are preparing a release to fix some issues

RiotX (Android)

  • We can now clear the cache of the application (Riot legacy feature)
  • Sync filter has been implemented
  • François is working on thumbnail of video (upload and preview) in the timeline

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-04-05

2019-04-05 — This Week in Matrix — 

Matrix Live S3E20 FluffyChat creator Krille on Matrix, Ubuntu Touch and Matrix-for-Healthcare

Synapse, the road to 1.0

Neil, Synapse overlord:
Last week we carried on with Synapse 1.0 work, in particular server key signing validity, a config option to verify federation certificates to support MSC1711 and support for 3PID unbinding APIs (MSC1915). Outside of that we've been thinking about how to improve room upgrades for private rooms and landed the preparatory work for a refactor of the room directory.

Coming up next, we'll continue to bash out 1.0 blockers, Hawkowl has started work on optimising for small hosted homeservers, and anoa will be working on the new super fast room directory. Finally Erik has started work on aggregations support so clients will be able to offer things like edits and reactions ?

https://www.arewereadyyet.com/ is now just shy of 64%, keep going.

Dendrite

Dockerfile for sytest running against Dendrite approved. Close to being able to run Dendrite against sytest. Also using sytest's new test white/blacklist functionality to include a list of tests that Dendrite is known to pass in the repo. When people make new PRs that allow Dendrite to pass new tests, they can also append the names of the tests to the testfile to help automatically track Dendrite's improving progress. Look forward to seeing further progress post Synapse 1.0.

libQMatrixClient 0.5.1 released,

kitsune:
libQMatrixClient 0.5.1 is out! This is a minor release with bugfixes and small improvements, a base for Quaternion 0.0.9.4, RC of which is coming this weekend. Full release notes here
and to follow up:
Quaternion 0.0.9.4 Release Candidate is available for all those who don't need a "release" seal of approval to use applications. Get out, grab it, report bugs that could still sneak in: https://github.com/QMatrixClient/Quaternion/releases/tag/0.0.9.4-rc. A separate call out to translators - it's a great moment to teach Quaternion a few more phrases in your language!

.NET Core Synchrotron

Half-Shot:
This weekend I took a brief pause from doing matrix work, and then went back into it by finishing the feature set for the .NET Core Synchrotron. It's "feature complete" meaning all specced features of sync are in this branch, excluding legacy endpoints. There are a few bugs logged against it and it's really only useful as a super early test, while I fix some of the p1 bugs.

The federation sender continues to be reliable and stable, and we are prepping for the release of synapse 0.99.3 which made a few changes to the replication stream. For more info, please see https://github.com/turt2live/synapse-netcore-workers

Pattle has now moved to Flutter

Wilko has officially discontinued the previous version of Pattle, and is focused on their Flutter SDK and new version of Pattle based on it:
After some silence here but a lot of development, Pattle has now moved to Flutter. The new app is available in the same F-droid repository, you can just update. Note that you will have to log in again. If there are issues with updating, try removing the old app and installing the new one.

Also note that this version is still very basic and does not have all features of the old Pattle unfortunately. The reason that I chose to already replace it on the repo is that the old app will not receive updates anymore.

The current features are logging in and an overview of all chats. What is new is that data is now stored locally, so you won't have to do an initial sync everytime you open the app (which was the case with old app). What's also new is that I've decided to use more red, because.. I like red.

There is still a lot to do! Please notifiy me of anything that you think is missing, even though some things may be obvious (sorting chats based on date, chat avatars), some may not be as obvious to me!

If you'd like to contribute, the new repo is here. Note that many contributions will probably start at the SDK level. Pattle uses my own Dart SDK, which you can find here.

There is at the moment a very specific bug in Flutter, where on Android 7.1 with release builds, the app crashes when building a list widget. If you use Android 7.1 (like me) and you crash after logging in, that's the reason. It seems I can't do anything about it, sorry.

libaqueous (Matrix Dart SDK) and Aqueous client

Black Hat is continuing work on libaqueous, a Matrix Dart SDK.
Aqueous now comes with room categories and history messages support. Also, a lot of code refactoring is going on to change the backend store from plain json file to sqlite, which should improve the performance a lot. The room is at #libaqueous:encom.eu.org

Riot Web

  • Working towards bringing breadcrumbs out of labs
  • Adding image preview to file upload UX
  • Stability fixes for timeline
  • Defending against issues introduced when using Riot Web on a machine which is running out of disk space

Riot iOS

  • Grouped notifications are coming! We have added some logs to track why the notification setting is sometimes disables (#2348).
  • SAS device verification is still in progress but it should be released next week.

Riot Android

  • Three releases this week, to fix several bugs with the new EventStreamServiceX, and to fix issue with the Jitsi conference call (Riot.im 0.8.29). FDroid users should receive the upgrade soon.
  • Users are happy with the new notifications!
  • Valere is still working on SAS, we are reaching the end :).

RiotX (Android)

  • It's now possible to signout from RiotX.
  • The whole setting screen has been imported from Riot, as well as the Themes and some other small features (launcher icon, etc.).
  • Benoit is working on room creation, sdk side, and François is working on image upload.
  • We should start to integrate new design from Nad next week.

continuum (JavaFX desktop client)

yuforia has continued work on their client:
in continuum, moving storage of messages from plain text files to a database, simplifying code and improving performance

neo

f0x:
Neo now has .well-known implemented for login :D
video showcasing the different outcomes:

Synapse K8s images

Ananace has updated his k8s images for Synapse 0.99.3, and has been continuing work on other parts of the project:
I'll be writing a Helm chart for 1.0 as well, just haven't had time to do so yet.
I need to update all the references to TLS as well, as that's supposed to be left to kube-lego or cert-manager for a modern install

Federation Tester

Brendan and anoa have been working on the Federation Tester:
Following up on last week's effort, a number of issues on the Matrix federation tester, both on the backend and the frontend side, have been fixed, including fixing certificate validity checks, not following CNAME records in SRV records, fixing display of the SRV lookup in the UI, preventing some crashes, and a few more.

All outstanding issues on both the federation tester's backend and its frontend that could have preventing people to test efficiently how their server is performing in the context of Synapse's 1.0 release have now been fixed and deployed on https://matrix.org/federationtester/.

Synapse and Riot bounties

Aaron Raimist reports:
A few bounties have been added to Synapse and Riot recently to encourage community memebers to work on those projects. Although they aren't large enough to actually pay for development, I believe they can serve as a small push to help an already interested developer justify spending some time working on these projects.

Still more

pantalaimon has been seen in the wild, even appearing to run on Android. We'll get a little closer to the project and see how it's going in a future edition.

jj announced a new Python SDK for Matrix:

new, alpha quality, matrix python client for asyncio and with support for e2e encryption: https://github.com/SFTtech/aiomatrix
Polishing is needed but the basics do work already :)
L'autre from Calculate Linux announced that the project is now using Matrix for their communications, you can find their rooms in their newly created community: +list:calculate-linux.org.George Lucas György Lukács Georg Lukas brutally skewered Matrix with an April Fool's post suggesting that yaxim, an XMPP client for Android, will begin to support Matrix.

Matrix listed as one of the "Top Ten Tools" for Open Science practitioners

the whole point of Matrix is that its a protocol which many different suppliers can use so you can avoid nasty lock ins
That is certainly an advantage!

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-03-29

2019-03-29 — This Week in Matrix — 

Matrix Live

Tom & Matthew talk through the newly published Riot/Web roadmap! Be sure to read Tom's blog post which gets into his thinking for the roadmap too.

Matrix.org homeserver notice

The matrix.org homeserver will be down for essential database maintenance between 12:00 and 12:30 UTC on 2019-04-01

Synapse

Neil, Synapse overseer, reports on the acceleration towards 1.0:

We have much improved sytest support for Synapse worker mode, Hawkowl landed a brand new super fast super shiny user directory implementation, Brendan fixed a bunch of niggles in the federation tester and we finally got to the bottom of our sync caching bug that obscured accepting invites (thanks richvdh for sticking with it). Erik solved our presence spamming bug and anoa fixed some LDAP auth bugs and submitted a PR for certificate checking - one of our final blockers for Synapse 1.0. For all the latest checkout out our latest release candidate 0.99.3rc1.
Next week, we'll ship 0.99.3, we'll be looking at server key validity periods, adding a 3PID unbind API and starting work on tuning low powered Synapse installations.
https://www.arewereadyyet.com/ is still rising so keep banging to everyone you know that they ensure their federation certificates are valid.

Pantalaimon

poljar gave this update on his new project Pantalaimon:

Pantalaimon is a new project that acts as a reverse proxy for clients to connect to. Once a client is connected Pantalaimon handles end to end encryption for the client transparently.
The project is only a week old but already at a working prototype phase. A demo can be found here: http://webmshare.com/play/Qn4wg

This is a huge gain! Use of this project, as you will see in the video, permits any Matrix client to support End-to-End encryption of messages, by handling encryption/decryption in a daemon rather than in the client.

Watch the video, and you'll see gomuks, which does not support encryption, chatting in an encrypted room. Also, go chat in #pantalaimon:matrix.org and get involved!

Construct

Report from the Construct team:

The matrix Construct server has made significant progress this week implementing the 1.0 specification and is very close to a 1.0 release! Special thanks to our star tester Yan Minari and expert Matrix consultants Tulir and Max and C++ developers Jason of Zemos and Mujx of nheko for all their hard work to make this happen. The Construct now fully supports IPv6 and is ready to participate in fully end-to-to-end encrypted ipv6 networks like #yggdrasil:matrix.org and #cjdns:matrix.org.
This week also saw additions for .well-known support, m.fully_read and even DNS caching inside a matrix room shared between servers (which is really cool if you ask me).

I'd like to recognize our testers for their invaluable contributions this week, only a fraction of which are documented here: https://github.com/matrix-construct/construct/issues leading to the 1.0 release.
The Construct is written in C++ for maximum performance and scalability. It is the first fully federating server after the Synapse reference implementation. Your contributions in code and participation are essential to bring Construct to its upcoming release; get involved at https://github.com/matrix-construct/construct and in #zemos-test:matrix.org.

Riot Web

From the team:
We've been upgrading and optimising our Jitsi instance so people should see more reliable video conference calls, especially if they avoid connecting from Firefox over poor connections.
We've been squashing scroll jumps (where the timeline pops out of position unexpectedly due to images loading, etc.). We've come up with a radical reimplementation of the timeline (which should be imperceptible, except it doesn't jump) - try it out on https://riot.im/develop now.
Bruno, who has been working on scroll functional for Riot deserves a call-out - scrolling in new Riot web works great, and he may now be the most qualified dev on scroll: anchor outside of Mozilla or Google…

You can now get all Riot updates from #riot-web-announcements:matrix.org, the official room of Riot web announcements! You can especially get this update, which was also featured on Twitter:

Please upgrade your Riot web instances!

Additionally, Notkea has packaged Riot desktop for NixOS.

Riot iOS

Another case of UTD (https://github.com/vector-im/riot-ios/issues/2320) has been fixed. Some logs have been added to track push notifications that disabled themselves. SAS verification implementation is still in progress.
UTD = "Unable to Decrypt", messages as seen in Riot

Riot Android

  • Rework of EventStreamService, to fix many issues (crash) reported by users. The feature is available on the develop branch.
  • Also we are trying to upgrade Jitsi library, to fix other errors reported by users.
  • SAS verification implementation is still in progress.
Also, you may have already seen the use of Android 9-style notifications, featuring "Mark as read" + "Quick reply" buttons. This addition has started to make Riot Android my client of choice for burning through notifying rooms.

RiotX (Android)

  • Phase 1 started!
  • Backporting RageShake feature, with better handshake detection.
  • We are still fighting bug on the timeline rendering.

nheko packaging

@adridg:matrix.org:
Quick note that nheko (v 0.6.3) is now packaged for FreeBSD as well. The C++ code was fine (we use Clang, that does trip up some people) but I have Opinions about the CMake code (in particular that the find code for nlohmann/json.hpp, lmdb++.h and tweeny.h could use a lot of work -- if I feel perky I may come up with a PR). Thanks for the good work!

Dart SDKs

Black Hat has been using Dart and Flutter this week, and is making progress with an SDK and reference client:
I am trying to use libaqueous(Matrix Dart SDK) to create a cross-platform matrix client for Android and iOS.
Almost nothing works except Already a significant number of client features are available: login/logout, room list, basic timeline and message posting
Flutter is quite good for rapidly building mobile apps. ? Strong-typed json serialization/deserialization in Dart is a bit difficult at first, but I managed to solve that.
the repo is here, the SDK is here, and the room for discussion is at #libaqueous:encom.eu.org

Debug build apk from Gitlab CI is here

Notes on manually upgrading rooms, from TravisR

TravisR has written a brief guide to manually upgrading rooms:

https://gist.github.com/turt2live/a99c8e794d6115d4ddfaadb72aabf063

Note that you generally won't need to do this.

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-03-22

2019-03-22 — This Week in Matrix — 

Matrix Live with Kitsune

I chatted with Kitsune, maintainer of libQMatrixClient, Quaternion and Spec Core Team member. We talked about the history and future of these projects, platform preferences, the importance of decentralisation and more.

Synapse and the road to 1.0

Neil, Synapse-dev wrangler #1:
Huge thanks to everyone who has helped increase the number of ‘1.0 ready' synapse installs. If you don't know what this means, see our blog. https://arewereadyyet.com reports > 60% adoption on a per server basis, and high 90s on a per user basis. We are now really close to being able to ship a 1.0 release candidate and start the 2 week countdown before releasing 1.0 proper.

This week we have focussed on performance, richvdh has been working on batching of outgoing read receipts and hawkowl shipped a much more performant implementation of user search. Erik has been putting the state compressor through its paces, he saw one room compress down to 1% of its original size. Andrew has been focusing on ensuring spec compliance on various Synapse endpoints and is currently looking at some bugs in the federation tester.

NixOS-Synapse setup

Jonas Schürmann shared his config for Synapse on NixOS:
I open sourced my NixOS-Synapse setup: https://gitlab.com/MazeChaZer/nixops-servers/tree/master/matrix
#NixOS:matrix.org for more.

Pattle, lots of progress and Dart SDK planned

Lots of news from Pattle, the project aiming to create clients for multiple mobile platforms. All quotes below from Wilko.
Pattle for Android now has an F-droid repository: https://fdroid.pattle.im/

It's the most up to date version straight from the pipeline, so not necessarily stable.
You can now scroll up and load history

As part of the project, Wilko also announced the intention to create a Dart SDK:

I'm currently working on a Matrix SDK for Dart, which will be used for the Pattle rewrite in Flutter. The reason for this is outlined here. To summarize: My goal for Pattle is to release for not only Android but also iOS and web, with a single code base. Other reasons include that Android native development is just bad, and the fact that I'm not too happy with the official Matrix Android SDK design and documentation. I will maintain and also add some features to the current version of Pattle, to try things out. The Flutter version will replace the native one once the features are in sync.

Riot iOS

We've released a hotfix release 0.8.4 on App Store that fixes following issues:
  • Unable to open a file attachment of a room message.
  • Unable to share a file with whitespace in filename.
We are working on iOS 12 notifications features.

Riot Android

  • Improving new notification system
  • Implementing SAS verification

RiotX (Android)

  • Setup CI
  • Finishing Phase 0

Dimension sticker packs

TravisR has introduced sticker packs for Dimension:
Dimension now has beta support for custom sticker packs. To create a sticker pack:
  1. Start a conversation with @stickers:t2bot.io
  2. Say !stickers newpack and follow the prompts.
  3. Share the URL with your friends.
To add the sticker pack to your sticker picker:
  1. Make sure you're using Dimension as your integration manager.
    • Not sure if you are? Click the 4 squares in the top right of the room in Riot - if the dialog is titled "Dimension", you're all set :)
    • If you aren't, check out https://dimension.t2bot.io
  2. Click on the smiley face to the right of where you type messages then the Edit button in the top right.
  3. Paste the URL of the sticker pack into the box and click "Add Stickerpack".
  4. Start using your new stickers.
These instructions are also available at https://github.com/turt2live/matrix-dimension/blob/master/docs/custom_stickerpacks.md as is the admin/operator guide for running your own sticker bot (you're not stuck with using t2bot.io unless you want to be).
Custom sticker packs are still beta while the proposals to share this with the wider Matrix ecosystem are still works in progress. This serves as a proof of concept to see how crazy of an idea it is to have stickerpacks-as-rooms (yes, they're just plain Matrix rooms under the hood) and what needs ironing out before moving ahead with the MSC.

matrix-notification-profile-manager

Brendan has created a notification profile manager:
Over the past few weeks, I grew a bit fed up of always having to turn on and off every notification rule each time I'm having a slight change in what I'm working on or depending on what mood I was in (e.g. want to focus only on work-related stuff and nothing else, don't want to hear about work at all, somewhere in the middle, etc.), so I built a notification profile manager for Matrix. It's available both as a command line interface or a Go package in case people want to build on top of it.

It allows one to take a snapshot of their current notifications settings and save that as a profile, so that this profile can be applied later. It also allows one to delete a profile or list the existing profiles (more features to be added as time goes by). In order to make the whole thing interoperable with other projects building on top of the Go package, it also uses the user's account data on the user's Matrix homeserver to store profiles.

neo v4: iris

F0x has recommenced development on the Matrix client Neo:
After discussion following https://cyberia.social/@foks/101785513826000032 I've resumed development on Neo. Suggestions are very much welcomed on the pad and mastodon thread
I'm implementing components one by one now, with just mocked events. Actual Matrix integration will come when the gui components are ready.

Neo is now partly integrated with matrix-js-sdk because I grew tired of having to write my own mock events. There's a basic authentication flow, with 0 error handling, and parsing of m.text and m.image events

Check out https://git.lain.haus/f0x/iris for the source code and see a working version at https://neo.lain.haus/neo

f0x also said:

it would be much appreciated to get some feedback on how I implemented matrix-js-sdk, had to do some weird stuff to make React update
I'll take a look but would love anyone with more experience of the SDK to get in touch with the f-man.

solari[z|s]ed wallpaper

ma1uta shared this awesome Matrix wallpaper, created by @kolonsky:092918.xyz via https://linux.pictures/projects/solarized-dark-wallpaper

mautrix-telegram 0.5.0 released

tulir is up again with his Telegram bridge:

mautrix-telegram 0.5.0 was released after I finally fixed the bug that was causing the bridge database to lock up. It turned out to be a single line of ORM usage that I had missed while converting everything to use SQLAlchemy Core. The full release notes are at https://github.com/tulir/mautrix-telegram/releases/tag/v0.5.0.I also released v0.5.1 to fix a bug that made the DBMS migration script not work and Python 3.5 compatibility. I wouldn't recommend using Python 3.5 though, I'm going to drop support for it some time after Debian 10 is released

Shevski mentions Matrix on BBC Radio 4

Shevski from the #redecentralize organisation was interviewed on Radio 4, and mentioned Matrix:

Extras

Scylla has been receiving regular updates, no release to report but the project keeps going. #scylla:riot.danilafe.com

This React Native client is not announced so don't look at it

My pal Doug shared his frustration with the broader state of the chat ecosystem after reading that teens now use Google Docs for their chat needs (and not the chat feature, the document itself!)

I love that you've got Amazon with their Alexa messaging, Apple in their own bubble with iMessage, Facebook doing chat 3-ways and Google trying 50 ways to do chat. And that's before you even get into things like Slack, Discord, Telegram, Riot, Line, WeChat etc etc. And then the current hot way to chat is in a document...
I mean, how much money is being invested in trying to create the perfect chat solution?
For the record, we were chatting over Matrix…

That's all I know

That's the news, if you have something to say, or something to add, then you should go to #twim:matrix.org and share it. If you have other projects to discuss, come share them. If you'd prefer to come quietly, my door is always open: @benpa:matrix.org.

See you here next week, and on Matrix!

This Week in Matrix 2019-03-15

2019-03-15 — This Week in Matrix — 

Matrix Live S3E17: Hello Ryan

This week you're stuck with me, but I'm chatting to Ryan, who works on Riot web. Having previously worked at Mozilla, Ryan has a LOT of interesting things to say about Firefox, the browser market, the importance of decentralisation, Matrix being GREAT, and more.

arewereadyyet.com: Matrix 1.0-ready Federation

https://arewereadyyet.com is not just an amazing domain we somehow managed to buy, it's also the first place to look for progress towards full Matrix 1.0 readiness. Read more details at https://matrix.org/blog/2019/03/15/matrix-1-0-https-arewereadyyet-com/.

Spec

Lots of activity but most notably MSC 1915 (a blocker for Matrix 1.0) is making progress. https://github.com/matrix-org/matrix-doc/pull/1915

Synapse . . . 1.0?

It's all about 1.0 for the Synapse gang this week. This means performance improvements across the board in the form of read receipt batching, user directory (room directory coming soon!) and rate limiting on log in and registration APIs.

Brendan shipped the low bandwidth CoAP proxy we demo'd at FOSDEM

As well as a bunch of spec implementation projects to ensure that Synapse (and Sydent) are ready for Synapse 1.0.

Synapse workers projects

Turn-of-phrase of the week from Half-Shot ("make it more performant and less crashy"):
synapse-netcore-workers is progressing as strongly as ever. This week has mainly been supporting a couple of users trying to use the fed sender, and also trying to make it more performant and less crashy. I've been using it solidly for two weeks now, and by and large it's been working nicely :)
Black Hat has been working on Cortex, a similar project in Rust:
Support for replication protocol in Cortex is mostly complete. A federation sender worker implementation is being worked on. If anyone is interested or wants to contribute, please go to #cortex:encom.eu.org

Construct

Lots of progress this week. I'd like to give a special thanks to Yan Minari for another great week of testing, bugfixes and feature requests.
  • We implemented features related to room directory lists, reporting content, ignoring users, VoIP turnServer, prev_content in state events.
  • Improving SSL: allowing configurable lists of ciphers, and sending/receiving SNI.
  • At the lower level: adding support for Linux AIO features that are present in newer kernels, giving a nice performance boost.
For more Construct news watch the repo or join #zemos-test:matrix.org

New Client for Android: Pattle

Wilko announced Pattle, a Matrix client for Android:
Hey all, I've been working on my Matrix Android app, Pattle! The goal of Pattle is to be an easy to use app for Matrix, with it's design inspired by popular apps such as WhatsApp and Telegram. Development happens here, and contributions are encouraged! The app is not currently suited for daily use, but some functionality is there, such as registering, logging in and viewing chats. Currently it's an Android only app using the official Matrix Android SDK, but the plan is to support iOS and web too, in the future. There's also a sort of design document available, stating how Pattle differs from standard Matrix apps and what it's goals are. The intent of the design document is to make development easier later on for other platforms

Quaternion 0.0.9.4 beta 2 available

kitsune:
Quaternion 0.0.9.4 beta 2 (too many numbers? That too shall pass) is out, with bugfixes and translation updates. Notably, Quaternion won't crash on upgraded rooms in some cases, and won't cry in #gsoc:matrix.org and other v3 rooms. Translators are still strongly encouraged to push forward - due to all the features and fixes, there are many untranslated strings across the board! Also, some bugfixes are still in order before we can call the release RC, and some of them are really easy - so if you'd like to contribute, it's a great time to start!

Riot Web

  • Preparing for 1.0.4 release with lots of small polish fixes
  • Planning our roadmap for the next few quarters

Riot iOS

iOS released 2 times. Last release was to fix an issue with invalid scalar token. Review of one PR from the community for iOS10 notifications. Started implementing device verification with emoji.

Riot Android

We've released v0.8.25 on Thursday, containing refresh of invalid scalar token, and some bugfixes. Links on m.notice messages are now clickable again.
Started implementing device verification with emoji.

RiotX (Android)

  • We started to setup build tools and CI configuration.
  • The timeline scroll issues are addressed.

FluffyChat 11 released

Ubuntu Touch fans rejoiced this week as a new version of FluffyChat was made available: https://open-store.io/app/fluffychat.christianpauly
  • Improved stability and performance
  • New translations - thanks to all translators
  • Design improvements to make FluffyChat look more like a common Ubuntu Touch app
  • Better tablet support
  • Lots of Bugfixes which caused a critical error
  • Fixed the automatic scrolling up to the last seen message
  • Fixed disabling account

miniVector v0.8.25

miniVector is a minified Android Matrix client derived from Riot Android. v0.8.25 keeps it up to date with Riot Android.

Matrix Ruby SDK

Ananace is returning his attention to the Matrix Ruby SDK:
I just realized that I haven't had lazy loading activated by default in the Ruby SDK, despite having had lazy loading code in place since ages back, so now that's going to be the default value going forward.
Further:
I started hacking - just a couple of hours or so ago - on a notification sender for The Foreman, a server orchestration system. So it can forward notifications to Matrix. https://github.com/ananace/foreman_notification_send
If you're using, or considering using, The Foreman for orchestration this may be very useful.

maubot

tulir:

maubot plugins can now add their own endpoints to the main maubot webserver. The pingstat plugin I announced last week uses this feature for the leaderboard widget: https://maubot.xyz/_matrix/maubot/plugin/pingstat/stats?room_id=!MbRaSiMIRhhxDtJENL:maunium.net

matrix-appservice-bridge 1.8.0, matrix-appservice-irc 0.12.0-rc1: room upgrades and more

Half-Shot:
matrix-appservice-bridge got a 1.8.0 release last night, featuring automatic handling of room upgrades for all your room upgrade needs. Providing your bridge uses the RoomStore as designed, it's literally a few lines to enable :). Changelog here

What is this? A matrix-appservice-irc release? No, it's a release candidate. Announcing that 0.12.0-rc1 is now out and about for folks to play with. More IRC updates to come in the future :)

mautrix-whatsapp

tulir:
mautrix-whatsapp now has support for postgres databases thanks to a pull request by @Rennerdo30

mautrix-telegram

tulir:
mautrix-telegram got a pull request with a pytest setup and a few unit tests by @V02460. I haven't merged that one yet, but will soon.

matrix-docker-ansible-deploy supports Dimension

This is really neat, and a shout-out that these playbooks are my preferred way to install Synapse and other components. Slavi:
Thanks to NullIsNot0, matrix-docker-ansible-deploy can now (optionally) install the Dimension Integration Manager.
The playbook can now also assist with serving the base domain from the Matrix server, thus making it easier for some folks to set up well-known Server-Delegation.

Self-hosting guide for NixOS

Florian:
I wrote a Matrix self-hosting guide for the NixOS operating system: Check its progress and give it a test if you're a fellow NixOS user!

banhammer: new bot for applying a ban policy

jcgruenhage reports that:
I wrote a small bot that takes a kick/ban policy from room state from all rooms it's a member of and tries to enact that policy. In practice that means it applies a regex to all MXIDs and tries to kick/ban them based on that. It's been a request of TravisR , source code is available at https://gitlab.com/jcgruenhage/banhammer, documentation is still lacking but will hopefully soon be added

matrix-wug support for Navajo script

Continuing his theme of Native American languages, Dandellion added Navajo script to matrix-wug.

FreedomBox Tutorial: Setting Up a Chat Server with Matrix and Riot

It's been possible for some time to set up a Matrix server with FreedomBox, and they just recently released a video tutorial showing the process.

Around the Internets

There were a whole lot of outages for the big names this week - good time to think about self-hosting?

That's all I know

So that's all I have to say! I hope you enjoyed this edition of This Week in Matrix, and whether you did or you didn't, I'd love too hear from you in #twim:matrix.org. If you have Matrix news to share, that's the place to come and do so!

This Week in Matrix 2019-03-08

2019-03-08 — This Week in Matrix — 

AreWeReadyYet.com?

From Neil of the Synapse-team

Folks, in the run up to Synapse 1.0, if you are running your own homeserver now would be an excellent time to check that your TLS certificates are up to date. Point your server name at https://matrix.org/federationtester/ and if there are errors check our handy FAQ on how to fix it. If you do not have valid TLS certificates Synapse 1.0 will refuse to federate with you.

benpa has put together a federation checker to quantify how many homeservers are 1.0 ready - https://www.arewereadyyet.com/ - It currently stands at 50.5% let's try and get that to 60% over the weekend.

Aside from all that, the team have been working on preparing for Synapse 1.0, you can track our progress here. We promise not to just land 1.0 out of the blue - we'll give everyone a 2 week warning to give stragglers a chance to get their certificates in order.
And this week we have Neil and Erik talking about this in more detail on Matrix Live

JeonServer and related project updates

ma1uta has been working on Jeon - Java interfaces to the various Matrix APIs - and is now getting ready to start work on a homeserver. He was previously asking for a name for this project, but might now have settled on "JeonServer".

First Release Candidate of the Jeon Project with upcoming Client-Server API 0.5, Server-Server API 0.1.1, Application API 0.1, Identity API 0.2 and Push API 0.1. Also the RC of the jmsdk has been prepared with Java Matrix Client for Client-Server API 0.5. Changes in the C2S: Added the m.push_rules event, removed presence list methods and other minor fixes. Added S2S API of the 0.1.1 version. I prepared a very simple page https://ma1uta.github.io/ with links to the swagger schemas (json and yaml) for all Matrix API which generated from the Jeon code.
Chat more in #jeon:matrix.org or #jeon:ru-matrix.org.

Construct updates

There's a lot of progress, a few endpoints and features have been implemented this week such as Room Tags and all of the spec features for /createRoom. Most of the progress has been with testing and bugfixes thanks to Yan Minari, and tulir and mujx. We've fixed several interactions with synapse such as invite accept/deny and synapse's ability to join and leave construct created rooms without any issues. Lastly and most important, we've generated an official issues list thanks again to our star tester Yan Minari available here https://github.com/matrix-construct/construct/issues
For more new Construct news watch the repo or join #zemos-test:matrix.org

OpenSAPS: Open Slack API Server

pztrn has created a new mechanism for relaying apps that use Slack webhooks into Matrix:

To everyone who wonders how to connect his application to Matrix (at least for notifications of some kind) - use OpenSAPS! It just reached v0.1.0. OpenSAPS stands for Open Slack API Server and able to retransmit messages from applications (like Gitlab or everything that can send data to Slack) to somewhere else. Right now these "somewhere else" is a Telegram (with HTTP proxy support) and Matrix! Written in Golang to ensure minimal memory footprint. Take a look at https://gitlab.com/pztrn/opensaps Tested with Gitlab and Gitea but should work with almost any service. Join #opensaps:pztrn.name to talk with developers or get help. BTW, there is OpenSAPS instance in our room that transmits everything from gitlab.com into room! (almost) immediately after 0.1.0 comes 0.1.1, with fixed URLs parsing and fixed inability to login into servers which use .well-known for delegation. It should work [with other webhooks]. If something strange happens there is also a possibility to write own parser to make everything work :)‚ Tested with Gitlab and Gitea ATM. Share application names that work, I'll start to make a list of them. :D

matrix-puppet-bridge: matrix-puppet-slack and matrix-puppet-hangouts updates

tom reports from #matrix-puppet-bridge:matrix.org:

MiniVector update

bubu let us know about MiniVector updates
Minivector, a minimalistic fork of riot-android had a new release last week, getting rid of a few more unused dependencies. This brings the final apk size down to 13mb vs riot android's 25mb. This work was done by @hrjet:matrix.org. The project room is here: #miniVectorAndroid:matrix.org

matrix-docker-ansible-deploy, now with Discord and email templates

The volume of discussion about installing/configuring Synapse and other Matrix-related components is like a subculture in itself. Standing tall within this is Slavi's matrix-docker-ansible-deploy collection of Ansible playbooks. They're a great way to quickly and reliably get a Synapse instance running.
Thanks to Lionstiger, matrix-docker-ansible-deploy now supports Discord bridging via matrix-appservice-discord.
Those wishing to give it a try can refer to the Setting up Appservice Discord bridging documentation page.

Thanks to Sylvia van Os, matrix-docker-ansible-deploy now has the Ability to customize mxisd's email templates

Quaternion 0.0.9.4 beta

kitsune:
between chasing bugs in Quaternion 0.0.9.4 beta (translators, your help is hugely needed to catch up with new and updated strings) there happens almost literal bikeshedding in #qmatrixclient:matrix.org, under an excuse of discussing The Universal Algorithm to Colour Usernames. Join the fun!

Bifrost bridge gatewaying

Half-Shot:
Bifrost is now starting to comfortably support gatewaying. For those that don't know, gateways allow a remote user to participate in the matrix network without prior bridging, it's very fancy. The latest changes are that XMPP clients can now ask for the public room list by querying the bridge component. There is a video on this using the Yaxim XMPP client on Android (Credit to Ge0rG). Come chat with us in #bifrost:half-shot.uk
You can check out the video of the bridge in operation here:
 

Spectral development restart

Black Hat:
Spectral development now continues after a short break. The new "material design" has been merged into master, along with a few bug fixes. I plan to work on Kirigami port in the following two weeks.

Fractal

Alexandre Franke reports on Fractal:
Since our last update about Fractal we landed typing notifications, found out we actually weren't logging anything, recovered the ability to log, and restored spellcheck support.
We are also now tagging uploaded audio files as such and adding thumbnails to image files, courtesy of our Outreachy intern, and we fixed a bunch of other things.

#ping:maunium.net

tulir making crazy maubots this week:
I made a room for !pinging echo maubots: #ping:maunium.net. The room has a bunch of echo bots, currently on maunium.net, c.mau.dev and matrix.vgorcum.com. It also has a new maubot plugin called pingstat, which collects the pong data and makes a leaderboard website. The website is linked to the room as a widget.
Check out instructions to get your own maubots setup here: https://github.com/maubot/maubot/wiki/Setup

synapse-netcore-workers

Half-Shot:

Not much news to report on the netcore-workers other than it's maturing and we have nice things now like logging, metrics and a docker image you can run at home. I'm running the federation sender fulltime on half-shot.uk to dogfood it and will announce when I think it's good for general consumption :)
Related: Black Hat is investigating a similar project in Rust. Anyone interested in that please do go chat, and take a look at the repo they've created.

matrix-wug, IPA rendering bot, gets support for cherokee

Dandellion on matrix-wug:
This is "script" or written language has a very interesting story behind it, where the creator of it actually couldn't read and write. Regardless, he wanted to write down his language, and developed his own writing system.
The characters look a lot like latin characters because he tried to imitate the characters of a bible. Just a fun history lesson!

weechat-matrix

Paul created a dockerfile to install weechat-matrix:
since weechat-matrix is a bit involved to install, I create a dockerfile that takes care of it: https://github.com/poljar/weechat-matrix/pull/60 . And people allergic to docker can look inside to check the steps (just reading the readme doesn't give a full picture)

modular.im

Modular.im is a Matrix-as-a-SaaS offering. It's suitable for users who want the benefits of having their own Matrix homeserver, but don't want to host and run one.

There are some new announcements this week:

Today we are pleased to announce that you can now customise your Modular hosted Riot at the touch of a button, through the Modular host admin interface. Better yet, this is available to all Modular customers at no additional cost.
Today we are also launching a proof of concept for purchasing additional content via the Modular integration manager.
For the initial experiment we're offering a set of "snazzy", limited edition Matrix stickers for the princely sum of $0.50. These are digital versions of the Matrix and Riot hexagons that some of you may have seen in real life.

Still more!

decred.org are an organisation concerned with blockchain technology, and they also use Matrix for their communications! They now have a stickerpack available in Riot, so if you'd like to use their stickers you can add the pack and get going with blockchain-related memes.

If you have a stickerpack you'd like to see included, please let me know.

Celebrating the creation of a new homeserver instance at kde.org, Jonathan Riddell has written an article.

sortebill created #drums:matrix.org:

I've made a room for anyone interested in drums and percussion. Acoustic, Electronic, Played or Programmed, anything goes as long as it's rhytm related. The room is focused on both playing/programming drums and equipment.
There was a somewhat longstanding bug that affected a number of users: often manifesting as unexpected and frustrating "Unable to decrypt" messages - this has now been fixed, take a look at https://github.com/vector-im/riot-web/issues/6838

They think it's all over...

It is now! If you'd like to have your project included in this post, come chat to us in #twim:matrix.org!

This Week in Matrix 2019-03-01

2019-03-01 — This Week in Matrix — 

No Ben this week, apparently he is allowed to go on holiday from time to time. Also no Matrix Live because we are terrible people - bring back Ben, that's what I say.

Quaternion

kitsune:

Quaternion (master branch, and upcoming v0.0.9.4) can now open rooms by their aliases or ids upon pressing Ctrl+O, as long as those rooms are already in your room list (opening arbitrary public rooms will come in later versions). You can even paste matrix.to URIs for users (will open direct chat) and rooms in the same dialog. Navigation to known rooms inside Quaternion also works.

libQMatrixClient 0.5 is out - with members lazy-loading, room versions and upgrades and much more: https://github.com/QMatrixClient/libqmatrixclient/releases/tag/0.5.0
Which is, err, pretty amazing actually. As far as I know this is the only independent SDK supporting lazy loading and room upgrades. Congratulations.

weechat-matrix

Poljar has been hard at work on weechat-matrix

Matthew reports:-

weechat-matrix's e2e support is really impressive (via matrix-nio and python-olm). It can only read rather than send right now, but otherwise looks to be massively on the right track. It even does fingerprint-based verification!

Synapse

We shipped 0.99.2 this week, it's a point release containing all the usual bug fixes and perf improvements. We have also been taking a look at our docs and trying to improve where we can.

Hawkowl has spent some time improving CI so that we don't get queued up for hours waiting for builds (woo).

Admins - your weekly reminder that if you've not already done so, you must ensure the TLS certificate on your federation endpoints is no longer self signed - see our handy guide for all the details.

matrix-puppet-bridge

tom:

matrix-puppet-bridge v1.17.0 has been released! This release:
Matrix rooms representing remote rooms being joinable by anyone who knows the room ID (which is generated, at least in part, from the remote room ID in all the matrix-puppet-bridge applications) was a big deficiency, and it's finally resolved. It wasn't known whether or not we could do this, and have our ghost users still be able to join the rooms (they need to be invited instead of just joining themselves), until it was attempted and tested in a few of the bridge applications.
Because it is a big deal, new minor versions of matrix-puppet-slackmatrix-puppet-facebookmatrix-puppet-hangoutsmatrix-puppet-signalmatrix-puppet-imessage and matrix-puppet-groupme, bumping the matrix-puppet-bridge version to 1.17.0, have been released.

Riot iOS

  • Support .well-known data from login response
  • Create right permalinks for room v3
  • Fix builder to Xcode 10.1 in order to still be able to release
  • Update swift version. Add swiftLint

matrix-media-repo

TravisR reports that:
matrix-media-repo has alpha-quality support for s3 (and s3-like services) on the travis/s3 branch. Intrepid testers are encouraged to give it a shot, and report bugs. Caution: may upload your cat.

Scylla

It's been a little while since we saw any news about Scylla, a web-based client written in Elm. VaNilLa said:
Scylla, the Elm-based Matrix client, has received a few improvements. Included in this update:
  • Files that are uploaded now keep their original name (as opposed to being called File)
  • Sent messages are displayed right away, instead of when they are delivered to the server
  • Usernames are only shown once per several consecutive messages, to avoid clutter Some CSS changes have been made to keep the interface looking clean
Almost forgot! You can find Scylla's source code here and a live instance here!

Riot Android

  • Implementation of .well-known support (SDK and Riot)
  • Minor change on some colors of the themes (link, home badges)
  • Many issue will be fixed regarding linkification
  • KeysBackup: improvement on recovery process: importing keys step is 8 times faster, and user get more feedback during the process which can take several seconds
  • We will prepare a new release for the beginning of next week.
  • PlayStore new descriptions have been updated for the following languages: Bulgarian, German, English (US), French, Hungarian, Russian and Chinese (Taiwan).

RiotX (Android)

  • Timeline:
    • HTML formatting
    • Implementation of pills (need optimization)
  • Many Github issues have been created to track parity with the Riot Android

Riotic: new fork with updates

Aaron Raimist has made some updates to Riotic, which was a good chance for me to revisit it. It works nicely and is a great alternative to the Electron version of Riot. I also like being able to use https://riot.im/develop as an app.
I've slightly tweaked Joakim Ahlen's Riot wrapper for macOS, riotic, which uses the native WKWebView instead of Electron. I updated the app to be sandboxed so it has very limited access to your system. I also updated the interface to follow macOS conventions and updated it to use the latest version of Swift.

riotic does have some limitations though. Riot doesn't support VoIP on Safari so riotic can't support VoIP either and WKWebView doesn't support notifications as far as I can tell. Right now it uses a really old Riot icon, maybe I'll ask about using one of these community made icons https://github.com/vector-im/riot-web/pull/4474.

It does have some advantages over the official Riot Electron app though. The app is only ~12 MB compared to Riot which is ~180 MB, it also uses significantly less RAM. riotic also allows you to pick what Riot URL to use so you can run /develop as a desktop app.

You can download riotic from https://github.com/aaronraimist/riotic/releases/tag/v1.1.
 

synapse-netcore-workers

Half-Shot has been working on synapse-netcore-workers:
The synapse-netcore-worker project has continued to evolve. You can now federate with other servers using the federation sender implementation. It supports everything except device lists at the moment, so it supports PDUs/EDUs and can just be connected up to one of your existing synapse instances. It's not been battletested enough yet to be put in production (hence no dockerfile), but it's very fast.
Oh and for those of you who don't know, "synapse-netcore-worker" is Travis's .NET implementation of synapse workers, the room can be found at #synapse-netcore-workers:t2bot.io.
If you're as uninitiated as I was three days ago, this project is a replacable worker component for Synapse, which just happens to be written in .NET.

But wait, there's more! Half-Shot continues with

To give an update to the earlier exploits of synapse-netcore-worker's federation sender, we've still got a few more things to iron out before we can suggest people use it actively. The hit list of remaining things to fix is in https://github.com/turt2live/synapse-netcore-workers/pull/5

Mautrix Whatsapp

That Ben guy eh? When he's not swanning off on holiday and having fun, he's writing super groovy guides to getting whatsapp bridging up and running. You don't even need a real device. Check it out.

Ruby SDK

Ananace reports that:
Just merged the protocol split branch I've been working on for the Ruby SDK, including a first PoC for an application service base. Not tested in any actual use as of yet, but expect Things TM in the next release.

Koma

yuforia reports that:
in project koma, a new bot picsay is created. It like the classic easter-egg program cowsay, but it uses actual photos instead of ASCII art. It configured to use any image just by editing a json file. So you can run your own version for fun.

TChap

Willem reports that:
I took some time to hack on Tchap again. This time I disabled virus scanning of thumbnails and downloads in Tchap to be able to see avatars. I also wrote a non-scanning virus scanner API implementation to be able to see files, pictures and videos that are sent. The updated Tchap can be found at https://github.com/14mRh4X0r/tchap-android, the virus scanner API implementation at https://git.snt.utwente.nl/14mRh4X0r/tchap-media-scanner.

Debian

andrewsh reports that:
Unless things get seriously on fire in the coming months, Debian buster will have Synapse 0.99.2 plus something newer in backports

Matrix WUG

Dandellion's Wug now supports Inuktitut Syllabics and Iñupiatun Orthography. In the bot's own words.
Hi I can help you translate X-SAMPA, Z-SAMPA to IPA, and transcribe into proto-indo european notation! Use (x/z/p) together with either / or [] as delimeters x/"hEloU/ z[or` 5aIk DIz] p/mreghnom/

I also can transcribe to Inuktitut Syllabics like this: i[tusaumaqattautijjutinik aulattijiit]. Find my source at https://github.com/Dali99/matrix-wug

New Rooms

Aaron Raimist has created a new room for Formula 1 fans:
Now that the Formula 1 season is getting underway it's probably a good time to announce @CIA:matrix.org's new(ish) room: #f1:matrix.org When this blog post is released there will be 16 days left before the first race of the 2019 season
There was previously a Formula 1 room but it was merged with Snoonet's IRC channel which tends to be extremely busy. This is a matrix only room.
That's it folks, your normal Ben orientated programming will continue next week. Bring back Ben, bring back Ben.

This Week in Matrix 2019-02-22

2019-02-22 — This Week in Matrix — 

Matrix Live S03E15 - Push To Talk and XMPP Gatewaying!

(sorry that the audio from Nad & Half-Shot went missing from the recording... :( )

nheko_reborn roadmap

red_sky has continued to work on nheko, and shared a general roadmap in #nheko-reborn:matrix.org:

The remainder of 0.6.x is expected to be bug fixes. This includes bug fixes in mtxclient as well as nheko.
0.7.0 will be the next feature release. The end goal here is to add some of the capabilities that people have been requesting, and other things that people haven't been requesting.
AFTER 0.7.0 releases, I will then focus on updating the encryption to include more than just text messages.

libQMatrixClient project, Quaternion

kitsune has been writing the codes this week, Quaternion now supports room upgrades and more:
Master branch of Quaternion can now store access token in your secure storage/keychain, better integrating into frameworks of GNOME and KDE, as well as macOS and Windows.
Also, you can see the room version and upgrade rooms in Quaternion (just like Matthew said on FOSDEM ;) ) - this feature is enabled by libQMatrixClient, so other clients are welcome to support room versions/upgrades too!

All this is within the work on the upcoming release of libQMatrixClient 0.5 and Quaternion 0.0.9.4 - stay tuned!

Oh we will. Spectral support for these new features when?

Synapse


Neil:
With all the interest generated through Riot 1.0 we've seen a surge of new and returning users on matrix.org. So we've spent much of the week investing in stability and performance. We'll ship a new point release (0.99.2) next week.
Once again a big flashing advert that Synapse admins should no longer be using self-signed certificates for their federation API. Synapse 1.0 is scheduled in early March and will not accept self signed certs - so servers that do not update will lose the ability to federate with 1.0 servers. Updating your certs is straight forward, see our guide and FAQ for more info.

Matrix Ruby SDK


Ananace has continued his work on Ruby Matrix SDK:
Just tagged and pushed a new version (0.0.4) of the Ruby SDK, since I've completely forgotten to do that for a while now.

What's new?
A whole bunch of small stuff I did, mostly just additional exposed methods and parameters, and some fixed issues as well. I did add support for HS URL discovery using both SRV and .well-known though, which I think is probably the largest new feature.

As if all this wasn't enough, a room on Matrix!
Created a discussion room for the Ruby SDK - since it seems like there are now people who have actually used it apart from me; #ruby-matrix-sdk:kittenface.studio

synapse-netcore-workers

A project rarely seen has recieved a lot of attention this week!

Half-Shot has been working on federation workers:

I've been working on a federation worker for synapse written in .NET to improve outgoing federation performance. It's still pretty barebones, but progress can be followed at https://github.com/turt2live/synapse-netcore-workers/pull/5

TravisR too has been working on the project:
I'm also working on my own netcore workers project by setting up an appservice sender. It's also very barebones (doesn't even send a transaction), but is being tracked here: https://github.com/turt2live/synapse-netcore-workers/pull/6
Also, if you'd like to follow along with the project from the comfort of Matrix, head on over to #synapse-netcore-workers:t2bot.io

koma project


yuforia is working on koma:
Fix txnId generation that made sending messages unreliable. Work around a bug in OkHttp that crashed the dispatcher thread when the server certificate was not received in time.

Good thing to fix! Here's a screenshot of Continuum-desktop, the client from koma:

yuforia continues:
Fix text processing in the bot avecho, feel free to try it out in #koma-im:matrix.org

mxisd v1.3.1 released

Max:
mxisd v1.3.1 is out. It is a maintenance release that fixes a set of regressions following the changes in v1.3.0 to massively improve performance. If you haven't updated to the v1.3 branch, now is the time!

Construct progresses toward Matrix 1.0 Spec


Over the past three weeks Construct has made rapid progress with covering the Matrix 1.0 specification!
Last week we implemented room version 1 and room version 2 authentication rules.
This week we implemented device support and management, and have nearly wrapped up successful End-To-End Encryption testing.
The Construct is a community-driven server implementation written in C++ for maximum performance. To all experienced C++ developers out there: we need your contributions to accelerate and test the 1.0 release!
Please check out https://github.com/matrix-construct/construct and stop by #test:zemos.net / #zemos-test:matrix.org today!

uMatriks planning

mariogrip announced his plans for going ahead with uMatriks:
  • Clean up c++ code
  • Make the c++ code less heavy, we should focus on speed
  • Offload js code to direct qml binding, with this i mean instead of having ablock if-else code that modifies qml object that runs on component load, we do this directly in qml: see 0a800fc and https://github.com/uMatriks/uMatriksblob/0a800fcdc0af4fa2e08526dbff88e06bcb591779/uMatriks/componentsChatItem.qml as an example for a cleaner code
  • Make all ui depended calls async, we should NEVER block ui
  • Offload heavy js logic to c++
  • Cleaner UI, with less crust
  • Async everything
  • Merge our WIP call support
  • Finish impl of call support (maybe move to a standalone webrtc module)
  • Slowly start moving to QQC2
  • Implement reply
  • Implement sending of media

Riot Android

  • Finalising version and delivery of Riot 0.8.23 on the Play Store.
  • RiotX: testing library to render events in the timeline.

Debian packaging

andrewsh:
Since Debian has entered soft freeze, updates to Synapse have been slow lately, but nevertheless we've got 0.99.1.1 in

matrix-archive-keyring


Linda is continuing to prepare matrix-archive-keyring:
matrix-archive-keyring (from last week's TWIM) is ready to be uploaded to Debian. Attempting to get it uploaded to unstable right now as I speak.

Riot breadcrumbs

We linked to the annoucement last week, and have been using it for even longer, but somehow I missed a great labs feature that shipped with Riot 1.0: "room breadcrumbs", which you can enable from the Labs page of Riot settings. This gives you a series of quick links with the history of rooms you were most recently in. So if you're like me, clicking between rooms all day, you can get where you're going a little faster.

mautrix-whatsapp

There is no big news about mautrix-whatsapp this week, other than that I installed it on my own server and found that it works really really well. I'd love to switch to this as a main interface for my less-decentralised friends, but like others, I've been stung by this issue in an upstream project. If there are go-fans reading (and I know there are), I wonder if it's an issue which can be fixed?

Around the Web

A tidy little article on "non-centralised" applications. Article by Jontheniceguy helps pin down some of the terminology around decentralisation and the like. https://jon.sprig.gs/blog/post/1041

joenas wrote an article on configuring Synapse with Traefik: Matrix homeserver (Synapse v0.99.1.1) with Traefik

That's it

All good things must come to an end - and here we are!

Matrix is getting a lot of attention recently (has it been on the front page of HN every day this week? I remember that I used to be excited seeing that happen), and seeing a lot of growth as well.

If you have something to say here, something to add, come chat to us in #twim:matrix.org - I love that this is a supportive and engaged project ecosystem, so come share what you have!

This Week in Matrix 2019-02-15

2019-02-16 — This Week in Matrix — 

Matrix Live, Synapse roadmap and Synapse 0.99.1.1

As you may have seen, Matrix Live this week features Neil and Matthew discussing the newly announced backend roadmap.

We also have Synapse v0.99.1.1 available, as the race to Synapse v1.0 gets closer and closer and closer!

Brendan also said, regarding low-bandwidth:

Some of the week has been spent finalising the components used in the low-bandwidth demo we did at FOSDEM. This required polishing some internal developments, which are now almost ready to be published to the wide world! This should happen in the next few days so stay tuned :)

Riot 1.0.0, and hotfix 1.0.1

If you're following Matrix much at all, you will surely have seen it by now: Riot, the most popular client, has announced the v1.0 milestone. I won't reiterate the features and improvements here, but do check out the blog post, or just head over to https://riot.im/app and see for yourself!

Particularly exciting is the new encryption verification process, involving sharing a list of emojis out-of-band:

MSCs update provided by MSCBot

In Progress MSCs

Work has continued on trying to resolve MSC1194.

Riot iOS

  • Last iteration on key backup UX
  • Finish reskin
  • Support Room v3 events ids
  • Key import (manual or backup restore) has been optimised. It is now 30x > quicker
  • An RC candidate will be available over the weekend
Scheduling, holidaying and illness means no update from Riot Andorid this week.

Artificial Intelligence Chat Bot tutorial

I like this short series on creating a Chat Bot using textgenrnn:

New(ish!) Python SDK: matrix-nio

Since we haven't featured their work here at all I wanted to give some space to poljar. They've been working on a Weechat-Matrix protocol script, but as part of this project they created a new Matrix client library, matrix-nio, "designed according to sans I/O principles".

As if this wasn't enough! python-olm is a library providing Python bindings for Olm (enabling E2E encryption for Matrix.)

FluffyChat v11 preview

FluffyChat is a pure QML Matrix client, designed to be used on smartphones running Ubuntu Touch. Krille, the author is working on:

boring refactoring stuff :-( at the moment to prepare everything for e2e encryption work
. . .which seems to me not boring at all - we can expect, in the next few months, another Matrix Client with E2EE support, and on mobile!

In my role as editor of this particular blog post, I enjoy certain luxuries that others might envy. For example, today, I tried a new preview build of FluffyChat. This I installed on my barely-repaired OnePlus One running Ubuntu Touch 16.04.

Fractal

Chris from Fractal:
Over the past week, Fractal has adapted its main view and room settings views for mobile phones, and implemented long-press for right-clicks on messages for touch devices. It's also received some changes in the backend to use the serde_derive Rust crate instead of parsing JSON by hand.

matrix-tag-manager


To celebrate tags being available again in riot-web, TravisR has created matrix-tag-manager:
If you're a power user which uses room tagging to organize your rooms, I've made a web UI for you: https://tags.t2bot.io/

mxisd v1.3.0 released

Max:
mxisd v1.3.0 is out! This release brings the massive performance improvements, bug fixes and enchancements. This release also marks the two years anniversary of the project. Thank you to all our users for your undying support!

EdimCoder new room


krixano reports that:
I made a room for my ed-inspired modern line editor called EdimCoder. Come check it out at #edimcoder:amorgan.xyz!

avecho

yuforia reports that:
a new bot avecho is created using the koma-library. It's a simple bot that echos text messages prefixed with avecho, but renders it into an image and include the sender's avatar.


Ananace's k8s docker image


Ananace reports that:
Pushed 0.99.1.1 for the K8s optimized docker image, going to stop building Python 2 images after 1.0.

Half-Shot's .NET SDK


Half-Shot reports that:
More improvements to the .NET sdk, to make it stable in this 0.4.0 world. To that end, I've written a room archiver app (for moving "old" rooms into a archive tag without removing them) and a simple caching project for bridges https://github.com/Half-Shot/matrix-cache. Progress as always can be followed in #dotnet:half-shot.uk

mautrix-telegram now at 0.5.0rc2

tulir has been working on the venerable Matrix<->Telegram bridge, mautrix-telegram:
mautrix-telegram got a bunch of changes and a release candidate.\\nMain changes this week:
  • Added Matrix room upgrade handling
  • Fixed bugs
  • Added new admin commands and config options
  • Added new bugs to fix later
  • Stopped using the ORM part of SQLAlchemy
Get release notes for v0.5.0-rc1 and v0.5.0-rc2.

QMatrixClient project: libQMatrixClient and Quaternion

kitsune finds time to work on QMatrixClient!
QMatrixClient project has been busy merging PRs from contributors (close to tray and middle-click in room list and user list, to mention a couple) and streamlining the translation process before the upcoming releases of libQMatrixClient 0.5 and Quaternion 0.0.9.4. At the same time the feature branch to support room versions and room upgrades is at an advanced stage; expect the features to land in master next week.

matrix-archive-keyring

Linda has been working on new Debian package called matrix-archive-keyring:
I've paused porting Synapse to OpenBSD this week, while I attempt to both fix and revert some security issues caused by sudo apt-key add for Matrix.org and Riot.im packages for Debian-based GNU/Linux distribution users.
matrix-org/synapse PR #4609 was my first attempt to fix the problem, however I fell short this time in ease-of-use and my implementation had other issues. (Read: The repo-key.asc downloaded from Matrix.org Debian repository should go to /usr/share/keyrings, and must not be added by apt-key add or added to /etc/apt/trusted.gpg.d directly. I attempted the latter with my first PR; but that would've allowed the Matrix.org signing key to also be used to verify packages from Debian's main repositories. Yikes!)
As my second attempt, I'm now creating a new Debian package called matrix-archive-keyring. There's multiple things this package intends to do:
  • A post-install script to remove any previously added Matrix.org package signing keys from /etc/apt/trusted.gpg. (This is the file apt-key add most commonly uses, and the most commonly found bad advice on the Internet.)
  • Convert repo-key.asc to a de-armorized .gpg format, understood better by apt(8). (Essentially, gpg --dearmor.)
  • Install the converted .gpg key to /usr/share/keyrings.
  • Make sure apt(8) uses the newly added key for Matrix.org repository only?
  • Deliver any updates to repo-key.asc directly to you via apt upgrade. Your operating system might then also do it automatically for you if unattended-upgrades(8) is installed on your system. ?
  • Make sure everything goes away when this keyring package is uninstalled. No more sudo sh -c 'apt-key del C35EB17E1EAE708E6603A9B3AD0592FE47F0DF61; rm /etc/apt/sources.list.d/matrix-org.list to get rid of the repository.
I have one more interesting enhancement to disclose.
We can ask you with debconf if you want to install deb https://matrix.org/packages/debian $(lsb_release -cs) main to /etc/apt/sources.list.d/matrix-org.list while you're installing the new keyring with apt install matrix-archive-keyring.
You'll most likely notice the difference in install instructions, as a result of this package. Before and after:
# Before sudo apt install -y lsb-release curl apt-transport-https echo "deb https://matrix.org/packages/debian `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/matrix-org.list curl "https://matrix.org/packages/debian/repo-key.asc" | sudo apt-key add - sudo apt update sudo apt install matrix-synapse-py3
# After sudo apt install matrix-archive-keyring sudo sh -c 'apt update && apt install matrix-synapse-py3
If you are a Debian or Ubuntu user and Synapse homeserver operator using Matrix.org repositories, I'll be towncrying when this package becomes available as much as I can. All you should need to do then is apt install matrix-archive-keyring and it should patch the security holes in your operating system if you've formerly installed packages from Matrix.org or Riot.im! (The command may change a bit, because next Debian operating system release "Buster" has entered soft-freeze just today (2019-02-12) and not accepting new packages into that release.)
PS: I'm at #debian-matrix:matrix.org, please come talk to us if Debian packaging interests you!
 
For the eager early testers not afraid of building from source, matrix-archive-keyring version 2015.12.09+debian0.10 is available for early testing (attached).
# Something like this! sudo apt install devscripts tar -xfvJ matrix-archive-keyring_2015.12.09+debian0.10.tar.xz cd matrix-archive-keyring_2015.12.09+debian0.10 debuild -us -uc sudo dpkg -i dpkg -i ../matrix-archive-keyring_2015.12.09+debian0.10_all
Please follow Debian Bug#922155 for updates. Debian binary packages will be available later sometime this/next week from Debian's unstable distribution (contrib), if all goes well and there are no remaining Debian policy violations or serious bugs.

See also:

Gridepo

Max again:
Gridepo, as a Matrix Homeserver, is gaining basic support for Matrix Client API. We have basic login, room creationg, message sending and sync working! A little screen recording of the progress can be viewed here for live action with Riot. As a reminder, Gridepo is a clean rewrite of mxhsd.

This is not usable yet outside of a dev environment but we should have a first usable version with federation in a couple of weeks!

Mention Bots page

We have a new location for listing bots: https://matrix.org/docs/projects/bots, message benpa with any you think should be included!

That's all I know

That's all we have for now, but come join us in #twim:matrix.org to share your project and share the fun, and I'll see you back here next week.

This Week in Matrix 2019-02-08

2019-02-08 — This Week in Matrix — 

Huge week! Let's go!

Matrix Live: Riot Redesign Chat (2019-02-08 - Season 3, Episode 13)

Riot-web new version coming out so soon. So soon! It looks and runs great, you can use it today at https://riot.im/develop. Includes a labs flag for displaying custom tags, which I love. Watch the vid.

FOSDEM 2019

FOSDEM happened.

  • two Matrix-themed packed-room talks
  • lots of people coming to chat at the stall to say things like "hi" or "I like Matrix" or "what is Matrix? … wow that sounds amazing, how can I get involved?"
  • 1000s of stickers decentralised out of my bag onto people's laptops
If you didn't yet, take a look at the summary blogpost, which also contains videos of both talks.

Synapse 0.99.0

With the release of Server to Server Spec r0.1, Synapse 0.99.0 is shipping now.
Synapse 1.0.0 will be compliant with r0.1 and the goal of Synapse 0.99.0 is to act as a stepping stone to Synapse 1.0. Synapse 0.99.0 supports the r0.1 release of the server to server specification, but is compatible with both the legacy Matrix federation behaviour (pre-r0.1) as well as post-r0.1 behaviour, in order to allow for a smooth upgrade across the federation.
It is critical that all admins upgrade to 0.99.0 and configure a valid TLS certificate. Admins will have 1 month to do so, after which 1.0.0 will be released and those servers without a valid certificate will no longer be able to federate with >= 1.0.0 servers.

Please read the announcement post and be sure to come and chat in #synapse:matrix.org if you need help!

GSOC 2019


Cadair has been helping admin this year's GSOC application:
Matrix.org has applied to be a GSOC (Google Summer of Code) mentoring organisation. If your matrix project has a feature a summer student could tackle and you have the time to mentor them over the summer, why not add a project idea to our website by submitting a PR to this repo. Feel free to ask questions in #gsoc:matrix.org as well.

Latest MSCs

Approved MSCs

In Progress MSCs

matrix-puppet-hangouts 0.1.0 released, with bidirectional image support

tom reports that:
matrix-puppet-hangouts version 0.1.0 has been released!
This release adds bidirectional (Hangouts -> Matrix and Matrix -> Hangouts) image support!
It also bumps the version of matrix-puppet-bridge (the common core of matrix-puppet-bridge bridges, which handles most of the stuff that's the same between different third-party service bridges, and makes implementing new matrix-puppet-bridge bridges easier) required to 1.16.2, the current latest, for recent bugfixes that improve all matrix-puppet-bridge bridges.
0.1.0 also requires Python 3.5+, for async. Older versions of python3 won't work. PRs getting python3 < 3.5 working again are welcome.

tom also gives credit to d3m3vilurr:
These changes are also brought to us by d3m3vilurr, Honored Hero of Matrix Puppet Bridge

Praise indeed!

Bifrost Bridge


Half-Shot working on matrix-bifrost, a matrix bridge for libpurple and xmpp.js:
This week I have been hard at work fixing a lot of the bugs that have cropped up from bifrost's rapid development. We now have a docker image available (https://github.com/matrix-org/matrix-bifrost).

SMSMatrix now available on F-Droid


A recent favourite of mine, SMSMatrix runs a tiny service on your Android device, which forwards SMS messages to and from Matrix rooms. This week tijder announced that it's now available on F-Droid:
SmsMatrix just got released in the F-droid store. Now everybody can install and get updates from the F-droid store. https://f-droid.org/app/eu.droogers.smsmatrix


matrix-media-repo from TravisR now supports .well-known server delegation


TravisR reports that:
matrix-media-repo now supports .well-known server delegation (compatible with Synapse 0.99 and r0.1 of the server-server specification), among many other bug fixes and improvements. Actually validating the certificates presented by servers will be implemented alongside Synapse 1.0's requirement for it.

Dimension from TravisR now supports .well-known server delegation

Similar to matrix-media-repo above, TravisR has been implementing .well-known server delegation in Dimension:
Dimension now supports .well-known server delegation (compatible with Synapse 0.99 and r0.1 of the server-server specification). Actually validating the certificates presented by servers will be implemented alongside Synapse 1.0's requirement for it.

mxisd v1.3.0-rc.3


Max:
mxisd v1.3.0-rc.3 is out. This is hopefully the last RC before release, but we would like as much testing as possible! the v1.3 branch is a big enhancement on the previous release with big performance and privacy improvements. It's smaller, faster, stronger and protects you privacy even better than before! You know you want it!

matrix-docker-ansible-deploy now supports Synapse v0.99

Slavi reports that:
matrix-docker-ansible-deploy now supports Synapse v0.99 and should be ready for Synapse v1.0.
If you're using the playbook to manage your Matrix server you should upgrade soon.
Depending on how you've customized your setup, you may not even have to do anything for the big Synapse v0.99/v1.0 transition, besides upgrading and re-running the playbook. A good place to start is the changelog entry: Synapse v0.99 support and preparation for Synapse v1.0
I have been using these playbooks to test my own homeserver deployment and am happy.

Tchap Android client

Willem reports that:
After seeing a demo at FOSDEM of Tchap, the app the French government uses to access their Matrix network, I decided to try to get it to work as a general-purpose Matrix client. The app uses email and password to log in, and infers the homeserver address from the homeserver name. So to get it to work, I had to patch the app and write a little proxy so it gets the proper homeserver (and optionally identity server) from an email address.
A patched version of Tchap can be found at https://github.com/14mRh4X0r/tchap-android, code for the proxy at https://git.snt.utwente.nl/14mRh4X0r/tchap-proxy. At the moment it's very crude, and images/files don't work since the virus scan API is unimplemented, but at least it can be used outside the French government. ?

Riot iOS

From the team:
  • Still iterating on key backup UX
  • Fix various share extension bugs (image sending failure, links share as text, etc…)

Riot Android

  • Still iterating on the key backup UX, changes concern Riot and the Matrix SDK
  • Valere has worked on Riot Android Notifications, we intend to merge this work on develop at the beginning of the next Sprint.
  • RiotX: no update this week due to François being out of the office

.NET SDK

Half-Shot, working on "not bridging":
I opened up the .NET SDK project for the first time in two years and revived it to just about work with a r0.4.0 home server. Its now based on .NET core 2.0.

Related .NET lovin'.

Spectral, soon for KDE Plasma Mobile


Black Hat is clearing:
I'm porting Spectral to KDE Plasma Mobile with Kirigami framework. This provides full convergence and mobile support.
Some progress pictures below, desktop and mobile version.

Preparing for Synapse on OpenBSD

Linda has been making progress on a project to get Synapse running on OpenBSD, and to that end has been preparing and improving the dependencies that we take for granted on Linux. To summarise the current status:

This week I've been porting Synapse's dependencies to OpenBSD -current distribution. There is no port yet for Synapse in OpenBSD. Ports missing from OpenBSD 6.4 for Synapse's dependencies were:
  • py-frozendict: ok'd, waiting…
  • py-unpaddedbase64: TBD
  • py-canonicaljson: TBD
  • py-signedjson: TBD
  • py-treq: WIP (this will take a while, lots of dependencies)
  • py-daemonize: ok'd, waiting…
  • py-pymacaroons: TBD
  • py-phonenumbers: 8.10.4 done, waiting to be imported…
  • py-prometheus_client done, needs to be tested/imported…
  • coturn: TBD, maybe?
waiting = usually waiting for an OpenBSD developer to "ok" and import
Of those, py-phonenumbers was added to OpenBSD
-snapshots (-current) distribution. py-phonenumbers (?) and py-service_identity received updates to ports. py-prometheus_client, py-daemonize and py-frozendict are ported ready and waiting to be given "ok" at OpenBSD's [email protected] mailing list.
There is an unofficial up-to-date Synapse port exists at GitHub maintained by someone else, which I've not yet tested. (At glance, I can take a guess the devel/tz port may not be required.)
(coturn doesn't have a port yet, may have to look at it later.)

c u l8r

Phew! That was a lot! See you next week, and if you have a project you'd like to see featured in This Week in Matrix, come chat to us in #twim:matrix.org!

This Week in Matrix 2019-02-01

2019-02-01 — This Week in Matrix — 

MSC (spec) updates

r0, the first stable release of the Server-Server (Federation) Specification is extremely close! We of course will make a big splash and let you know when this comes!

Even apart from that, let's take a look at the MSCs (Matrix Spec Changes) that are currently in progress.

Approved MSCs

Final Comment Period

In Progress MSCs

Synapse

Neil and the team have been working frantically on getting a new Synapse release out this week:
This week has been all about gearing up for v0.99.0 and if you would like to help us test it, our latest release candidate lives here
We've taken the decision to bump up to v0.99.0 because it is very much a precursor to v1.0. When v1.0 lands it will contain a breaking change that means all homeservers will need a valid certificate for their server to server endpoint, self signing will no longer be possible.
v0.99.0 contains support to help you do this, but once it lands all admins will need to upgrade, failure to do so will mean losing the ability to federate with > v1.0 servers.
We'll have detailed docs ready to go alongside the full v0.99.0 release, and we plan to leave at least 1 month between v0.99.0 and v1.0, but for now please be aware that the change is coming.
Huge thanks to Rich, Erik, Hawkowl and Anoa for all their work in getting us to rc stage.

nheko_reborn

If you haven't already heard, then I envy that you get to learn about it now: there is a credible new project which forks nheko and seeks to maintain and continue the project.Nheko-Reborn is a new project headed by red_sky, who told me:
I think I'm getting pretty close to having another release ready. Need to clean up some things here and there and get the CI packages uploading correctly
It'd be good to have more community engagement
Come chat about the project in #nheko-reborn:matrix.org.

Riot iOS

  • New app icons
  • Most of e2ee keys backup screens are done. We are only missing the sign out warning which invited the user to back up their keys before logging out
  • A Beta release is on its way to TestFlight

Riot Android

  • Finishing e2ee keys backup screen
  • Integrate new app icons, and splash
  • Release in Beta
  • Riotx: improvement in room list, read marker management

journal

lukebarnard has continued work on journal, a matrix-backed blog engine:
I've posted another blog on journal about the next steps for the project, including my thoughts on verifying blog content.

https://journal.lukebarnard.co.uk/journal/26-jan-2019

I'm planning to start work on the component that will scrape blog content from a matrix room. This will most likely involve a dedicated bot that syncs new journal blog events, verifies the blog signature and then writes the blog content to a file on the blog server.

I'll probably ramble about the details of that at some point.

fed-tester


f0x made a bunch of updates to his federation testing GUI:
The fed-tester frontend has received an overhaul. It's dark now, is more responsive, and will show the new ValidCertificates, and Information fields. Found errors and warnings are now shown at the top, instead of having to traverse the table yourself. Hosted at https://neo.lain.haus/fed-tester with code at https://git.lain.haus/f0x/fed-tester Room for both the frontend and backend is #fed-tester:lain.haus


matrix-docker-ansible-deploy


Slavi had two big updates for matrix-docker-ansible-deploy this week, improved security and IRC bridging:
matrix-docker-ansible-deploy now has much-improved security. All services now run in containers with a non-root user from the very beginning, without capabilities and with a read-only filesystem. To learn more, see the relevant changelog entry.
Thanks to a contribution by Devon Maloney (@Plailect), matrix-docker-ansible-deploy now has IRC bridging support via matrix-appservice-irc. To learn more, see the Setting up Appservice IRC documentation page.

neo

f0x again, now with an update on neo:
Not too much work on Neo this week, but there's some smooth animations for the roomlist now video, with music, which is surprisingly complicated in css
https://git.lain.haus/f0x/iris

libaqueous - Matrix SDK in Dart


Black Hat is working on a Matrix SDK in Dart:
libaqueous (the Matrix SDK in Dart) is progressing nicely. A reference implementation is also planned.
The repo is at https://gitlab.com/b0/libaqueous, and I also set up a room at #libaqueous:encom.eu.org

ma1uta's Matrix projects: Jeon, JMSDK, matrix-jabber-java-bridge

ma1uta has been working on his ecosystem of Matrix tooling:
Not much changes in jeon, jmsdk and matrix-jabber-java-bridge (mjjb).
  • Jeon: improved mxid with a new validation, support of the 11 java. And preparing the new release.
  • Jmsdk: fixed few bugs.

matrix-jabber-java-bridge

The bridge is being re-written. I excluded the jabber server (still need to setup SRV records) and implementing the xmpp s2s api in the bridge. Done:
  • rfc6120 in s2s part;
  • almost server dialback (XEP-0220);
Remaining:
  • MUC (XEP-0045);
  • stabilize.
New version will allow:
  • 1:1 conversations between matrix and jabber users;
  • group chats by double-puppet mapping rooms to conferences;
  • additionally xmpp users can join directly to rooms via double-puppet bots.
Also I started breaking the bridge to modules. And the next module will be ActivityPub S2S module which allows communicate matrix servers with other fedivers.

mxisd

Max reports that:
mxisd v1.3.0-alpha.3 is out! This one works further towards protecting your privacy and we strongly recommend it if you already are using an alpha release. We have written our stance on privacy with how it affects mxisd here.

We also consider this release to be as stable as v1.2.2. Feel free to upgrade following the Upgrade notes and benefits from all the v1.3.0 work so far, especially the massive improvements on resources usage.

Purism working on Fractal integration


Definitely take a look at the linked blog post for more.

What else is there?

What there mainly is is FOSDEM. A lot of Matrix-folk are currently near me as I write this, sat in a hotel bar in sunny Brussels. Matrix live is not available today, but will incorporate some of the event, which kicks of tomorrow.

If you will be attending, come /join us at the Matrix table, where there will be stickers and t-shirts and merriment, and definitely come and attend the talks:

This Week in Matrix 2019-01-25

2019-01-25 — This Week in Matrix — 

Matrix Live S03E12 - Modular.im

This week I chatted to Rick about the release of Modular, Hosted Homeservers and more. We're pleased to be able to announce the availablity of a HipChat migration tool to get people into Matrix.

Latest MSC updates (from anoa's MSC bot)

Approved MSCs

Final Comment Period

In Progress MSCs

Synapse

  • Working furiously towards an r0 spec release. Event ids as hashes (MSC 1659) and S2S API certificates (MSC 1659 ) are very close now - see https://github.com/orgs/matrix-org/projects/8 to track our progress.
  • Since MSC1711 is a breaking change, we will initially ship our next release (v0.35.0) with ACME support to make it easy to provision and renew certificates. The give everyone a month to upgrade and install a cert before we ship Synapse v1.0 which will require that servers have certificates in order to federate. Don't worry, there will be plenty of details on the steps necessary for admins when v0.35.0 lands - watch this space.
  • Finally a raft of db performance improvements, room version upgrade bug fixes, as well taking a look at room directory and user directory efficiency.

matrix-puppet-slack

tom reports that:
matrix-puppet-slack version 1.10.1 has been released, thanks again to @twouters
  • The bridge could not create new Matrix rooms on versions of Synapse after a certain change, because it did not reserve the room alias prefix it used. That's been fixed, but anyone currently running matrix-puppet-slack will need to edit their slack_registration.yaml and restart Synapse. See the Release for instructions on doing so.
  • The bridge will no longer send "Edit: " events when Slack sends it a "message_changed" message, if the message text has not actually changed (Slack sends these events for URL previews, for example, but this just causes duplicate bridged messages). This fix has been a long time coming.

matrix-corporal

Slavi reports that:
matrix-corporal 1.3.0 was released.
It uses a new Matrix API for fetching account data (Synapse >0.34.1 is required), so it performs reconciliation quicker than before.

From the notes:
Reconciliation is now much faster, due to the way we retrieve account data from the Matrix server (no longer doing /sync).
From now on, the minimum requirement for running matrix-corporal is Synapse v0.34.1, as it's the first Synapse release which contains the new API we require (GET /user/{user_id}/account_data/{account_dataType}).

journal


lukebarnard disappeared from our screens some time ago, but he's back with this news on journal:
I have an update on journal (finally). I've pushed the redesign branch that I've been working on. It contains the web view component of the new architecture and can be used as a generic blog-hosting site (I'll be doing this personally). Feel free to check it out here: https://journal.lukebarnard.co.uk/journal/1-jan-2019

Riot-web

  • Redesign
  • Typing notifications don't make timeline jump anymore
  • Jump to bottom button is overlay now, so we can finally hide the room status bar again most of the time
  • Working on room sublist resizing
  • Work on authentication flow
  • Work on settings

Riot Android and iOS

  • Reskin of Riot is nearly finished. Last known issues have been fixed.
  • Keys backup screen development well underway! We're working to fit everything nicely on mobile platforms - there are some UX/UI specificities to consider.
  • Riotx (new version of riot for Android, built using the upcoming kotlin SDK): more and more event types supported in timeline.

Quaternion

kitsune reports that:
the macOS build for Quaternion 0.0.9.3 turned out to be not complete and fails if the user doesn't have Qt installed. Thanks to Aaron Raimist the build has been now includes a snapshot of Qt 5.11 - if you tried and failed to run the .dmg from https://github.com/QMatrixClient/Quaternion/releases, you can try to use it again.

Thanks also to Aaron for helping populate homebrew with Matrix goodness. Mac users may be interested to know that Seaglass and Spectral are both available in homebrew now.

Neo client


f0x reports that:
Neo is still in the GUI component design stage (the best stage to get involved with feedback!). I have implemented the jdenticon library for avatars, autoscrolling when there are new events, and I've added the Rust code of conduct. https://git.lain.haus/f0x/iris
General vision for this project is to first get as much gui done as possible, before diving in the backend. This will be split into a separate module, with the gui component being as protocol-agnostic as possible, to allow different backend modules for XMPP or IRC as well.

Fractal client

Backend refactoring by Julian Sparber and Alejandro Domínguez. They also got progressed with tag handling, spell checking and lazy loading.

matrix-js-bot-sdk

TravisR reports that:
the matrix-js-bot-sdk has received a bunch of updates currently residing on the develop branch. Changes include unit tests covering most of the library, appservice support improvements, handling of room version upgrades, and a bunch of bug fixes.
matrix-js-bot-sdk was recently updated to have support for Application Services, and is a lighter alternative to the matrix-js-sdk.

cl-matrix

Gnuxie reports that:
I've been working on cl-matrix and I think now it might be in a good condition to talk about it.cl-matrix is a WIP client library written in common lisp, most of the API endpoints have been covered using macros that allow you to copy straight from the spec, here is an example using the send event endpoint:
(define-matrix-endpoint room-send-event (:put) ("rooms" room-id "send" event-type txn-id))
this will expand into a function with the signature:
(PUT-ROOM-SEND-EVENT AUTHENTICATION ROOM-ID EVENT-TYPE TXN-ID CONTENT &KEY PARAMETERS)
it also has some basic events defined using deeds that can be issued using the sync endpoint.

Informo

The unknown individual from Informo, vabd told us:
Not much news this week in Informo land, though we have a few specs proposals that are still open for public review, including SCS #19 (rendered version here) which rewrites the specs website's introduction to make it more newcomer-friendly and feature a brief introduction on what Informo is about.
People who either never had a look at the project, or got fed up trying to because of the difficulty to easily understand what we're building, we'd love to read your opinion on this! ?

This is much, much appreciated. For those interested but confused, please take a look.

matrix-autoinvite


CromFr (Thibaut CHARLES) reports that:
matrix-autoinvite is a very basic service that synchronizes joined rooms between users from different servers, by inviting missing users to the room.
I'm using it to invite @CromFr:matrix.org to each Facebook Messenger rooms on my personal homeserver (that has very limited resources) hosting the matrix-puppet-facebook bridge. This way I can chat with people on facebook from a matrix.org account :)
Some relevant news from today: Zuckerberg Plans to Integrate WhatsApp, Instagram and Facebook Messenger

matrix-register-bot

krombel reports that:
A long time ago I started writing matrix-register-bot. Now as there is a new requestor of it I finally implemented the planned features and released 0.1-rc1
Feel free to test it and ask questions or provide feedback in #matrix-register-bot:msg-net.de

Other thoughts

Did you know about status.matrix.org? This handy site lets you know about the status of the matrix.org homeserver. That URL again: status.matrix.org.

linux.conf.au is happening right now in Christchurch, New Zealand (editor's note: is this right? .au or .nz?), and they've been partly using Matrix for their comms.

FOSDEM is in a week! Come chat in #matrix-fosdem:matrix.org. Be there and be square. I'll be there with Matrix swag so ping me if you'll be attending.

When will I see you… again?

I might adjust the schedule a little next week since it's FOSDEM (see above), but as always, stay tuned into #twim:matrix.org for all the biggest news!

This Week in Matrix 2019-01-18

2019-01-18 — This Week in Matrix — 

Matrix Live S3E11

This week I chatted with Jason Robinson about all things decentralisation, especially his projects socialhomethe-federation.info, and feneas.org. Jason has been interested in decentralisation for many years, and had a lot to say about how we can look forward to a more decentralised Internet.

Latest MSC updates (from anoa's MSC bot)

Approved MSCs

[MSC 1229]: Mitigating abuse of the event depth parameter over federation [MSC 1497]: MSC1497: Advertising support of experimental features in the CS API [MSC 1501]: Room version upgrades [MSC 1354]: Widget API extension: Always-on-screen [MSC 1339]: Proposal to add a GET method to read account data

Final Comment Period

MSC 1794: Federation v2 Invite API

In Progress MSCs

[MSC 1796]: improved e2e notifications [MSC 1797]: Proposal for more granular profile error codes [MSC 1607]: Proposal for room alias grammar [MSC 1544]: Key verification using QR codes [MSC 1802]: Standardised federation response formats [MSC 1804]: Advertising capable room versions to clients [MSC 1538]: storing megolm keys serverside [MSC 1681]: cross-signing [MSC 1659]: Proposal: Change Event IDs to Hashes [MSC 1767]: Extensible event types & fallback in Matrix (v2) [MSC 1768]: Proposal to authenticate with public keys [MSC 1769]: Extensible profiles as rooms [MSC 1772]: Groups as rooms (v2) [MSC 1776]: Implementing peeking via /sync [MSC 1640]: MSC: Replace event IDs with hashes [MSC 1777]: peeking over federation

matrix-docker-ansible-deploy

Slavi reports that:

It's a New Year and there have been a lot of improvements to the matrix-docker-ansible-deploy playbook:Lots of thanks go to Maximus, jcgruenhage and Cadair for helping out!

libQMatrixClient and Quaternion

kitsune reports that:
libQMatrixClient 0.4.2 has been released, fixing a security issue (the library could be tricked into altering the local room state by fake state events - those without state_key). The master branch of the library is updated as well - it is strongly recommended to update to either 0.4.2 or master, depending on which branch you live on.

For those who want to help testing Quaternion or just can't wait to the next release, we now have CI builds collected at bintray: https://bintray.com/qmatrixclient/ci/Quaternion. Linux and macOS are already there, and Windows binaries will also be available any day soon.

matrix-client.el


alphapapa reports that:
matrix-client.el can now send typing notifications.

matrix-puppet-slack

tom reports that:
matrix-puppet-slack v1.10.0 has been released, thanks to Cadair and (once again!) d3m3vilurr!

v1.10.0 fixes Matrix-to-Slack image upload, and no longer sends markdown-formatted @-mention links in the plaintext body of Matrix events; instead, it uses plaintext username the way text-only clients traditionally have it.

The version bump is also the project's 100th commit, and I've updated the supported feature checklist in the README to paint a more comprehensive picture of what is and isn't supported, and link out to the GitHub Issues for some of the unsupported features, in hopes of making life easier for users and encouraging contributions.

opsdroid


SolarDrew reports that:
opsdroid's Matrix connector is now a core part of the library rather than an external addition. This should open up a lot of cool possibilities for doing fancy stuff with bots on matrix. Many thanks to Cadair for helping with this.

mxisd

Maximus reports that:
mxisd has a new alpha release: v1.3.0-alpha.2 - Fixes a set of issues from alpha.1 and is now close to v1.2.2 stability. If you are already on alpha.1, update is highly recommended.

continuum (previously, "koma")


uforia reports that:
made some minor changes to continuum to make the GUI more intuitive. Now when there are no joined rooms, buttons for joining or creating rooms are shown instead of an empty list. And when there are issues with syncing or syncing takes longer than usual, a status bar with options is shown.

mauview

tulir reports that:
I've been working on a new Go TUI library for gomuks: https://github.com/tulir/mauview

Still not quite sure if it's a good idea, but at least the input area component is very nice. It should also make it easier to add more fancy stuff like html tables and selecting messages (for replying/redacting)

Riot iOS


We are still working on the key backup screens. The last bit on the SDK side, the passphrase support, has been implemented this week.

Reskin is almost done. It just needs some small adjustments. We will release a beta soon so that we can gather users feedback.

This week, we have also fixed small but boring UX issues in Riot and we will continue to do so up to the end of the month and FOSDEM!

Riot Android


Reskin is almost done too and available on develop builds.

Benoit has started to implement the key backup passphrase management in the SDK. Valere is still improving push notifications at the code level but also at the display level.

We are working hard to polish the app for FOSDEM.

Modular


Rick reports:
We now have a HipChat migration tool - https://www.modular.im/tools/hipchat-migration. This tool helps migrate a HipChat workspace to your very own Modular Hosted Homeserver. Migration is performed by uploading an exported copy of an existing HipChat workspace so that the tool can automatically re-create all of the users and rooms (including messages and attachments) on your new Matrix homeserver. Once the migration is complete all of the migrated users will be emailed with login instructions, so that they can seamlessly continue chatting where they left off in HipChat. If your organisation (or if you know of an organisation that) has not yet decided what to do when Stride & HipChat is discontinued next month, come and try Modular!

Synapse


The Synapse gang are working flat out towards r0 and a v1.0 release - you can track our progress here (https://github.com/orgs/matrix-org/projects/8). Aside from that if you haven't already done please please upgrade to v0.34.1.1 (https://matrix.org/blog/2019/01/15/further-details-on-critical-security-update-in-synapse-affecting-all-versions-prior-to-0-34-1-cve-2019-5885/)

Dendrite


Brendan reports:
People have been generally happy about the flood of new issues following the completion of the internal audit last week, and a few folks have been opening PRs addressing some of the “good-first-issues” labeled ones, which has been amazing to see, including fixing room joins and a couple of default variables. Thanks a lot to Cnly and Behouba for these!

On my end, this week mainly consisted in reviewing most of these PRs (and merging them when that was possible), while anoa worked on making Dendrite's CI more complete and reliable, especially by configuring it to run sytest against Dendrite which will allow us to better track its compliance to the Matrix specification.

If you're interested in contributing on Dendrite, there's still some “good first issues” open, and we'll be happy to chat and help in #dendrite-dev:matrix.org ?

Synapse in Debian

andrewsh reports that:
the most recent synapse, using Python 3, is available in both stretch-backports and Debian testing

Discord Bridge


Half-Shot reports that:
Discord bridge v0.4.0 is out now, nothing new since rc1 because it was that good. There have been no changes since rc1 because either Sorunome did a stellar job of keeping things stable, or nobody spoke up out of fear :p. Thanks one and all for continuing to run the bridge.

New Dart/Flutter Matrix SDK

Black Hat reports that:
I am prototyping a Matrix client SDK in Dart. It will target Flutter (Android, Fuchsia and iOS), web (AngularDart or other) and Dart VM.

f0x returns to Neo

f0x reports that:
Neo v4: Iris is coming up, focusing on design first. It will be based on React, and the matrix js sdk
I didn't plan ahead enough with old Neo (v3), so it became a bit of a clobbered togeather mess, which I'm trying to prevent this time around
https://git.lain.haus/f0x/iris

That's all for now

Come chat in #twim:matrix.org to discuss what's happening, and especially come and share what YOU'VE been working on!

This Week in Matrix 2019-01-11

2019-01-11 — This Week in Matrix — 

Welcome!

Do not panic, Benpa is away, I repeat, Benpa is away. Nonetheless TWIM lives on!

Spec

Lots of spec work this week, and a shout out to anoa for his magical mscbot that provides pokes, nudges and updates on all things spec. Here's what mscbot had to say about the past week.

Approved MSCs

[MSC 1497]: Advertising support of experimental features in the CS API [MSC 1339]: Proposal to add a GET method to read account data [MSC 1501]: Room version upgrades

Final Comment Period

MSC 1708: .well-known support for server name resolution MSC 1711: X.509 certificate verification for federation connections

New and In Progress MSCs

[MSC 1794]: Federation v2 Invite API [MSC 1796]: Improved e2e notifications [MSC 1797]: Proposal for more granular profile error codes [MSC 1640]: Replace event IDs with hashes [MSC 1776]: Implementing peeking via /sync [MSC 1777]: peeking over federation [MSC 1779]: Proposal for Open Governance for Matrix.org (v2)

(A few may be missing as we're still tweaking mscbot :)

Dendrite

Brendan had this to say:-

The Dendrite audit is over! A bunch of issues have been created on the Dendrite GitHub repository, as well as a project board in order to keep track of everything: https://github.com/matrix-org/dendrite/projects/2
There's a fair amount of issues that have been labeled as “good first issue”, so feel free to pick them up and open pull requests if you're looking into hacking on Dendrite! :)
And whilst we have your attention - here's Brendan & Matthew talking through the audit in this week's Matrix Live!

Synapse

Neil says:-
This week saw the release of v0.34.0.1 and v0.34.1.1 both contain critical security updates so please update asap if you have not already done so. See here for more details, we'll be able to share a bit more about the vuln once admins have had a chance to upgrade.

Aside from that we've been making progress against getting s2s api to r0 and Synapse to v1.0. Rich has been grappling with federation certificates (MSCs 1708, 1711) and Erik is pushing on with event ids as hashes MSC 1640. Meanwhile Hawkowl has been cranking out bug fixes and perf improvements and in particular taking a look at taming the user_ips table.

While Debian packager Andrewsh adds:-
latest synapse (0.34.1.1, Python 3) in Debian, fixing CVE-2019-5885; an update to a previous release fixing this CVE uploaded to stretch-backports, using Python 2. Dependencies for a Python 3 upload approved in stretch-backports, a Python 3 upload of 0.34.1.1 will be following later this week

Riot/iOS


Riot-iOS 0.7.11 has been released, with lots of bug fixes.

We have been working on e2e new screens (like key backup setup) and the re-skinning of the app.

Riot/Android


Working to improve notifications style.

Split screen mode will be supported on next release!

Continuous autofocus on the Camera has been enabled.

Also fighting bugs on registration.

Bridges


Halfshot has this to say:
Matrix-appservice-purple is being renamed to matrix-bifröst, on the basis that we now bridge to things and "burning rainbow bridge" seemed like a good description.

Other things that have happened: Performance improvements, as always. XMPP -> Matrix typing notifications XMPP -> Matrix avatars XMPP -> Matrix uploads * Matrix -> XMPP uploads (via oob)

and then follows up with this:-
As promised, we've got a discord bridge release out today. v0.4.0-rc1 has landed! See the change notes https://github.com/Half-Shot/matrix-appservice-discord/releases/tag/v0.4.0-rc1 . Thank you to Sorunome for doing a huge amount of work on this!
@swedneck reports that:
linuxgaming.life is now running matrix-appservice-discord v0.4.0-rc1.

Matrix.org Foundation

Matthew has a final draft of the Matrix.org Foundation governance document ready: https://github.com/matrix-org/matrix-doc/blob/matthew/msc1779/proposals/1779-open-governance.md. Comments on https://github.com/matrix-org/matrix-doc/pulls/1779 would be much appreciated!  We expect to propose merging it next week, and then incorporating it into the final Articles of the foundation.

Riot Web

Loads and loads of work happening on https://riot.im/experimental which is now where all new development is happening as we race towards launching the new design.  Highlights include:
  • All new key verification is implemented! (in olm & matrix-js-sdk).  We're currently hooking up the UX.
  • Online key backup is pretty much finished.
  • Cross-signing is up next.
  • Redesign backlog is progressing (slightly stuck on making the RoomList resizing work nicely, but almost there)
  • Finalising the all new registration/login screens
  • ...and loads of other stuff too.

Meanwhile...

kitsune reports that:
Sending files landed in master branches of libQMatrixClient and Quaternion. Finally you can send your Quaternion screenshots (as any other images, jingles, cat videos etc.) to Matrix using Quaternion ;)

Also, libQMatrixClient is available as a Conan repository, for developers who'd like to use Conan to track dependencies.

progserega reports that:
Hello to all! I am write matrix bot for bridge messages between matrix and social network vk.com (russian analog of facebook). https://github.com/progserega/MatrixVkBot

alphapapa reports that:
matrix-client.el gained a room-list buffer, which can be sorted by unread status, name, number of members, etc, and has a right-click context menu like the room-list sidebar.

matrix-client.el gained right-click context menus in the room sidebar, allowing to set room priority, notifications, etc.

The matrix-client.el git repository has moved to: https://github.com/alphapapa/matrix-client.el


Stanislav N. aka pztrn reports that:
Hey guys, joined here to post another thing that works in Matrix https://gitlab.com/pztrn/check_mk_matrix_notifications it is a script that sends check_mk notifications to Matrix. Check_mk is a "plugin" for Nagios NMS.

Cadair reports that:
It's not my update but I saw this HomeAssistant addon for matrix (https://github.com/hassio-addons/addon-matrix) and wanted to make sure it got a shoutout on TWIM. [Seeing how nobody else has posted it in here, just on twitter etc.]

Morgan McMillian (thrrgilag) reports that:
I published v1.0.1 of the pnut-matrix bridge this week which brings public pnut.io chat rooms to the matrix network. Features include syncing of pnut.io names and avatars, matrix users ability to authorize their pnut.io accounts, and administrative controls for managing linked rooms. Project can be found at https://gitlab.dreamfall.space/thrrgilag/pnut-matrix and discussion is at #pnut-matrix:monkeystew.net
MMJD reports that:
ma1uta's MXToot deserves mention in the blog, and in https://matrix.org/docs/projects/try-matrix-now.html . People should not be wanting of Twitter over Decentralized-Federated F(L)OSS feeds in their Matrix room.

uforia reports that:
in the koma project, the desktop client continuum now does a full sync when the user account doesn't seem to have joined any chat rooms, this way, it can recover from some disk IO errors, or more commonly, unclean shutdowns. A ca-certificates issue with Java 11 on Debian stable was found while running a bot on a headless server, more details and the solution is in the README

vabd reports that:
Our first specs proposal of 2019 just landed in the form of SCS #16, which specifies the data/event structure for trust authorities. This is a big step as TAs play a key role in Informo's trust/reputation system!

In the meantime, we've also opened SCS #19, which proposes a rework of the specs' introduction with the idea to give newcomers a more accessible and immediate way to figure out what Informo is about, and give them some starting points so they can dive deeper into it if interested. It's a rather small one and we'd love people to give it a look so we can aim for the most newcomer-friendly version possible

We've also just opened SCS #21 which specifies a way for a source to change the Matrix user it uses to publish articles (e.g. if it was previously using a server managed by non trustworthy people). As with all of our proposals introducing changes in behaviour, it's open for people to share their comments on it for the next 7 days.

Maximus reports that:
The first alpha release for mxisd v1.3.0 has been released with already major performance improvements. Early testing and reporting about success/failure would be very much appreciated as v1.3.0 will break backward compatbility. We have been running it on our own servers for about a week now and feels really good and stable.
Friedger Müffke reports that:
I just launched OI Chat, a matrix service dedicated to Blockstack users (https://www.producthunt.com/posts/oi-chat).

It is a home server that does not rely on any passwords but on cryptography and user-owned storage

This is a first step towards login with private/public keys as suggested in MSC1768
OI Chat uses one-time logins to verify the ownership of a username that can only be created by the user if they control the blockstack account.

...and that's all this week, folks!  Your normal hand-crafted artisanal benpa confectionery will be back next week.

This Week in Matrix 2019-01-04

2019-01-04 — This Week in Matrix — 

Welcome to 2019

It's been 2019 for several days now, plenty of time to get used to it! Let's get started with the first TWIM of the year!

Matrix Live S3E09 from 35C3

Several Matrix-ers attended 35C3 in Leipzig last month, you can check out Matrix Live recorded from the conference below (also includes some screenshots and other clips of the event), and also watch a talk given by this author titled Matrix, the current status and year to date.

Welcoming Jason Robinson to New Vector

Decentralisation lover and Python fan Jason Robinson joins New Vector!
one of my dreams of working for a company that is a driver and leader in open source and open standards is coming true

matrix-appservice-purple


Hey Half-Shot, what bridges have you worked on this week?
matrix-appservice-purple got soft launched on matrix.org and is happily bridging XMPP and matrix communities together. I am on full bug and feature fixing duty for it and the consensus from both sides is that it's looking pretty awesome.
The matrix-appservice-purple bridge is coming along leaps and bounds, with formatting fixes, presence handling and speedier message delivey both ways. Also a shoutout to the XMPP community for guidling me through the XEP landscape and giving the bridge a thorough testing. :)

Riot Web Experimental

Riot Web Experimental was announced in a blog post last month, and is ready to get some more testing! Note that the name is still "experimental", but to get an image of where things are going, please give it a try!http://riot.im/experimental

Riot iOS

Photo sharing via the app share extension has been fixed this week.
At the time of writing, a new Riot iOS is baking with all bug fixes made the last month.

Riot Android

Riot 0.8.21 has been released on 01/02 on the PlayStore and on F-Droid.

This version contains:

  • A new notification troubleshoot screen with the possibility to run a diagnostic and to submit bug report. Feedbacks are already coming and we improve this screen incrementally to help users.
  • A new invitations counter on the group icon in the home screen
  • Other bug fixes
We are still working on push/notification reliability. Riot Play Store resources have been translated into 8 languages so far: Basque, Bulgarian, Chinese (Traditional), French, German, Hungarian, Italian and Portuguese (Brazil).

matrix-client.el's many updates

alphapapa provided many updates for matrix-client.el this week, I recommend chatting in #matrix-client.el:matrix.org where the cultists Emacs users and client devs hang out.

matrix-client.el gained more room sorting options and a /priority command to set room priority. It also includes a workaround for a Google Chrome drag-and-drop bug on Linux, so now Chrome users can drag-and-drop URLs, files, and images directly into room buffers to upload them.

matrix-client.el gained a new notifications-buffer feature that shows notifications from multiple rooms in a single list, allowing you to easily monitor multiple rooms at once and jump to events in them.
e.g. I can see messages from #matrix and #twim in the same window, and reply to messages in both rooms from the same prompt

koma project: now continuum-desktop (client) and koma library

uforia from koma announced that the client formerly known as koma is now continuum-desktop:
in the koma project, the desktop client now has continous integration and prebuilt packages for Mac and Linux; and you can click on image messages to zoom in. A simple weather bot is created reusing the same implementation of matrix client api. Send it the name of a city, and it will fetch the current weather using openweathermap

Fractal


Alexandre Franke appeared from Fractal to tell us:
the Fractal team focused on improving code quality (including moving to Rust 2018) with a dozen merge request currently being reviewed (a couple of which have already been approved).

Fractal made incredible strides in 2018, can't wait to see how they progress in 2019.

mxisd


Max, creator of mxisd, announced:
All versions of mxisd dropped support for Riot v0.17.8, introducing a bug affecting many of its features. Any new release integrating this PR will also be dropped of support. mxisd users are strongly encouraged to roll back to v0.17.7
This design concern is noted by the riot-web team and is under investigation.

Dendrite audit progress

Brendan on the progress of the Dendrite audit:
Dendrite's audit is finally coming to an end! I'm happy to say I just finished the “data collection” phase, in which I looked at everything that needs to be either fixed or implemented in Dendrite. This represents 90% of the work and around 3 weeks of full-time work. All that's left to do now is some triaging in the data (which is available here, by the way), into order to have a clear view on what's left to do in the audit. Expect a lot of new issues and a shiny project board appearing on the Dendrite repository next week ?

Informo news


Informo is a project intended to enable information sharing, especially for vulnerable activists. It is enabled by Matrix. vabd, the mystery individual behind the project announced:
Our specs bot, which shouts in Matrix rooms when the state of a proposal to a specs project changes, got an upgrade: it now handles concurrency better, and can now send multiple messages if multiple matching labels are added to the proposal in the same action (before, it just wouldn't know what to do in such an event and would fail silently).

msc-chatbot

The MSC process is the formal process by which changes are submitted to become part of the Matrix specification. anoa has been working on a bot to help with the process:
msc-chatbot now exists. It has commands that let you view the status of current MSCs, as well as a daily summary of MSCs to keep people up to date.

Matrix-Minecraft bridge


TravisR, as if he has time to be working on such things, has announced the revival of his Matrix-Minecraft bridge:
I've brought my Matrix<-->Minecraft bridge back to life in the form of a Bukkit plugin. It's still in the very early stages of development and requires you to compile it yourself to get it, but it is a thing. Check it out on GitHub: https://github.com/turt2live/matrix-minecraft
It'll be designed to work as a public hosted bridge, so someone could use t2bot.io to bridge their minecraft server (for example)

stickerpack dimension migration tool

Dandellion has created a tool for stickerpack creators:
I've finished https://dali99.github.io/stickerpack-dimension-migration-tool/ for a niceish way to make migrations files for custom stickerpacks in dimension

XMPP (as Jabber) turns 20


As noted in The XMPP Newsletter:
Today is Jabber's 20th anniversary! Jabber would later be standardized and renamed to XMPP.
On this subject, it's always worth thinking about the importance of openness and interoperability in messaging. This recent article in Linux Journal is a reminder of the need to avoid proprietary vendor lock in, and mentions both XMPP and Matrix.

We'll meet again…

Come chat in #twim:matrix.org with your Matrix news to be featured in this post. Next Friday there will be another weekly edition, but before then expect to see an edition to the effect "benpa's best-of-the-community 2018".

This Week in Matrix 2018-12-28

2018-12-28 — This Week in Matrix — 

Welcome to the last TWIM of the year

It's the 28th of December as I write this, and I hope you had a good year. Long as it is, I recommend reading Matthew's write-up of the year, as it covers a lot of ground!

Many of the core team have been out of the office this week, but there are still plenty of updates to share from the Matrix ecosystem!

mxisd v1.2.2

Max released mxisd v1.2.2:

mxisd had a Holiday-special release: v1.2.2 before v1.3.0.

This release introduces two new big features:

  • Username login rewriting via 3PID to allow advanced flows, like bypassing the synapse restriction of having numerical usernames for non-guest users
  • Support for multiple Base DNs for LDAP backends
Work has started on v1.3.0 so this is definitely the last release before a non-backward compatible release.

Scylla

VaNilLa has started a new client, a web app build in Elm:
Hi all! I am working on a Matrix client in Elm, and I was recommended to share it here: Scylla

koma-desktop


druig:
koma-desktop is updated to JavaFx 11 and installation is simplified. Dependencies, including native modules can be packaged into one single file, which only needs to be downloaded and run. Java Runtime 11 is the only runtime dependency. Now it's just cross-compilation that needs to be set up before packaged releases can be provided for Mac, Windows, and Linux users.

Prometheus Alertmanager bot for Matrix

Jason Robinson:
I started work on a Prometheus Alertmanager bot for Matrix. The basic idea is that Alertmanager can send webhook alert events to the bot which will then send the formatted events to configured rooms based on the alert receiver. It works, but is still early work in progress. See code and info here: https://git.feneas.org/jaywink/matrix-alertmanager.

Also mirrored on GitHub: https://github.com/jaywink/matrix-alertmanager

QMatrixClient


kitsune:
This week QMatrixClient project gained some improvements in macOS support (thanks to Matthew and Aaron Raimist!); but most of Kitsune's time (aside from dayjob) has been spent on attachments uploading in Quaternion. This required improvement in support of uploading in the library. These changes have now landed in the master branches.

Fractal 4.0


Alexandre Franke:
As expected the Fractal team released 4.0 and is already hard at work on the next micro version. We recommend getting it from Flathub like we usually do.
From the release notes:
New features:
  • Enhanced history view with adaptive layout, day divider
  • Reorganised headerbar, app menu merged with user menu
  • Larger display of emoji-only messages
  • Some performance improvements
  • Opening a room jumps to first unread message
Bugfixes:
  • More reliable notifications
  • Fixed display bug for avatars
Under the hood:
  • Large code refactor
  • Logging infrastructure
  • Continuous integration
  • More informative build output

maubot

tulir working on maubot:
The new command handling system in maubot is ready. The new system should be much nicer to use when developing plugins.

Previously maubot had a system that was designed after the improved bot support spec proposal, but it wasn't very nice or pythonic. If/when the proposal or something similar goes through, I'll probably add support for it in the new command handling system.

Next I'll make some developer docs so that other people could actually make their own plugins.

The code is at https://github.com/maubot/maubot and you can ask about maubot in #maubot:maunium.net.

matrix-client.el new features


alphapapa:
Emacs makes it so easy to integrate things. Now you can send org-mode syntax messages with the /org command in matrix-client.el.

Tab-completion of usernames and IDs was added to matrix-client.el.

matrix-to GitHub app

t3chguy has come out of hiding to announce:
https://github.com/apps/matrix-to is a Github App which makes use of their shiny and new Content Attachments API/Webhook. When a matrix.to or view.matrix.org URL is used this app is activated. It adds a little snippet with the Room Title and Topic (if the room is peekable from matrix.org). In future it'll work for event permalinks, but currently there is no support for peeking context/event in Matrix API.

Example can be seen at https://github.com/matrix-org/matrix.to/issues/52#issuecomment-449878490. Idea courtesy of TravisR.

See you next year

So there you have it.

I'm at 35c3 with some known characters from the Matrix world (as well as 15,000 others.) If you're here too, come visit us in our assembly, and also make sure to come to Dijkstra tomorrow to watch me present a look back at on the last year: https://fahrplan.events.ccc.de/congress/2018/Fahrplan/events/9400.html. We have recorded a message for Matrix Live from 35c3, but will post tomorrow with some more footage from the event.

Otherwise, see you next year Matrix fan!

This Week in Matrix 2018-12-21

2018-12-21 — This Week in Matrix — 

Matrix Live: Half-Shot talks bridges, and working on libpurple bridging to Matrix

You may have seen that Half-Shot been working fearlessly and tirelessly on bridges for many, many months. In this episode of Matrix Live Half-Shot chats with Matthew about his work, progress and achievements, with a focus on recent matrix-appservice-purple and XMPP work. Audio is not amazing, but worth listening to get acquainted with recent work.

As a note from Half-Shot:

The matrix-appservice-purple bridge gained a XMPP specific backend for better performance when you want to do just xmpp bridging. It's rather quick right now, and needs dogfooding.
Chat in #purple-bridge:half-shot.uk!

Matrix badges on shields.io

TWIM

Brendan:

A couple of weeks ago, fr1kin PR'd a nice Matrix badge to the Shields project that tells you how many users are in a public room. There were a few issues with it so I PR'd some changes to make the badge more usable, and it's now merged and live (as of yesterday evening), with examples available here! ?
For instance, here's a badge for TWIM: https://img.shields.io/matrix/twim:matrix.org.svg ?

Spec update

New MSC for cross-signing, which has different (hopefully better) semantics from the previous cross-signing MSC.

matrix-js-bot-sdk support for application services

TravisR, author of matrix-js-bot-sdk:
matrix-js-bot-sdk has received early support for application services. Similar to the official matrix-js-sdk, the bot-sdk uses an Intent-based model for making bridges easier to write. Check out the simple example here for more information on how it works.

koma-library


druig continues work on their JavaFX/kotlin client project:
The matrix client API implementation in koma is being extracted into a new repo, which is going to be a lightweight library for Kotlin.

Seaglass now available on homebrew

Aaron Raimist reports that Seaglass is available on homebrew for macOS:
Installing Seaglass is now easier than ever. If you already use Homebrew to manage other packages, you can now install Seaglass with a simple brew cask install seaglass.

If you don't use Homebrew, you can still download Seaglass from GitHub.

matrix-client.el is reborn!


alphapapa reports from a team who have forked and are maintaining a Matrix client for Emacs:
Many additions and improvements to matrix-client.el (https://github.com/jgkamat/matrix-client-el) recently, including a "standalone client" mode that launches Emacs to look like this.
Chat in #matrix-client-el:matrix.org.

matrix-docker-ansible-deploy

Slavi:

the matrix-docker-ansible-deploy playbook has received some bugfixes and improvements lately. Most importantly, it's now running the freshly-released Synapse 0.34.0 under Python 3, so memory usage should be much better.

libQMatrixClient/Quaternion


kitsune:
I started work on matrix: scheme support in libQMatrixClient/Quaternion. Expect more news on this around New Year.

Fractal road to 4.0

Fresh from their hackfest in Seville last week, Alexandre Franke reports:
The Fractal crew spent the week chasing last minutes bugs and made two beta releases (3.99.0 and 3.99.1) in preparation for the big new stable release, 4.0, which is right around the corner.

New Rooms for Space Launches and Aviation


Aaron Raimist has been creating some new rooms:
#space:im.kabi.tk for anyone interested in space, rocket launches, satellites, etc.
Are you wondering what NASA's new Mars Rover is doing? Maybe you live on the west coast of the United States, and you saw that meteor on Wednesday night that came within minutes of a scheduled rocket launch and just after three astronauts left the space station. If any of that sounds interesting to you, feel free to join the room.
A Matrix bot is being tested to send updates about upcoming rocket launches to the room.

#aviation:matrix.org for anyone interested in aviation. Whether you are a pilot, someone who visits an airshow once in a while, or if https://www.youtube.com/watch?v=CXv1j3GbgLk piqued your interest, come join.

t2bot.io upgrade

TravisR:
Just a head's up that I've increased the storage capacity of the database. With current projections, the server should be good for another year or two.

The database is also 1ms closer to Synapse and has a faster CPU in it. It probably won't make a dent in speed on federation, but it is a step forward.

I'll be rolling out python 3 to the homeserver this week too, which should help a little bit.

https://riot.im/experimental/#/room/#help:t2bot.io/$154511414912clELm:t2l.io

FluffyChat 8.0 RC announced


Krille and his Ubuntu Touch fans are looking forward to FluffyChat 8.0:
Hey guys, in order to release the FluffyChat 8.0 Christmas Edition, the FluffyChat 8.0 release candidate is ready for you! :-)
Also the weblate translations are ready: https://hosted.weblate.org/projects/fluffychat/

Riot iOS

From the Riot iOS team:
  • We have fixed and improved some e2e stuff.
  • Back to reskin. We start to implement e2e backup screens.

Riot Android

From the Riot Android team:
  • New screen to troubleshoot notification issue has been merged on /develop.
  • Splitting current Android SDK to separate crypto part is on it's way. We're doing this in order to be able to integrate crypto faster in the Riot reboot.

Synapse

Neil from Synapse reports:
We released 0.34.0! This release recommends Python 3 for production and brings with it huge performance improvements. If you've been putting upgrading off upgrading your Synapse, now is the time to do so. For more details here is a post that explains what you should expect and a recent Matrix Live interviews Amber (hawkowl) on the subject.

Aside from that we are working furiously towards federation R0 and have a bunch of MSCs to get us ever closer. You can track our progress here.

andrewsh notes that 0.34.0 is also available in the Debian repos:
Synapse 0.34.0~rc2 in Debian since Tuesday, 0.34.0 uploaded today; both use Python 3 only

Dendrite

Brendan reports:
Dendrite's internal audit is progressing very well and is getting very close to its end.
What's left to do for me is check the implementation status of a few Matrix features, and translate those into tagged GitHub issues so that everyone can have as clear of a view as possible on what's left to work on.
I'm on holiday all of next week, but hopefully will have some good news about that the following week.

That really is it for now

Did you get to the end? What was your favourite section? Come tell us in #twim:matrix.org! Do you have your own update you'd like to add? Same place, come chat in #twim:matrix.org.

Next week is various things. It's Christmas, which means there will be more hacking and coding happening than usual I expect! It's also 35c3, which I will be attending, and might affect scheduling next week. Stay tuned in #twim:matrix.org for news, and come join us in #matrix-35c3:matrix.org if you'll be there and want to meet up!

Merry Christmas!

This Week in Matrix 2018-12-14

2018-12-14 — This Week in Matrix — 

Fractal Hackfest

Developers and creators of Fractal, the GNOME Matrix client, have been holding a Hackfest this week in Seville. Matthew and I caught up with them on video for Matrix Live this week, and discussed the product improvements they've been making and their plans for the next release (due next week!)

Matrix Spec

This Week in Ruma

We don't often get to feature news from Ruma, but this week there is an updated This Week in Ruma.
Ruma is not dead, however, and small improvements have continued over the last year. The Matrix spec has advanced quite a bit and many of the blocking issues for Ruma have been resolved. Rust's maturity is another story. async/await is still under development and this is the most significant blocking issue to progress on Ruma.

maubot new tooling

tulir has been working on tooling for maubot:
maubot got a command-line tool for building plugins and managing maubot instances. I also added some server-side stuff for easy registration of accounts in the management interface using synapse shared secrets, but the UI for that isn't ready. Also, I'm planning on adding some kind of small Matrix client in the management interface for manually managing the added bot clients. That might lead to a separate library that could be used in other projects or embedded in websites.

mxisd v1.2.1 released, updating recommended

Max with a new release of mxisd:
mxisd hits v1.2.1 with a new maintenance release, fixing bugs and regressions from v1.2.0. Updating to v1.2.1 is strongly encouraged as v1.3.x will contain breaking changes and will not be a straight-forward update like v1.x has been until now.

Clients

Lazy-loading lands in QMatrixClient

kitsune has reported that lazy-loading, a Matrix feature that entails only loading room member details as needed, is now in libQMatrixClient master.
reference implementation in Quaternion will follow up
Black Hat has been testing the feature in Spectral, which uses the library, and says there is a 30%-50% reduction in RAM usage at startup.

Riot Web progress on /experimental and v0.17.8 released

Bruno has been working on /experimental, and I recommend taking a look at the progress there! The next version of Riot Web is closer than ever.
Improved read markers now available on /experimental, needs further tweaking though. Brought back community UX on redesign, other small improvements.
v0.17.8 was released with several bugfixes and improvements.

Riot iOS

Release made with these notes:
This new version supports the consent of matrix servers terms of service (including GDPR) in the registration flow. It also contains fixes for the "Empty room" bug, the registration issue on iOS 10, etc.
Get more information:

Riot Android

Release made:
This new version supports the consent of matrix servers terms of service (including GDPR) in the registration flow. Many bugfixes SDK contains KeyBackup
Get more information:

Servers

Synapse

A lot of focus on getting debian packages ready for python 3 - this is a blocker for our official python 3 release 0.34.0. Aside from that, finalising some outstanding state resolution behaviour (https://github.com/matrix-org/matrix-doc/pull/1693) and dusting off event ids as hashes (https://github.com/matrix-org/matrix-doc/issues/1127.)

Dendrite

Brendan:
My internal audit of Dendrite is continuing, drawing a more and more precise picture of what's left to fix and implement. I aim to have it over by the end of the year, or the very early days of 2019 at the latest. Folks can track its progress through https://cloud.abolivier.bzh/index.php/s/qXi2KFjCQk2c6eG

modular.im now has Extra-Large instances available

Due to demand, modular.im Hosted Homeservers now has Extra-Large instances available. If you need to service 1,000+ users on a Matrix homeserver, this is the product for you!

linuxgaming.life homeserver is the number one Matrix homeserver focused on Linux gaming

swedneck has continues his work on linuxgaming.life:

I've added some bots, health monitoring, and dimension integration manager to linuxgaming.life, and made the website dark.
The homeserver is open for new registrations.

That's all I know!

If you'd like see your Matrix-related project featured in this blog post, come chat to us in #twim:matrix.org, and we'll see you next week!

This Week in Matrix 2018-12-07

2018-12-07 — This Week in Matrix — 

Matrix Live S03E06

In which Matthew & Amandine discuss The Matrix.org Foundation, go-live for the French Government deployment for Matrix, and some exciting random diversions into post-1.0 Matrix features which should land once once 1.0 is out the door!

Purism sponsoring Fractal development

Purism announced they are sponsoring Fractal development, starting with Julian Sparber working last month to improve the message view. You can read about his progress here. Highlights:

Before, there was a jarring cut when new messages were loaded, but now you can just scroll upward and older messages are loaded continuously.
The part I'm most excited about is the new "new message divider". When the user opens a room they can directly start reading the conversation from the last seen message and they don't need to search for the new message divider. Not only has the UX gotten a lot better, but also the underlying code is much cleaner now.
I also spent some time on making message rendering faster. I replaced the RegExp with more efficient code, this made the rendering much faster (from ~10ms to ~ 1ms) for every single message.
In summary, all of these things improve Fractal's UX a lot and make it feel more like a modern messaging app.

Synapse 0.34.0rc1

0.34.0rc1 is out - please test it! 0.34.0 will be the first to officially support python 3. We're still working on the debian packaging but 0.34.0 proper should be out next week.

Dendrite

Brendan has been getting on with Dendrite development:
Started auditing Dendrite's codebase to identify what is left to implement, along with what hasn't been implemented correctly. Still a lot of work left to do on this, but it's looking promising so far.

Modular


Modular is a Hosted Homeservers product, check out modular.im. This week:
Matrix -> Matrix account migration tool available at https://www.modular.im/tools/matrix-migration. It's still beta, so please test it and let us know if you experience issues.

New Homeserver: linuxgaming.life

swedneck has set up a new public homeserver at linuxgaming.life! There is also a Riot installation at https://riot.linuxgaming.life, served via IPFS.
Currently working on the website (based on t2bot.io, thank you travis for making that available on github!) and making things nicer in general.
I will be adding more bots shortly. Please let me know of any issues with the HS or anything surrounding it.

Informo


Informo is a project to create a specification and implementation for distributing information and news. This week they have been working on merging changes to the specification:
Work on the Informo specifications has slowed down a bit in the last couple of weeks, though since the last update we did manage to get some relatively big SCSs merged into the specs, including SCS #9 (rendered here) which specifies how information sources must publish their information through the federation, and SCS #11 (rendered here) which describes how sources must register themselves in order to be picked up by clients, and handle localisation. ?
There's still a couple of big items to take care of before we can cut a 1.0 release of the Informo specs but this is definitely a huge step towards this goal.

Minecraft Bridge

Dandellion:
I started working on a Minecraft bridge pretty heavily based on Travis's old project, but using Minecraft-protocol instead of mineflayer.
You need a bot Minecraft account that can join and idle in the server, it then uses /tellraw to post messages.


Spectral


Qt 5.12 LTS was released yesterday, and Black Hat is eager to get it integrated with Spectral:
As Qt 5.12 was released a few hours ago, I am porting Spectral from 5.11 to 5.12. It will utilize QtQuick's new DelegateChooser to bring a faster timeline. Lots of code refactoring and cleaning are also going on.
I plan to drop Qt 5.11 support as soon as Qt 5.12 gets into major GNU/Linux distributions' repositories.

libQMatrixClient 0.4.1 released


libQMatrixClient, which powers Spectral and Quaternion was released by kitsune, Lazy Loading coming soon:
libQMatrixClient 0.4.1 has been released today, with small fixes in the stable branch. Meanwhile, active work is ongoing on lazy-loading support in the library, with ETA for the feature landing in master being in about a week or so.

Riot Web

Riot iOS

  • Reskin still ongoing
  • A new release is coming
  • Less activity because of POSS

Riot Android

  • A new developer joined us to help maintaining Riot: Valere Fedronic
  • Keys backup PR in review
  • Privacy Terms acceptance in login flow in review
  • FCM issue investigation/troubleshooting by Valere
  • François Off (sick :()
  • New theme is coming soon

Koma

druig has been working on Koma, a JavaFX Matrix client:
This week in koma: implementation of json library switched from runtime reflection to compile-time code generation
The matrix api is implemented manually in the project, retrofit and moshi are used to interact with the rest api.

SimpleMatrix

As we mentioned in TWIM last week, MTRNord has been working on designs for SimpleMatrix, a Matrix client for Android in development. This week he has made a video showcasing the new design.

Redecentralize meetup in London

Last night Half-Shot & Neil & Brendan went to see the Redecentralize folk at their meetup:
Beer! And pizza! And also Redecentralize
We chatted to a nice bunch of folks both demoing their decentralized projects and talked to the likes of scuttlebutt, BBC, IPFS and more. Was a interesting experience having around 8 minutes to quickly explain to newcomers what Matrix is and why they should use it in a speed dating format. We chatted (and demoed) bridges, new-riot and generally how it all fits together. There were a lot of very interesting people with different profiles and backgrounds, and diversified questions which lead to a lot of interesting discussions.
Note for the confused: the format of the meetup was comparable to speed dating. There is no suggestion that Matrix should be used at regular speed dating. If you do find such a use for Matrix, come tell us in #twim:matrix.org.

matrix-wug, X-SAMPA to IPA bot

Last month Dandellion introduced a bot designed to convert between formats for pronunciation notation, this week he released the source code: https://github.com/dali99/matrix-wug

The end of the post, and nearly the end of 2018

This week it has been winter-in-Europe kind of weather, but that's ok, it happens every year. TWIM on the other hand happens every week, so if you have something to share, and would like to share what you've been working on, come chat to us in #twim:matrix.org.

This Week in Matrix 2018-11-30

2018-11-30 — This Week in Matrix — 

Porting to Python 3 - Matrix Live S3E5

Longer than usual episode of Matrix Live this week. Amber talks to Neil about the works she's been doing over the last few months to port Synapse from Python 2 to Python 3. Recommended for anyone who's been following along the progress of Synapse, or who wants a good intro on the benefits of Python 3 over Python 2.

ZeroPhone

This week we learned about ZeroPhone, a fairly mature project aiming to build a working cellphone on top of a Raspberry Pi Zero.
an open-source smartphone that can be assembled for 50$ in parts. It is Linux-powered, with UI software written in Python. Currently, ZeroPhone is based on Raspberry Pi Zero, SIM800L GSM modem and 1.3" OLED screen and button interface.
&Adam was the first to bring it to our attention:
I stumbled across this blog post which mentions a matrix app in a project to create an open, hackable phone out of a raspberry pi. It's old news at this point I guess, but I don't think I've seen it mentioned here, so I thought it might be a neat thing worth featuring: https://zerophone.github.io/newsletter/ZeroPhone-Weekly-No.-16/
The creator of the Matrix app, derivmug also arrived to tell us about his work:
Hey everyone, I have been suggested to post about the Zerophone project here. I have written a basic matrix client for it. It's basically a simple phone based on a raspberry pi zero, focused on privacy, security and hackability.
The client app is built using the matrix-python-sdk, I'm also hoping to chat to derivmug as part of a future Matrix Live. Take a look at the code here.

Just to prove it's running on real hardware!

Spec / Foundation

  • Work continues on MSC1730 - Mechanism for redirecting to an alternative server during login https://github.com/matrix-org/matrix-doc/pull/1730
  • Foundation: Working with the Foundation lawyers on the CIC37 to register the Foundation as a Community Interest Company proper

The Federation (the-federation.info)

Jason Robinson is passionate about Federated technology, and has been working on his site at https://the-federation.info/ for some time. He recently added Matrix to the list of protocols he scrapes and lists:
Matrix (or more specifically, Synapse) servers are now visible on the The Federation info website at https://the-federation.info/matrix%7Csynapse. The website collects lists of servers for various federation protocols (like Matrix, ActivityPub, Diaspora, etc). If a server outputs usage information, it also shows some historical information for servers and projects. Currently the information available from Synapse on the site is just version, availability of registrations and (obviously) domain name. If you want to register your server, check https://the-federation.info/info for more details. Tips also welcome on how to register other Matrix server projects and how to get more data out of servers.

maubot

tulir has continued work on maubot:
  • I made a rss plugin for maubot and added a fancy log viewer in the maubot management UI.
  • mautrix-telegram 0.4.0 was released, though it has no changes since the release candidate. I also copied mautrix-telegram's HTML parser into mautrix-python. Hopefully it's now generic enough so that when mautrix-telegram switches to mautrix-python, it can drop most of the built-in HTML parser.

matrix-appservice-discord

Bridge-of-the-week this week is matrix-appservice-discord. Anyone in the dev room (#discord:half-shot.uk) will be very aware of this as Half-Shot and Sorunome have spent the day testing @room notifications.

Sorunome:

matrix-appservice-discord received a lot of work these past days. Not only the usual small bugfixes, but also some rather big changes: The parsers for both Discord->Matrix sending and Matrix->Discord sending were re-written completely to properly handle things (and thus, at the same time, crunch a bunch of edge-case bugs!). In addition, the long-awaited highlighting issues with @ everyone and @ here (on discord) and @ room (on matrix) were addressed. Some of these things are still in PR stage, but expected to be merged soon!
Half-Shot also provided a great screenshot of everything working well:

is just showing off having IRC+Matrix+Discord+XMPP plugged together. XMPP being the one purple is bridging

matrix-docker-ansible-deploy

Slavi reports that:
matrix-docker-ansible-deploy now supports configuring the matrix-synapse-ldap3 LDAP auth password provider. Thanks to @tvo6 for contributing this!

Riot iOS

  • User Agreement (GDPR) in now part of the registration flow
  • Reskin has started
  • New fixes for unexpected “Empty room”
  • We have PR templates

Riot Android

  • Realm store for e2e keys has landed
  • Riot reboot: support timelines merge in DB to avoid to trash data as less as possible when navigating through permalinks
  • New settings to choose ringtone for incoming call
  • We have PR templates also

SimpleMatrix

MTRNord, is working on the design for SimpleMatrix:
As I currently have less time for actual coding I am planning out the SimpleMatrix Design. You can find the Images of the Design (and a PDF file) at https://gitlab.com/Nordgedanken/simplematrixredesignimagesFeel free to also join #SimpleMatrix:matrix.ffslfl.net to give feedback.

Synapse

  • This week our focus has been to work through some final bugs blocking 0.34.0 which will be our first official python 3 release. Expect a RC rsn. For a sneak peak see this week's Matrix Live video at the top!

Auf Wiedersehen…

That's it for this week. If you have anything to share with us, and you'd like to be included on the blog, please come talk in #twim:matrix.org!

In one month from now, many Matrix-acolytes, including myself, will be at 35c3. If you'll be there, come chat to us in #matrix-35c3:matrix.org!

This Week in Matrix 2018-11-26

2018-11-26 — This Week in Matrix — 

A little delay to the release of this week's TWIM, expect us to resume normal schedule on Friday.

Spec & Foundation

  • Two workshops happened with the Foundation lawyers to work on MSC1318 - basically fleshing out a proposal for the details of the foundation governance in terms of how the Guardians (i.e. directors of the foundation board) should interact with the Core Spec Team to act as a back-stop - and working out how to port the MSC (once finished) into formal Articles of Association & adjunct documents. We'll get the workshop notes written up as a rewrite of MSC1318 very shortly.
  • New MSCs from vdH on:
    • MSC1721 Rename m.login.cas to m.login.sso
    • MSC1730 Mechanism for redirecting to an alternative server during login
  • …and an alternate to MSC1730: MSC1731 Mechanism for redirecting to an alternative server during SSO login.
  • These three SSO-related MSCs are derived from work being done for a large-scale Matrix deployment for a New Vector customer which we should be able to talk about in future. Improving SSO and other auth/identity work in Matrix is vital, and needless to say we're trying to ensure all the resulting work ends up in the spec to the benefit of the whole ecosystem :)

matrix-media-repo

TravisR reports that:
matrix-media-repo has received a lot of updates in the last few weeks. Although mostly bug fixes and improvements, there's added support for streaming downloads from remote servers. This is mostly useful when someone posts a 100mb video in a room: previously the media repo would download the entire thing then send it over to you. Now it'll send you the video while it also caches it.

matrix-docker-ansible-deploy

Big update from Slavi this week:
matrix-docker-ansible-deploy has received some updates in the past few weeks - fixing minor bugs, improving documentation, adding support for additional Synapse/Riot features, etc.

Most notably (in oldest to most-recent order):

I'm quite happy that the playbook is getting more contributions from others now and is improving in such diverse ways!

Additionally, the #matrix-docker-ansible-deploy:devture.com support room in Matrix is now bridged to the #matrix-docker-ansible-deploy IRC Freenode channel, making it easier for people to get support when they don't have a working homeserver.

libQMatrixClient

kitsune has been working on libQMatrixClient:

the work on lazy-loading in libQMatrixClient has advanced to the point when client authors may start trying to integrate it in their applications (welcome to #qmatrixclient:matrix.org for details - it's a bit rough around the edges yet).

Spectral

This week Black Hat has been working to give Spectral a more Material design oriented UI.

SMSMatrix

swedneck reports that:
SMSMatrix now has a room (#smsmatrix:matrix.org). SMSMatrix is a simple bridge between Matrix and SMS, developed by tijder. You install an android app and register a bot account which will invite you to direct chats under the name of anyone who sends you an SMS, which will then act as a normal SMS conversation.
I had a very quick play with this tool and it works great - a good way to quickly bridge SMS to Matrix.

Riot

News from the Riot teams:

  • Android rewrite is continuing in Kotlin - lots of infrastructure work over the last few weeks
  • E2E key backups landed in Riot/iOS develop (but no UI yet, as we finalise the implementation first on Riot/Web)
  • E2E key backups also landed in Riot/Web develop (but with placeholder UI)
  • E2E key backups in dev on Riot/Android too (using Realm for storage!)
  • Lots of work from uhoreg on E2E cross-signing
  • Work on the Riot/Web redesign paused for a week due to other commitments but as of Nov 26th we're back on the case again, making up for lost time.

Synapse

Most of the focus from the Synapse team this week has been on the new version using Python 3:
  • Py3 is finished, other than Debian packages - ongoing debate on whether they should use a virtualenv or depend on debian dependencies, and who should maintain them in a Py3 world…
  • Lots of running around on final Py3 bugs

matrix-appservice-purple

Half-Shot has continued work on matrix-appservice-purple.

Modular

Modular.im provides Hosted Homeservers for Matrix.
  • Modular now has full support for Custom DNS (letting you point your own SRV records at it)
  • Lots of work on a migration tool to allow folks to easily shift Matrix accounts between servers, as well as (in future) migrations from HipChat, Slack & others.

That's it!

Apologies for the delayed release this week - please expect an episode of Matrix Live in the week, and back to a normal schedule for TWIM as of Friday. As always, come talk to us in #thisweekinmatrix:matrix.org and tell us what you've been doing.

This Week in Matrix 2018-11-16

2018-11-16 — This Week in Matrix — 

Matrix Live S3E04

This week we continue Matrix Live Season 3 by talking to community member axx, Axel Simon from La Quadrature du Net, a French advocacy group that promotes digital rights and freedoms of citizens. We talk about the work La Quadrature du Net do, with a focus on the importance of decentralisation and how Matrix helps support this.

mxisd v1.2.0 released

Max has been giving updates on the road to mxisd v1.2.0, which was released this week:
A new stable version of mxisd is out: v1.2.0. It comes with:
  • The ultimate identity store that lets you run any command on the system to fetch info, making it the most generic yet. The sky is now your limit!
  • The ability to send email notifications about room invites when done using a Matrix ID regardless if their users is already provisioned on synapse, using emails found in an Identity store. Targeted at onboarding/migration to Matrix for any org/corp.

Spec

uhoreg:
TWIM: five(!) new MSCs so far this week, including a long-awaited MSC for displaying math(s) in messages: https://github.com/matrix-org/matrix-doc/pull/1722

maubot management UI


tulir has had a busy week:
The maubot management UI is now ready, which means you should be able to install, update and configure plugins with just the UI.


matrix-appservice-purple


Half-Shot has been working on important work for his final undergrad year. Just kidding! He's been working on bridges as you'd expect:
I've been working on matrix-appservice-purple, and the community immediately rallied around and helped me get it into shape. We've got automated builds for both the bridge and the libpurple binding modules. In features land, group chats are now working at a basic level and I will be working on supporting profiles next.
#purple-bridge:half-shot.uk is now a room where you can tell me why your favorite protocol doesn't work with the bridge. (It's also used for updates.)

Informo

vabd:
A couple of SCS (Specs Changes Submissions) have been merged into the Informo specs, notably SCS #2 which introduces a complete technical description of the network's nodes and their expected behaviour, and SCS #4 which changes the duration of the call for public review period, shrinking it from 14 days to 7 days, in order to speed specs work up while letting a decent amount of time for people to give a look at new SCSs and voice their concerns.

Quaternion


kitsune hasn't been seen for a couple of weeks, but he's been working on Quaternion:
aside from mundane bugfixing, Quaternion's timeline scrolling has been improved in the master branch. Along with that, the native scrollbar can now be used instead of the shuttle scroller that is loved by some and equally hated by some others. Unfortunately, all that work has a side-effect that under some circumstances the timeline backlog is no more loaded. This will be fixed later this week.
Together with the ongoing work on refactoring room state cache and lazy-loading this makes Quaternion quite prone to regressions: unless you want to help to iron them out, it's advised to stick with Quaternion 0.0.9.3 and wait for further announcements.
By the way, the latest Quaternion release is now available in OpenSUSE Tumbleweed rolling distribution.

Synapse 0.33.9rc1


Synapse has a new release candidate - 0.33.9rc1 - If you'd like to help us test it, you can get it here.

Koma

druig:
This week in Koma, I have been working on a correct implementation of the user registration process. Currently waiting for a small issue with synapse to get fixed
For kotlin programmer who might be interested https://github.com/koma-im/koma/pull/6

f-droid.org has set up a new matrix (synapse) server


Mathijs:
f-droid.org has set up a new matrix (synapse) server for internal conversation and to chat in #fdroid:matrix.org , which will obviously also get a :f-droid.org alias.

For now the server is private, only allowing core team members to get an account in order to keep the performance manageable.

mautrix-telegram v0.4.0

tulir released an RC for mautrix-telegram:
mautrix-telegram 0.4.0 release candidate was released. It's mostly a lot of bugfixes.

…and TravisR hosted it on t2bot.io:
as of a few minutes ago, the t2bot.io Telegram bridge is updated to 0.4.0rc2

Push-to-Talk for Jitsi calls in Riot

anoa:
An implementation for Push-to-Talk for Jitsi calls in Riot has now been completed and is in the review phase. This was a result of multiple weeks of work, with code changes across many different repositories. Will hopefully make a difference with background noise or many participants. Look forward to seeing it land in /develop sometime shortly! Works with both Scalar and Dimension setups.

gomuks progress

tulir:
gomuks development is slowly continuing. It now uses mautrix-go and I also added proper reply rendering.

More Things

Last week we mentioned that Julian Sparber has been working on Fractal UI. He has since published a blog post about the work, and also notes that Purism are beginning to sponsor Fractal development: https://blogs.gnome.org/jsparber/2018/11/10/purism-fractal-sponsorship/

Half-Shot: "The events API update for Slack was released on riot.im/develop a little while ago, which let you do more than webhooks could let you do. The UI scalar/integration manager bits were left on /develop for testing but got rolled out to /app this week."

If you have feedback about the matrix.org website (which you may be on right now!), we have a new room to collect and organise it: #matrix.org-website:matrix.org. Thank you to Aaron Raimist for much-needed chasing (of me) on this work…

This week I attended TADSummit in Lisbon to tell them about the excellent progress Matrix has been making this year. You can see more details of the conference (plus video) here: http://blog.tadsummit.com/2018/11/16/tadsummit-2018-web3/

That's all I got!

If you need more, come back here next week, for all the latest from This Week in Matrix! Also, join us in #twim:matrix.org to tell us what you've been doing.

This Week in Matrix 2018-11-09

2018-11-09 — This Week in Matrix — 

Matrix Live

We continue the new format for Matrix Live season 3 by chatting with Francois from New Vector, to get a sneak preview of the work he's doing on a new version of matrix-android-sdk, and how that will impact Riot:

Dendrite and Brendan

Welcome to Brendan, who has started working on Dendrite as his new day job at New Vector:
There's been some progress on Dendrite (?), with a couple of bug getting fixed along with some progress in the implementation of Matrix endpoints, such as the /backfill federation one (documented here), which has already been merged, and the /messages one from the client-server API (documented here) for which a pull request has been opened and is currently under review.

Python Matrix Client async API

Cadair:

I have pushed my asyncio wrapper of the Python matrix client api class to pypi, so I can use it in a few different projects while the PR to the Python SDK is in an unmerged state. It exposes all the methods on the MatrixHttpApi class as awaitables. https://github.com/Cadair/matrix_api_async and https://pypi.org/project/matrix-api-async/

These improvements will, in time, be merged back into the main Python SDK.

Discord bridge 0.3.0 released

Half-Shot is working on so many bridges that these days he just casually mentions a huge release like Discord bridge v0.3.0. Some of the many many new features:

  • #251 Support for Postgresql and a newer SQLite3 backend!
  • #182 Replace npmlog with winston, for logging to files and better logging overall.
  • #221 Add support for m.sticker.
  • #210 Discord-side moderation of matrix users.
  • #259 Show Matrix replies as Discord embeds.
  • #164 Bot will now mention name, topic and membership changes on Discord.
  • #175 Add special discord keys onto m.room.member for ghosts
  • #179 Add rooms to the directory when bridged.
  • #220 Messages are now deleted by a users puppet rather than the bot.
There are many more features and bugfixes on the release notes. Also:
Shoutout to our new member of the team, Sorunome who did a lot of the review work behind the scenes for this release. Also, thank you to everyone who submitted a PR or an issue!

matrix-puppet-slack v1.8.0 released

tom came out of the wild to tell us about matrix-puppet-slack:
TWIM (but actually over the last few weeks), thanks to the efforts of a new contributor, matrix-puppet-slack v1.7.0 and v1.8.0 have been released, fixing a number of old and new issues and adding support for new types of Slack events, including bidirectional @-mentions, Slack-to-Matrix typing notifications, fixing Slack-to-Matrix image/file uploads with comments, and more! The matrix-puppet-bridge projects have gotten relatively quiet over the past year or so, but there's still plenty of bridges with plenty of features to implement and plenty of bugs to fix (and, even more importantly, bugs to report!) for any would-be-contributors who'd like to use a trusted Matrix homeserver as their double-puppetting Slack/iMessage/Facebook/GroupMe/iChat/Skype/Hangouts/Signal/Tox client from which to brag to their friends on the other platforms about how great Matrix is.
The room for collaborating on matrix-puppet-bridge bridges is: #matrix-puppet-bridge:matrix.org

maubot management UI progress

tulir has been making big progress on his maubot management UI:
The maubot management UI has progressed well, but isn't quite ready yet. I think it should be usable by Next Week in Matrix. It can be used to set up and configure a maubot instance and plugins. Once it's ready, it should be possible to do everything except installing maubot itself through the UI: installing and updating plugins, adding matrix clients, configuring plugin instances, viewing logs, etc.

HK Bot is an anti-abuse bot

Coffee continues his streak of TWIM mentions by bringing a new bot to combat abuse:
HK Bot is an anti-abuse bot for public Matrix chatrooms. This is a bot that really shouldn't exist, but since some people just like to make others' lives more difficult, here we are. The purpose of this bot is twofold. It can automatically oversee rooms and respond to abuse, based on programmable pattern rules, providing a stop-gap measure in case no human moderators are nearby. It can also automate some tedious tasks via its command interface, the primary one being the complete redaction of all of an abuser's messages. HK Bot is still under construction and contains dangerous features. Use with caution.

X-SAMPA to IPA bot

Dandellion "made an X-SAMPA to IPA bot based on matrix-bot-sdk and discord's conniebot". This bot essentially lets you use ASCII characters to get an output in IPA. The advantage of this is that you can much more easily type and transmit pronunciation (because you don't need to find the characters).
I'll just have to make it a bit more configurable, but then I'll throw the source up When making constructed languages and talking about linguistics, it's nice to get an easilly readable IPA representation of a word, but it's really hard to write IPA, which is why x-sampa exists as a way to input IPA with a normal keyboard!

Informo

vabd, the unknown organiser of Informo provided an update about the spec:
A handful of SCS (Specs Changes Submissions) to the Informo specifications have been happening over the last week and a half, with some of them still open to public review for at least a few days before being merged into the specs. The list of SCS open to review can be found here, and people can track new SCS and status changes to existing ones through our specs bot that's living in #discuss:weu.informo.network ?

Fractal

Julian Sparber has been working on message rendering in Fractal:
I increased message rendering performance in the room history. Also the history doesn't move it's position anymore when older messages are loaded, which results in a much better experience. All the changes are in master, but we didn't make a new release.

Video intro to Matrix and Riot in French

Nouts:
I have made a video about Riot which could fit in the Guides on matrix.org. It's for beginners, in French. It's 6 months old, but I just uploaded it on youtube. Also it's available on peertube.

More Things This Week

ma1uta introduces a new client built on JavaFX: no code yet, but it's built on the previous Java Matrix work he's been doing. "It will be cross-platform (linux,windows,osx I hope) client with supports of the multi accounts."

Half-Shot also continued work on bridging via libpurple: "I've nearly got group chats working, with invites (and hopefully people joining and leaving them showing up properly) as well as user's having profiles."

Work continues on Koma:

Since the last TWIM update, koma is updated to kotlin 1.3, experimental coroutines are replaced with stable ones. The changes are being tested and should be merged soon. A new contributor has joined, so expect development to speed up a bit.
Spectral, a Matrix client built using libqmatrixclient, runs great on macOS. I'm excited because I get to play with another client! Find .dmgs on bintray.

FIN

You made it, right to the end! Nice going! Come back here next week to find out what's been happening, or even better, come join us in #twim:matrix.org and tell us what YOU'VE been working on!

This Week in Matrix 2018-11-02

2018-11-02 — This Week in Matrix — 

The Matrix.org Foundation

This week, the first steps were taken in the creation of the Matrix Foundation! Read our blog post from earlier this week for more:

in preparation for the upcoming Matrix 1.0 release, we've been moving ahead with the rest of the open governance plan – and we're happy to announce that as of a few hours ago, the initial incarnation of The Matrix.org Foundation exists!
Watch this space over the coming weeks as we announce the Guardians and finish bootstrapping the Foundation into its final long-term form! Meanwhile, any questions: come ask in #matrix-spec-process:matrix.org

Hello Matrix


Alex has managed the invaluable https://www.hello-matrix.net/public_servers.php for some years, but in two weeks time will be making some changes to the page:
Just wanted to let everyone know that changes are coming to the server list: I've put up a notice on the site that starting Nov 16th I will only show a curated list of servers I would recommend to join.
This reduces the workload for me quite a bit and avoids me becoming some kind of arbiter on what encompasses the Matrix universe… I think it is also more useful for users who are looking for a server to join.
And there is always matrixstats.org for those who are looking for a more complete-ish list of known homeservers.

However, if you have ideas on how to continue the project, or would like to step up and get involved in maintaining a list using data and tools from Hello Matrix, please contact me. Alex told me:
if you find someone willing to take up the project of a more automated, self-service and complete list at a later date, I am more than willing to hand over all the stuff I currently have and might also lend a helping hand myself (if I have time then).

maubot management API

tulir has continued work on the revamped, now-Pythonic maubot, and has added a management API:
The maubot management API I mentioned last week is now mostly ready. It should be possible to use it to set up a maubot instance and plugins without filling the database manually. There's no UI yet though, so it still means curling manually.
The management API also supports the fancy plugin reloading stuff which was the > reason I rewrote maubot in python: You can POST an updated plugin to the API and it'll install it without having to restart.
I also made a bunch of plugins while working on the API that I used to test the API: a dice rolling/calculator bot, a bot that replies with the MXC URI of images you send it, a simple echo/ping bot and an xkcd bot

Next steps are making the management UI, a few more plugins and making setup and development instructions so that other people could run it and make plugins

Announcing the Fractal Hackfest in Seville


Tobias Bernard officially announced the second ever Fractal hackfest:
there's going to be a Fractal hackfest in Seville in December https://blogs.gnome.org/tbernard/2018/10/26/fractal-hackfest-in-seville

matrix-client-core

Coffee continues his streak of weekly updates by introducing us to matrix-client-core:
My lightweight bot/client framework, matrix-client-core, received its first tag ever. Version 0.0.1 is relatively stable, and lies on the doorstep of some refactoring work (ongoing) which should keep the master branch backwards compatible for now, but could make things less stable as I add new commits.

It turns out this isn't strictly a new project:
[it has] been there all along, quietly powering FAQBot and all of my bots. ? Maybe I have failed to explicitly indicate it as such up until now. (oops)
Always good news to see more bot-creation tooling!

Synapse 0.33.8

Synapse 0.33.8 was released, and andrewsh made sure it was updated on Debian. Docker packages are also updated.

mxisd v1.2.0-rc.1

Max has updates on mxisd, Identity Server for Matrix:
mxisd v1.2.0-rc.1 is out with support of all features for the Exec Identity Store, allowing connectivity to totally custom/arbitrary backends. Feedback is extremely welcome!

Half-Shot interfaces with libpurple


It's a job that someone needed to do, and that someone was Half-Shot (who else?)
I've been reviving node-purple (a library for communicating with libpurple) and making a brand new bridge service to make use of it called matrix-appservice-purple. Today I got it to the point where you could link your XMPP account to your matrix user and have it bridge PMs over.
Work is ongoing to make it bridge group chats, profiles, contacts lists and support other protocols better in the coming weeks

NSFW image detection API (on Matrix)

Black Hat is often found working on Spectral (previously 'Matrique'.) This week, he has been building @nsfw:encom.eu.org, which is a bot designed to give scores for how likely an image should be classified as NSFW. It's a simple mechanism, you give it an image, it gives you a JSON object with the result. For example:

My avatar returned less than 1% probability of being NSFW, which I was actually a little offended by.

To talk more about the bot and it's development, chat in #nsfw:encom.eu.org.

Gaming Discord bridging

swedneck has been dutifully bridging channels from the Linux Gaming discord.

All but 3 channels on the linux gaming discord have now been bridged to matrix.
To find these channels, join the community at +linux-gaming:matrix.org and get chatting.

Other thoughts

  • kitsune is forced by his employers to use Viber, so is thinking of creating a Matrix bridge.
  • I spent some time this week repeatedly installing Synapse, then working with Stefan to create a new, hopefully definitive installation guide (available soon). I can also personally recommend Slavi's matrix-docker-ansible-deploy project, this is a great way to get a Synapse installation (and more!) running.
  • lately in #twim:matrix.org posters have been providing much clearer and atomic updates, which I like a lot

Matrix Live, season 3 episode 2

We continue the new season of Matrix Live. This re-booted season has a slightly different format to previous: in each outing, there will be a single deep-dive topic. This week, Matthew and recent-Matrix-arrival Nad discuss UX for E2E encryption key handling. This is an unsurprisingly complex design question, both in terms of how it should behave and how it should look. Nad shared his latest thinking in a blog post earlier today, and you can watch the video below.

Farewell

Enjoy your week. We'll see you back here next week, but if you are working on something using Matrix, come chat with us in #twim:matrix.org!

This Week in Matrix 2018-10-26

2018-10-27 — This Week in Matrix — 

We have a LOT of updates this week, so let's dive straight in!

matrix-docker-ansible-deploy

We've covered the growth of this project several times in TWIM, but I wanted to give a little more attention to the work Slavi has been doing with matrix-docker-ansible-deploy. Synapse is a large Python project with many configurable options, and many optional components, so installing it has sometimes been a challenge. I have seen many reports that using Anisble and Docker, and in particular using these playbooks from Slavi, is a more sane way to install Synapse. The tools get a lot of attention and updates. This week, Slavi reports:

matrix-docker-ansible-deploy now has a self-check command that can help diagnose various configuration problems with the setup (DNS records being misconfigured, firewall ports not being open, etc).

For support and more info, come join the associated room: #matrix-docker-ansible-deploy:devture.com

Late breaking news from Slavi:
One more matrix-docker-ansible-deploy update: the playbook can now set up Whatsapp-bridging via mautrix-whatsapp. Thanks to @izissise!

Dimension

Dimension is an integration manager for Matrix. It's written and maintained by TravisR, and allows you to an a pre-defined selection of widgets, bots and bridges to improve your self-hosted Matrix experience. Check out: https://dimension.t2bot.io/. This week, TravisR reports:
Dimension has received quite a lot of updates over the last week. Here's what's hot off the press:
  • 4 new bridges can be self-hosted and managed in Dimension: Telegram, Webhooks, Slack, and Gitter.
  • 3 new widgets are available: Grafana, TradingView, and Spotify.
  • Add your own custom bots for people to add to their rooms.
  • A dark theme has been added and is automatically applied if you use the dark theme in Riot.
  • The overall UI has been updated to be slightly more modern and less bright orange.
  • Various bug fixes and improvements (is it even possible to have a changelog without this?)
As per usual, if you find any bugs or have ideas for things to add to Dimension feel free to come by #dimension:t2bot.io

mautrix-telegram

tulir has been working on mautrix-telegram, and has made some massive performance improvements:
mautrix-telegram now uses the non-ORM part of SQLAlchemy for database tables that are used often. That change made the CPU usage on the t2bot.io instance drop from ~100% to ~7%
We have graphs to illustrate the improvements:

TravisR, who hosts the bridge on t2bot.io, reports that the bridge is now effectively instantaneous!

The bottleneck has returned to being synapse instead of the bridge

Discord Bridge 0.3.0-rc1

A tonne of work has happened on the Discord Bridge, and it has all been brought together in 0.3.0-rc1.

From the release notes, this is just a subset of the features:

  • #251 Support for Postgresql and a newer SQLite3 backend!
  • #182 Replace npmlog with winston, for logging to files and better logging overall.
  • #221 Add support for m.sticker.
  • #210 Discord-side moderation of matrix users.
  • #259 Show Matrix replies as Discord embeds.
  • #164 Bot will now mention name, topic and membership changes on Discord.
  • #175 Add special discord keys onto m.room.member for ghosts
Go check out the full release notes if you're interested in the Bridge as there are many more changes. Half-Shot also noted:
Shoutout to our new member of the team, @Sorunome who did a lot of the review work behind the scenes for this release. Also, thank you to everyone who submitted a PR or an issue!

Slack Bridge 0.2.0 released!

We covered progress on the Slack Bridge previously, but Half-Shot has now declared it ready for 0.2.0 final! The bridge is reportedly running and very stable - go try it out now!

https://github.com/matrix-org/matrix-appservice-slack/releases/tag/0.2.0

Spectral

We just missed out on this update from Spectral last week. Black Hat says:

Spectral now provides an AppImage along with Flatpak build. Also, thanks to the notification codes from nheko, Spectral can show icons in notifications, and now enters corresponding room when clicking on the notification. It also gains several UI/UX improvements.
P.s. I have resubmitted Spectral to Flathub.

FAQBot


Coffee featuring two weeks in a row in TWIM:
FAQBot has been set free at last! Find its code at https://gitlab.com/Matrixcoffee/FAQBot, and its room at #faqbot:matrix.org.

FAQBot sits in various public rooms and answers common Matrix questions. Very useful for demonstrating the product to newcomers!
Also, if anyone wants to help write answers for FAQBot, https://gitlab.com/Matrixcoffee/matrix-knowledge-base is the place.
Strongly encourage people to go take a look at the knowledge base and see what can be improved.

New communities

swedneck has created a new gaming community on Matrix:
we just bridged the linux-gaming community from discord to matrix, with a matrix community and individually bridged rooms/channels and all main room is #general_linuxgaming:matrix.orgcommunity is +linux-gaming:matrix.org

i've set up an instance of matrix-appservice-discord, which is bridging some select rooms from the linux-gaming discord server to +linux-gaming:matrix.org

The Linux Gaming community has gotten a proper matrix community (+linux-gaming:matrix.org) with a fair few rooms in it, all of which are bridged to a discord channel via my matrix-appservice-discord instance.

#prismo:matrix.org and #anfora:matrix.org have also been bridged to discord.

Matrix for Ansible notifications

If you are using ansible, jcgruenhage has a useful addition that will allow you to get notifications from matrix:
After over a month of waiting, the matrix notification module has been merged on to ansible devel which will be released as ansible 2.8 early next year. Src: https://github.com/ansible/ansible/pull/45823

Karma plugin for maubot


tulir is wasting no time taking advantage of maubot Python rewrite:
I made a karma plugin for maubot. It's a bit like the karma plugin ivar has, but you give karma by up/downvoting messages instead of arbitrary names.

Additionally, there will soon be a maubot management API:
I've started working on a management API and interface for maubot now, so soon it should be possible to use maubot without setting up the database manually.

Room for maubot: #maubot:maunium.net

mxisd v1.2.0-beta.3


Max:
mxisd v1.2.0-beta.3 is out with the start of a brand new Identity store based on arbitrary executable, to connect to anything and everything. Authentication is implemented at the moment (see doc). Feedback is very welcome to improve as much as possible for v1.2.0

MSC1695 Message Edits

Discussion of message editing, in particular for how message edits from Bridges are handled has progressed. Nothing is final yet so check out https://github.com/matrix-org/matrix-doc/pull/1695 for the latest.

Quaternion translations: German and Polish now available

Last week we had an update from kitsune to say that there was a new Lokalise project to allow Quaternion translations. This week, we learn that the first translations are now available:
First couple of translations - German and Polish - have made it to the released Quaternion 0.0.9.3 - thanks to krombel and krkk for their contributions! Swedish and Russian translations are in the works.

Fluffychat

We anticipated it last week, but here it is:
The first stable release of the #matrix messenger #fluffychat is out now. ? Get it from: https://www.fluffy.chat
Thanks to all who have helped me. Thanks to regionetz for hosting the ubports.chat homeserver, thanks to @matrix for the awesome work, thanks to @Ubports for this awesome platform and to fabiyamada, advocatux, wayneoutthere, lionelb, Diogo, mithgarthsormr, mark, and all the awesome people from the community!!
With your help, Ubuntu Touch is still alive and has got a new stable messenger!

Informo: new bot for spec changes

Informo is an ambitious project hoping to be a "decentralised news network, making information accessible". The project lives at https://github.com/Informo, but for now you can join #discuss:weu.informo.network to get their latest news.

This week, vabd reports:

We made a Matrix bot that shouts about updates to change submissions to Informo's specifications. It basically processes all changes made to the list of labels for each issue and PR of a GitHub repository's, and generates a notice message that it sends to the configured room(s). We made it because we wanted the people that are interested in Informo to know in real time about any change made to the state of proposals, along with the calls for public reviews. We just set it up in #discuss:weu.informo.network, and published its source code along with a built binary here: https://github.com/Informo/specs-bot
It might also be worth noticing that, although we designed it to shout about updates to Informo's specifications proposals, we also made it compatible with other projects, e.g. the Matrix specs

Push-to-talk functionality with Jitsi on Riot


anoa has been making improvements to Video Calling on Riot:
I've been working on global push-to-talk functionality with Jitsi on Riot. I've got toggle on/off functionality working, but still trying for walkie-talkie mode. To do so, I need to get this library working with Riot: https://github.com/WilixLead/iohook
If anyone has experience with native Node modules and/or Electron, please hit me up! @andrewm:amorgan.xyz

Greetings from Mozfest

Mozfest is a tech-focused event happening this weekend in London. Neil and I have been along tonight and we've been chatting to a lot of people about Matrix, decentralisation and all those things we love! Check out our very short and sweet video below!

This is the start of Season Three of Matrix Live. Matrix Live seasons are variable in length, based on the data available so far. From this season, Matrix Live with change the format slightly, based on feedback. The videos will try to be a bit more interesting, varied, and deep. With this video being the start of a new season, it was meant to be more substantive with us talking to Mozfest-ites, but I lost track of time, so this shorter but still energetic video will hopefully convey the idea.

This Week in Matrix 2018-10-19

2018-10-19 — This Week in Matrix — 

Bridges and SDKs

Slack Bridge 0.2.0-rc1

Half-Shot, master of the bridge, has been working with Cadair to produce a new RC for bridging Matrix and Slack.

We've got a Slack RC out at long last! Rejoice! It's absolutely massive and full of features.
Half-Shot even provided this explanation of how it works:
Integrations manager > sign into slack > click your channel > ??? > channel bridged :)
See release notes:
This is the first release of the Slack bridge. 0.1.0 has been the version number for previous efforts but was never an official release.
To test this integration, use Riot on https://riot.im/develop and select the "Event Bridging" when adding the integration.

maubot Python

tulir's maubot bot system:
The maubot Python rewrite I twimmed two weeks ago is now complete. The plugin system seems to work well and I'm pretty sure I'll be able to implement proper plugin reloading now. Next I'll implement plugin config storage and some way to manage maubot and plugins (maybe a plugin to manage plugins?)

Clients

Riot Web 0.17, Riot Android 0.8.18: Lazy Loading

This week saw the launch of Riot Web 0.17, and two bug-release updates (0.17.1 and 0.17.2) to fix issues on the Windows desktop app. This version is substantially faster due to its use of Lazy Loading room members. Read more here.   Meanwhile, Travis continues his foray into 'first impressions' bugs - including an initial implementation of .well-known URI support!

Riot Android 0.8.18 is also available from the Play Store and F-Droid, with Lazy Loading option available in the Labs menu (but still has a few bugs left).

Riot iOS meanwhile is busy implementing incremental server-side E2E key backups, and there's generally been a huge amount of work on E2E encryption UX across the board in preparation for all-new E2E on Web and iOS.  More details will be coming soon!

With this done, Riot is now getting a lot more attention on the impending redesign, with Bruno starting to merge code to the experimental branch.

Quaternion 0.0.9.3

After being in RC for a week, Quaternion 0.0.9.3 is ready and will be released over the weekend. Most importantly, you can now translate it into your language! Just head over to https://lokalise.co/public/730769035bbc328c31e863.62506391/, register (you can optionally reuse your GitHub account), ask in #qmatrixclient:matrix.org to add your language to the list (if it's not there yet) and start translating!

Coffee on Matrix Console for Android

Coffee rolled a natural twenty for bravery this week.
I have decided to take up maintainership of the Matrix Console for Android client. This is still the only multi-account capable Android client, but it is unmaintained and growing long in tooth. In particular, the API endpoints it uses may be removed from Synapse soon. I will not be developing new features for it, but I will integrate reasonable patches if others want to take that on. My own goals are to remove GCM and analytics, and get it added to F-Droid. And of course to switch to the latest API. As part of this work, I have been fighting Gradle and its bugs to get matrix-android-sdk to build together with matrix-android-console as a git submodule, so it's no longer necessary to inject the precompiled sdk into the source code. I did not win yet.

FluffyChat stable release creeps closer

Ubuntu Touch fans will know that FluffyChat has been progressing rapidly, and the project is approaching a first stable release. You can find current features being tested as part of the release here.

nheko

mujx has decided to stop maintaining nheko. Since many people are using it, we hope that someone will step in to continue his work. Thanks to mujx for his work so far.

Featured on Mozilla Hacks blog

If you like blog posts about Matrix (and if you're reading this, you may well do), then you'll be interested to see that Matrix was featured on the Mozilla Hacks blog: Decentralised, Real-Time, Interoperable Communication with Matrix. The article was also picked up by Hacker News.

Raiden Network uses Matrix for transport - this article explains it

The Raiden Network enables fast payments for Ethereum. From their website:
The Raiden Network is an off-chain scaling solution, enabling near-instant, low-fee and scalable payments. It's complementary to the Ethereum blockchain and works with any ERC20 compatible token.
To help explain their use of Matrix in their solution, they have prepared an article: Raiden Transport Explained.

Synapse 0.33.7

Soon, so soon, there will be a full Python 3 release for those running Synapse in worker configuration, but this one is not it. Check out Synapse 0.33.7 changes here.

Synapse on kubernetes update

Ananace:
tracking the latest synapse release on my K8s optimized image. Got no real time to work on things due to deadlines at work, but that should end come November, so expect more odd Ruby stuff after that point.
"Odd Ruby stuff" will hopefully include a return to the Matrix Ruby SDK!

mxisd v1.2.0-beta.2

Max continues work on mxisd:
mxisd v1.2.0-beta.2 is out, fixing bugs found during beta.1

Cadair at GSOC

Cadair was at the GSOC 2018 Mentors Summit in Mountain View last week:
I attended the GSOC mentor summit. I had some great conversations with people who are using matrix and with people about bridging in different chat services. A lot of matrix stickers all vanished off the overloaded sticker table. I have lots of ideas for GSOC next year, and plan to try and get many more community projects involved. Finally, I dont need to eat chocolate for a month.

GSOC chocolate: GCHOC

Until next week

Next Friday /me is going to be at MozFest 2018, promoting Matrix, Open Source, decentralisation etc. (all the stuff we know and love), so I may change the schedule a little next week.  We're also going to reboot Matrix Live, so consider this a hiatus before Season 3 begins next week!!

This Week in Matrix 2018-10-12

2018-10-12 — This Week in Matrix — 

Matrix Spec updates

  • MSC1695 Half-Shot has a newly released proposal relating to Message Edits:"The key difference to this proposal is that it's only the event schema which is based off the relates stuff. It does NOT do any kind of aggregations but simply is a format to allow bridges/clients to specify edits in the metadata."
  • MSC1693 Erik has been thinking about state res v2 in the case of rejected events

libQMatrixClient 0.4.0

We mentioned libQMatrixClient progress last week, but this week kitsune reports:
libQMatrixClient 0.4.0 has just been released: CS API 0.4.0, local echo, caching avatars to disk and more - check the release notes at https://github.com/QMatrixClient/libqmatrixclient/releases/v0.4.0!
Thanks for the work also go to Black Hat (who is using libQMatrixClient to author Spectral) and delijati.

Informo

vadb, back again with news about Informo:
The Informo specifications documentation is out! ? It now lives right here: https://specs.informo.network
As a reminder, we were working on "phase 1" of this documentation, which goal was to outline how Informo was going to work. This is basically the foundation for a more complete technical documentation, which shall come later.
The idea is to enable people to give it a look as soon as possible, and to enable them to contribute to Informo as early in the design process as possible. The spec is entirely open, with a process for contributions documented and all its source files available on GitHub here: https://github.com/Informo/specs
The online version I initially linked is a live version from the repo's master branch, which is updated each time commits are pushed to it (including on merging a PR).
If people have any question or remark regarding the specs, or Informo in a general manner, we'll gladly answer them in #discuss:weu.informo.network (or on the #informo IRC channel on Freenode, which is bridged to the Matrix room)! ?

mxisd v1.2.0-beta.1 (beta release)

Max has continued work on mxisd, an Identity Server:
mxisd got a new beta release v1.2.0-beta.1.
It adds the ability to send email notification about room invites to existing accounts in Identity store that might not have been provisioned in the homeserver yet as users never logged in, or for users' profile that are not auto-populated wiht 3PIDs. This is especially targeted for onboarding/enrolling times when adopoting Matrix in groups/corporations or for custom setups.
We would love to hear about your experience with it!

matrix-trello-bot

TravisR has been working on matrix-trello-bot:
matrix-trello-bot has received quite the overhaul. It's gone from a small bot that had pre-determined notifications for board activity to a much more capable bot. The bot now supports managing boards (yes, you can create a board from within Matrix!), lists, and cards including creating, moving, archiving, assigning, and querying.

On top of all that, the bot respects that not every room will want to receive every possible notification and offers commands to pick and choose which events it should notify about on a per-board basis. Feel free to give it a spin and check out the massive help menu with !trello help. Please send bugs and suggestions to GitHub :)
The help menu really is massive! Travis provided an image to highlight the scope of functionality provided (click for larger version):

Clients

Riot 0.16.6 Released

Fixes only these two issues:
  • Firefox private mode being broken > (https://github.com/matrix-org/matrix-react-sdk/pull/2195)
  • Breakage when mixing /app and /develop use (issue #7432)
As both fixes are not relevant for electron, we didn't release 0.16.6 as the electron app, but rest assured 0.17 will of course be released as electron.

Fluffychat

We missed this last week, but FluffyChat (client for Ubuntu Touch) v0.6.0 was released, with LOTS of new features:
  • User profiles
  • Design improvements
  • Audioplayer in chat
  • Videoplayer in chat (only audio at the moment)
  • Imageviewer
  • Edit chat aliases
  • Edit chat settings and permissions
  • Kick, ban and unban users
  • Edit user permissions
  • New invite page
  • Display and edit chat topics
  • Change chat avatar
  • Change user avatar
  • Edit phone numbers
  • Edit email addresses
  • Display and edit archived chats
  • New add-chat and add-contact pages
  • Display contacts and find contacts with their phone number or email address
  • Discover public chats on the user's homeserver
  • Registration (currently only working with ubports.chat and NOT with matrix.org due captchas)
  • Register and login with phone number
  • Edit identity-server
  • Add in-app viewer for the privacy policy

Construct Docker image

mujx has created a new Docker image for Construct, the C++ homeserver:
Construct has a new docker image (https://github.com/matrix-construct/docker-construct) which will ease the process of deployment

Translations for Quaternion


If it didn't seem that kitsune was busy enough, he also announced translations for Quaternion (the original client based on libQMatrixClient):
Quaternion is now localisable! The web platform for translation will be set up in the nearest days; meanwhile those who can't wait can just take the repo, look how the German translation is made and copy!

That's all we can tell you!

Safe travels to Cadair, who is off to represent Matrix at the GSOC 2018 mentors summit. Check out Matrix Live below:

This Week in Matrix 2018-10-05

2018-10-05 — This Week in Matrix — 

Bridges

Half-Shot is supposedly back at university, but he's productive enough to have THREE updates this week (delivered in ascending order of interestingness):

matrix-appservice-irc 0.11.2:
https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.11.2 is just a hotfix release containing a few things we fixed in develop so yay.

matrix-appservice-node v0.3.5:
https://github.com/matrix-org/matrix-appservice-node/blob/master/CHANGELOG.md#v035 is a long overdue update that just updates dependencies so we are no longer exposing lots of vulnerabilities
Updated body-parser, express, morgan and request packages to fix security vulnerabilities.

matrix-appservice-bridge 1.7.0 released:
matrix-appservice-bridge is out! Bundled in this version are major updates to dependencies (to stop the warnings), a logging component for quick setup of pretty winston logs and a provisoner "validator" to allow bridge admins to curate which bridges can be linked into the same room to stop the dreaded double bridge issue.
More details can be found at https://github.com/matrix-org/matrix-appservice-bridge/releases/tag/1.7.0

Informo news project

Informo is an ambitious project hoping to be a "decentralised news network, making information accessible". The project lives at https://github.com/Informo, but for now you can join #discuss:weu.informo.network to get their latest news.vadb provided an update:
Hey there, here's a quick update to let you know that we're making great progress towards the completion of phase 1 of Informo's specifications' documentation (i.e. general outline without going to much in depth into the technical specifications)! I've also updated the board to cut the big "Basic spec" task down into smaller tasks to give a more precise insight of our current progress
Once that phase 1 is done we'll publish the whole thing and migrate our work to a public GitHub repository so people can get to know Informo a bit better and contribute towards making the doc better if they want

Riot

riot-web 16.5 released, with matrix-js-sdk 0.11.1:

Go see the latest changes and make sure to start using room member Lazy Loading with the latest matrix-js-sdk.

Libraries

Black Hat is writing an Olm wrapper for Qt:
I am writing a Qt wrapper for Olm. It has APIs similar to python-olm

kitsune and Black Hat are working on libQMatrixClient:
libQMatrixClient is nearing its release 0.4.0, with low-level support of CS API (coincidentally) 0.4.0 added this week. Another very useful addition is caching avatar images to the disk, not only in memory, relieving the network from dozens of extra requests when a client powered by the library is restarted. All thanks for the avatar caching PR go to Black Hat!

SDKs


tulir on mautrix-go and mautrix-python:
My gomatrix fork is now mautrix-go and the basic client API stuff in mautrix-python is starting to be usable enough for me to start the rewrite of maubot in Python.
For a bit of background, maubot is a dynamic plugin-based bot system. It's currently written in Go, but due to many limitations in the Go plugin system, I decided to rewrite it in Python. matrix-python-sdk doesn't have asyncio or a maintainer, so I decided to make a new framework that combines my existing mautrix-appservice-python framework with a more generic client API layer. (tulir)

Homeservers

Max introduces his new server, Gridepo:
mxhsd work has resumed via a new project, Gridepo, which will be a Matrix/Grid dual-stack server. While mxhsd focused on researching the protocol and reverse-engineering the spec, Gridepo will follow whatever is specced in its Matrix compatible mode.

Synapse 0.33.6 released:

It's literally the previous blog post!
we've been focusing on fixing a whole host of federation bugs to improve reliability and latency. Additionally we've squashed some py3 bugs, improved lazy loading and been working hard in the background to improve our CI infrastructure. Finally, we cleaned up the Docker file, the image is now half the size of 0.33.5.1's standing at 58 MB.

As ever, you can get the new update here or any of the sources mentioned at https://github.com/matrix-org/synapse. Note, Synapse is now available from PyPI.

DevOps and Hosting


Slavi on matrix-docker-ansible-deploy:
matrix-docker-ansible-deploy has received some more improvements lately. They're mostly about the ability to tweak things affecting performance: Synapse cache factor configuration, the ability to enable/disable user presence tracking. The logging situation has also been improved for all Docker containers, so that their output would not get logged twice (once by systemd's journal, once by Docker) - something which was previously causing unpredictably-high disk usage for long-running containers.

ananace, Synapse for kubernetes:
Updated the K8s tweaked packaging for Synapse 0.33.6 (And added a preliminary Python 3 version there as well)
swedneck (literally) on IPFS:

swedneck is hosting riot on IPFS: https://riot.swedneck.xyz, see also https://riot-all.swedneck.xyz for all the versions currently hosted there.

Bots

TravisR, always working on bots:
Through use of the https://emoncms.org API, the makerspace I help run now has power monitoring statistics available from within matrix.

Rooms


Coffee, maintaining #synapse:matrix.org:
#synapse:matrix.org became an official Matrix room! It also had a small face lift, changing from "Synapse Community" to "Synapse Admins", hopefully making its purpose and intended audience clearer.

That's all for now

That's all for now. No Matrix Live this week, but we'll be back next week with more Matrix news and another episode of Matrix Live!

This Week in Matrix 2018-09-28

2018-09-28 — This Week in Matrix — 

DSN Traveller

If you've spent any time using Matrix public rooms, you've probably seen the bot DSN Traveller. This is a post-grad project from Florian Jacob, an informatics student at the Karlsruhe Institute for Technology. This week, Florian handed in his thesis on Matrix!

In summary, I could show that Matrix has few large but many small servers. Large servers reduce the overall network load, but a significant fraction of the load is concentrated in them. Introducing more small servers would further increase the load concentration. The Matrix event graph as a Conflict-Free Replicated Data Type showed to be well-suited for reliable messaging and history synchronization, and is applicable beyond Matrix.
I'm now working on a scientific paper on the results, which will boil down the more than 80 pages of the thesis to something much more digestible. ? You'll hear it in TWIM when that is finished!

Room for discussions: #dsn-traveller:matrix.org
Website wtih more information on the DSN Traveller: https://dsn-traveller.dsn.scc.kit.edu/

This really is exciting stuff! The thesis will be made available online in the future (we'll post it here.) Florian is also hoping to continue his work into Matrix research:
I'm currently in the process of trying to secure funding for a doctorate with Matrix as the topic, as that's where I can proof experience.

#open-science:matrix.vgorcum.com

All this talk of academia led Mathijs and Cadair to create #open-science:matrix.vgorcum.com, room for discussion of Open Science topics.

Half-Shot IRC Connection Tracker

As you may know, although he's now back studying for the final year of his Computer Science degree, Half-Shot will continue to dedicate some time to bridge maintenance. He's been working on IRC Connection Tracker, the next gen bridge for Matrix-IRC:
The IRC connection tracker has had yet more code and love applied to it. The headline changes are:
  • We now have a fully working IRC client that can connect to an IRCd, join channels and chat. These client's persist over > the lifetime of the service.
  • There is a tool included with the service ircctl which allows you to spawn and use connections en masse. It also lets > you list the state of the currently connected clients.
  • Work has just begun on a client library for connecting this up to the bridge, but should be swiftly completed thanks to…
  • A brand new spec website in the works for describing the protocol (thanks Brendan for pointing me in the right direction)
Spec docs: https://half-shot.github.io/irc-conntrack/Repo: https://github.com/Half-Shot/irc-conntrack/Room: #irc-conntrack:half-shot.uk

Fractal

Alexandre Franke has the handle on Fractal, the Matrix client for GNOME:
This week in Fractal, more refactoring and small bugfixes. About 50 commits by 5 people, one of which made their first contributions this week (congrats Rasmus!).

Julian Sparber, who was part of GSOC 2018 on the Fractal team, has been working on Room History:
The room history refactor I was working on for fractal is upstream, now we can start to improve how messages are displayed and make the loading of older messages better.

Julian is also pleased to still be heavily involved with Fractal outside GSOC.

Synapse


Synapse 0.33.5.1 was released with Py3 beta support:
0.33.5.1 is an interesting release. On the one hand it contains the usual bug fixes and performance improvements of a point release, but it also our first versioned release where monolith installs can be run under Python 3.5 and 3.6! Python 3 support is very much in beta, so please be cautious but if you would like to try running under a py3 environment we'd love to get your feedback.

Check out https://hub.docker.com/r/avhost/docker-matrix/tags/ for Python 3 docker images of Synapse, look for the v0.33.5.1.dev.py3 tag.
Says Mathijs:
it is functional, but much like python3 support it is still a work in progress, hence the larger size

Matrix on Hyperboria

jcg has set up hypertrix.ovh:
I spent last night setting up hypertrix.ovh, a matrix server only listening on Hyperboria, a cjdns based end-to-end encrypted IPv6 overlay mesh network. I'd be glad if someone could be found to peer and federate with me there! Registration is open, but your client needs to be connected to Hyperboria to be able to talk to the server.
If you are currently using Hyperboria, go join hypertrix.ovh, or start your matrix server listening on it, and go chat to JC!

Seaglass

Lots of discussion about this project, specifically the question of how to efficiently render Rich Text. macOS does not make this easy, so a solution being considered is to use a WebKit for room rendering:
WebKit has the advantage of being super super fast on macOS, and also very low overheads
The current approach uses Cocoa NSTableViews and it's horrible because Apple clearly couldn't decide how they wanted them to work and therefore it's not very optimised
Moving to WebKit only adds about 16mb to the RAM usage and redraws far faster than the NSTableViews can when resizing etc, and we'll save a lot on the text formatting too which currently is a bit of a mess

Cadair and Half-Shot on the Slack Bridge

Cadair has been helping Half-Shot with bridge maintenance, specifically by contributing to matrix-appservice-slack.

matrix-appservice-slack is a Node project, built on matrix-appservice-bridge, which is designed to bridge messages and metadata between Slack and Matrix. These updates:

  • Improves pills substitutions to use the new slack mentions
  • Add Gitter style edit bridging
  • Adds a config option to specify the directory the user-store.db and room-store.db files go in
  • Converts slack snippets to inline code dumps in matrix

ma1uta tests for client

ma1uta has been adding tests to jmsdk.

Spectral

Black Hat has been working on the client formerly-known-as-Matrique: Spectral:
I added elevation shadows for some components, such as message bubble, panels, etc.

Native Tor onion service enabled for matrix.org and riot.im

Cloudflare now provide Onion routing, this service has been enabled for matrix.org and riot.im. Cloudflare have a thorough explanation which is worth reading: https://blog.cloudflare.com/cloudflare-onion-service/.

Spec

September was mainly spent cleaning up loose ends on the Spec after all the releases at the end of August, and catching up on the never-ending maintenance burden of improving Synapse.  However, in October the plan is to to go back again to working full out on the S2S r0 release. Wish us luck...

Riot

  • Lazy loading members is now on by default on riot.im/develop - reducing Riot's RAM by 3-5x.  Please give it a go and test it before we ship it in Riot 0.17 (probably next week) so we can iron out any last bugs (which will probably look like user profiles going missing)
  • Lazy loading also ships by default in Riot/iOS in Testflight 0.7.4 - if you want in on Testflight let us know in #riot-ios:matrix.org and we'll share an invite link!
  • Lazy loading in Riot/Android coming real soon now; it's behind a labs flag on the develop branch if you want to experiment.
  • Travis has started attacking the Riot/Web 'First Impressions' project (starting with unbreaking onboarding in Riot/Web when GDPR consent is enabled)
  • Lots and lots of UX work from Nad on E2E, Communities, Onboarding and the overall redesign, complete with a redesign workshop with Jouni.
  • Aiming for end of Oct for first cut of redesign to be live as an experimental branch on riot.im.
  • Lots and lots of E2E implementation work in general; backups, cross-signing, and verification.

The end is nigh!

But only for this blog post! Check out Matrix Live below, and we'll see you back here next week. :D

https://youtu.be/zo4IH4nUQ9w

This Week in Matrix 2018-09-21

2018-09-21 — This Week in Matrix — 

Nheko 0.6.0 released!

Get latest stable releases from GitHub.

Features

  • Support for sending & receiving markdown formatted messages.
  • Import/Export of megolm session keys. (Incompatible with Riot)
  • macOS: The native emoji picker can be used.
  • Context menu option to show the raw text message of an event.
  • Rooms with unread messages are marked in the room list.
  • Clicking on a user pill link will open the user profile.

Spec Proposals: E2E Cross-signing and bi-directional key verification

uhoreg has written up a new work-in-progress proposal for E2E cross-signing.
Also, although it wasn't this week, I don't think that we have previously announced the proposal for bi-directional key verification using QR codes: https://github.com/matrix-org/matrix-doc/pull/1544

Jeon

Massive update from ma1uta about his Jeon project! This update brings Jeon into line with the most recent updates to the Client-Server, Application Service, Push and Identity APIs.

In ma1uta's words:

Jeon is a set of the java interfaces and classes which describes the Matrix API.
  • client-api: r0.4.0-1 corresponds to the r0.4.0 C2S API.
  • application-api: r0.1.0-1 corresponse to the r0.1.0 AS API,
  • push-api: r0.1.0-1 corresponds to the r0.1.0 PUSH API,
  • identity-api: r0.1.0-1 corresponds to the r0.1.0 IS API.
  • All artefacts available from the Maven Central Repository.
Major changes:
  • Full support for the corresponding Matrix api.
  • Changed version for displaying the Matrix api version.
  • Added support to the asynchronous responses.
Also updated the swagger schemas generated from the code:And the first hotfix: application-api r0.1.0-2 with fixed url (/transactions has been changes to the _matrix/app/v1/transactions). And this release will break all AS because synapse sends transactions to the old url.
Join #jeon:matrix.org to discuss the progress of this product more.

VoIP signalling support has landed in libQMatrixClient

Exciting times for libQMatrixClient!! Thanks kitsune, developer of libQMatrixClient and Quaternion:
After some pretty long time of being in a PR/fork, VoIP signalling support has landed in libQMatrixClient! Many thanks to mariogrip (the founder of UBports) for the initial code and to delijati (a developer behind uMatriks) for getting it to work with the most recent library.
The actual VoIP stack does not come included, client developers have to take whatever WebRTC implementation is available for their platform and glue the pieces together. However, as the example of uMatriks shows, this now becomes relatively easy if your platform is on good terms with WebRTC (like UBports). I look forward to further work with UBports community on keeping this platform a first-class Matrix citizen.
Go chat in #quaternion:matrix.org to see the ways libQMatrixClient is developing.

Matrique is now Spectral

After intense discussion, there is a new name for Matrique: Spectral. The repo now sites at https://gitlab.com/b0/spectral, there is a new room at #spectral:encom.eu.org, and a new logo:

FluffyChat featured in OpenStore

FluffyChat is getting some love from OpenStore, the official Ubuntu Touch app store: this week it was the featured app.

Matrix Corporal

@slavi:devture.com, creator of Matrix Corporal (a Matrix server configuration tool - "Kubernetes for Matrix"):
Matrix Corporal has received some updates over the past few weeks since its initial release: a couple of additional HTTP APIs for retrieving/destroying user access tokens; more consistency with the Matrix Client-Server specification when it comes to error responses; faster reconciliation for user accounts that are joined to many/large rooms.

matrix-docker-ansible-deploy


Another project from @slavi:devture.com, for those who prefer their DevOps ansible-flavoured:
matrix-docker-ansible-deploy now also helps you set up service discovery as per the .well-known Matrix specification.

jcg ansible PR for matrix notifications

jcg has an upstream PR to have matrix notifications in ansible. Combined with Slavi's matrix-docker-ansible-deploy above, you can get Matrix notifications about issues with your Matrix deployment…

Seaglass E2E + self-update

neilalexander:
Seaglass end-to-end encryption support is now complete, including device verification and blacklisting, key sharing requests, key import and export (which should be compatible with Riot) and re-requesting keys

This is really exciting news for macOS matrix users!
I'm also working on auto-updating Seaglass with Aaron Raimist's help in addition to finishing E2E support :-)

:-) is right!

ma1uta jmsdk


ma1uta must have been in a work-on-Matrix mode this week, because he has also updated jmsdk:
I have released a new version of the java client (https://github.com/ma1uta/jmsdk/tree/master/client-sdk). The new client works is asynchronous mode, each method doesn't block the thread and return the CompletableFuture (promise in java). Then you can block thread to get the response or build a asynchronous promises chain.

Finally:
ma1uta is also looking forward to the release of Java 11:
with the Curve25519 key agreement (http://openjdk.java.net/jeps/324) and will try make a pure java implementation of the olm/megolm. Just for fun. :)

synapse-purge

Maze, seeing that his synapse database was already at several gigabytes, decided to produce a tool to shrink it:
The synapse-purge tool allows homeserver admins to free disk space by purging old room events from the synapse database. It is an alternative for synpurge which currently does not work correctly.

Configuration is minimalistic at the moment. Meaning it purges all remote rooms on the server with a globally configured preservation period.

synapse

andrewsh: 0.33.4 uploaded to Debian's stretch-backports, pending approval.

0.33.5rc1 is now available, with the big news being the inclusion of support for Python 3.5 and 3.6! Hawkowl's Py3 has merged for monoliths and is working pretty well, looking like 2-3x RAM improvement. Please help us test!

Erik's state compressor tool is pretty much finished, we've been starting to run it on things and it reduces disk usage for the state group table by at least 10x.

The only catch is that it's quite DB heavy whilst it runs, so we haven't run it on Matrix.org yet.

Fractal

Alexandre Franke and the Fractal team:

refactoring of the history and other parts is going on in the master branch of Fractal. We also cleaned up build and dependency related bits.

maubot and sedbot


tulir:
I made some updates to maubot and fixed most of the sedbot (S. Edbot) issues people had reported.

tulir used maubot to create a factorial bot:


I might also make some useful bots soon
And so it was - late breaking news that maubot has been used to develop a Dictionary-definition-bot! Not available for public use yet but it proves that the project is useful!

Riot Web

Lazy Loading remains the focus, we're getting closer with more bugs solved this week! To enable Lazy Loading room members and get speed and memory benefits in Riot, use the develop branch and enable "Lazy Loading" under "Labs" in the settings.

Lots of final bug hunting for lazy loading - this is taking longer than you might expect because we're doing end-to-end CI everywhere.

Lots of work on E2E, Dave has been working on:

UI for e2e key backup that's waiting for some lower level bits
and hopefully our e2e core code is moving from asm.js to webassembly making it, by current estimations, significantly faster.
Redesign work continuing as well - Bruno has been working on it this week, Jouni the designer will visit next week to continue the process.

Nad has joined us to help with design bandwidth and is working on the onboarding flows for the redesign as well as fixing all the UX issues in Communities!

Riot Mobile + Mobile SDKs

Lots of work on Lazy Loading - to be released along with Riot Web.

Bridges

Half-Shot is joining us to work part-time on bridges going forwards - this is great news, especially for his connection-based IRC bridging antics as well as catching up on the PR and maintenance backlog for the IRC bridge and Slack bridge.

Modular

Modular (Hosted Homeservers) has first customers; if you want to give it a go please let us know!

Finally

Thanks for reading, take a look at Matrix Live below!

This Week in Matrix 2018-09-14

2018-09-15 — This Week in Matrix — 

Dimension

Update (this got lost in the original post; sorry Travis!): Dimension received a security update - if you run your own Dimension instance it is strongly recommended you update right away. Telegram bridge support in Dimension is underway, with more updates expected for next week in Matrix.

Clients

Fluffychat

It's been some months since we checked in with FluffyChat. If you're a Ubuntu Touch user, or have a device running it, you should see the progress that has been made recently on this Matrix client. Collected changelog 0.5.0 to latest (0.5.4):
  • Search chats
  • Chat avatars
  • Search users in chats
  • Security & Privacy settings:
  1. Disable typing notifications
  2. Auto-accept invitations
  • New message status:
  1. Sending: Activity indicator
  2. Sent: Little cloud
  3. Received: Tick
  4. Seen by someone: Usericon
  • Display stickers
  • Minor UI improvements
  • FluffyChat now automatically opens the link to the matrix.org consens
  • Updated translations

Seaglass

Neil has been keeping up the pace with Seaglass development:
Seaglass has had a substantial rewrite to the room cache to help improve reliability and reduce crashes, better thumbnail behaviour on inline images, various tiny visual tweaks, in-window blending, support for encryption key sharing requests for E2E rooms.

Rendering performance has been massively increased (if you ignore the occasional bug). Resizing the window shouldn't be so slow anymore and a lot of avatar image operations are no longer repeated unnecessarily

Other than that this week has mostly featured lots and lots of bug fixes, hopefully lots of crashes fixed.
Screenshot below shows the new E2E UI:

Quaternion

When not escaping typhoons, kitsune has found some time to continue work on Quaternion:

Quaternion's master branch is alive again - it's been prone to crashes in the last two weeks, now it shouldn't. Feel free to try the new room list organised by tag!

SimpleMatrix


MTRNord has been working on SimpleMatrix:
SimpleMatrix now supports Basic messages sending (with Commonmark) and basic receiving of messages.

miniVector

Marcus has re-packaged miniVector for F-Droid:
There's now a second matrix client available in F-Droid: https://f-droid.org/packages/com.lavadip.miniVector/

This is a fork of Riot Android done by hrjet, f-droid release done by me. It's removing mostly jitsi group call functionality and some other smaller stuff. In doing so it manages to require far less permissions and is also only 12 MB in size instead of riots 20 MB.

Matrique


Black Hat:
Matrique gained alpha support for multiple accounts
This is thanks to leaning on libqmatrixclient's native multiple account support!

Riot Web 0.16.4 released

This is pretty much a maintenance release - fixing the DM avatar regression that crept in with 0.16.3, adding better support for warning users when their client hasn't yet synced with the server, and the final bits of work needed before we can turn on membership Lazy Loading in the upcoming Riot 0.17.

Full changelogs as always are split over the three projects which make up Riot/Web:

SDKs and Libraries

libQMatrixClient ecosystem

As you may know, Matrique, led by Black Hat, and Quaternion, led by kitsune, are both projects build using libQMatrixClient, a Qt5 library from kitsune designed for writing Matrix clients. While kitsune has been working on the library for some time, Black Hat has also now started making contributions:
libQMatrixClient now has a pkg-config file to further ease clients building on Linux systems, as well as more convenient API to track read markers if all users, not just of the local one.

matrix-js-sdk v0.11.0 released

This release contains support for lazy loading room members, and also some breaking changes relating to startClient().
  • Support for lazy loading members. This should improve performance for users who joined big rooms a lot. Pass to lazyLoadMembers = true option when calling startClient.
  • MatrixClient::startClient now returns a Promise. No method should be called on the client before that promise resolves. Before this method didn't return anything.
  • A new CATCHUP sync state, emitted by MatrixClient#"sync" and returned by MatrixClient::getSyncState(), when doing initial sync after the ERROR state. See MatrixClient documentation for details.
  • RoomState::maySendEvent('m.room.message', userId) & RoomState::maySendMessage(userId) do not check the membership of the user anymore, only the power level. To check if the syncing user is allowed to write in a room, use Room::maySendMessage() as RoomState is not always aware of the syncing user's membership anymore, in case lazy loading of members is enabled.

Synapse

Synapse 0.33.4 was released, with a whole host of bug fixes, some enhancements to resource usage management and a bunch of internal changes in readiness for room member state lazy loading and our ongoing port to Python 3.

Meanwhile, Python 3 support for monolithic (non-worker) Synapses has finally landed on the develop branch, thanks to massive work from hawkowl and notafile - if you want to help us test and flush out any remaining byte/utf8 style errors, please create a virtualenv for python 3.6 or 3.5 (twisted doesn't support 3.7 yet) and point the develop branch of Synapse at it, tail the logs for ERRORs and report them via Github if/when you see them.  In practice it seems pretty stable though, and noticeably reduces RAM and speeds things up thanks to improved GC and general performance work in Python.

We've also discovered that jemalloc works very well at improving RAM usage on Python 2 under Linux (we haven't tried it on Python 3 yet) by providing a more fragmentation-resistent malloc implementation; if you are having problems with your Synapse RAM spiking up we recommend giving it a go.  All of the Matrix.org server is using it now.

Also, lots of ops work this week; Erik has prototyped a new storage strategy for state groups which shrinks storage requirements by 10x, we'll be applying this shortly to Matrix.org otherwise we're going to run out of disk space.  There was also a regression on Synapse develop on federation, where outbound requests would get stuck and never retry - this impacted the matrix.org server badly over the course of the week, but as of Friday night we have a workaround in place.  We're not aware of it affecting anyone other than the matrix.org deployment (and we haven't got to the root cause yet).

Construct homeserver progress

This week:

Added notification counts which show up in Riot now, and expanded support for g++-7 and 8 instead of just g++-6. Construct repository is found at: https://github.com/matrix-construct/construct.

IRC Connection Tracker

Half-Shot is continuing to work on the project to split out IRC connection management from the IRC bridge, letting the bridge be restarted without interrupting IRC connections!

The project is going quite well, and is going to be used on matrix.org once production ready which will really speed up upgrades and give us near zero downtime indifferent to the size of the bridge.

At the moment the project has the ability to spin up and maintain connections, however the connections are not supporting IRC fully yet as there are bits to do on the parsing and maintaining state side. There is also work on a top-like tool to visualise and control the service outside of the bridge so we can quickly handle any oddities if they come up. Finally, it allows you to hot reload the configuration without dropping existing connections!

On the work done to support this on matrix-appservice-bridge, there is basic support for stating connections on the bridge but it's in early stages at the moment.

Spec

Travis has been tidying up loose bits on the Matrix spec this week:

In practice, finalising the S2S API is now blocked on proving the implementation on Synapse; work on this will resume next week and then we'll document the end result and ship the r0 at last.  Timings are going to be completely determined by available manpower and what level of ops distractions we face (c.f. the Synapse section above...).  Whilst we're waiting for the final S2S details to get hashed out, Travis is going to be helping on Riot dev, to try to stop stuff like this, as there's no point in having the platonic ideal of a perfect spec if actual users are unable to benefit from it.

#matrix-dev

#matrix-dev:matrix.org was reborn as a new room a couple of weeks ago to flush out old corrupted events, but maybe not everyone knows. Come join #matrix-dev:matrix.org, it's a starting point for all developers looking to build on the platform.  We're also rebuilding #test:matrix.org and #riot:matrix.org, although once we ship the new state resolution

A sneak peek at Modular...

 

Finally, there's been a massive amount of work on the New Vector side of things to soft-launch Modular - a paid hosting platform for Matrix servers (and, in future, paid integrations).  At this point we're looking for early adopters who want a dedicated Riot+Synapse for communities or companies of 50 or more users - but don't want to have to run it themselves.  Modular takes the homeserver hosting we've already been providing for Status, TADHack and others, and turns it into a mass-market product.  The pricing for early adopters is over 5x cheaper than Slack, so if you've been dying to have a reliable, fast and expertly maintained homeserver without any of the headaches of admining one yourself, please head over to https://modular.im and give it a whirl and let us know how it goes!  This is also a great way to support Matrix development in general, as money from Modular will directly keep the core Matrix team funded to work on Matrix.  Once we're happy with the soft-launch and have incorporated any feedback we'll start yelling about it as loud as we can :)

Matrix Live

We've had a bit of an accidental hiatus on Matrix Live thanks to getting submerged all the different project endgames happening atm (spec releases, lazy loading, Modular, Riot redesign etc), and for the last few Fridays we've got to midnight and beyond with too much still on the todo list to justify recording a video.  But to avoid completely falling behind, here's a slightly exhausted Saturday morning update instead (warning: Matthew is not a morning person).

This Week In Matrix 2018-09-07

2018-09-08 — This Week in Matrix — 

Hi all,

Ben's away today, so this TWIM is brought to you mainly in association with Cadair's TWIMbot!

Spec Activity

Since last week's sprint to get the new spec releases out, focus on the core team has shifted exclusively to the remaining stuff needed to cut the first stable release for the Server-Server API.  In practice this means fleshing out the MSCs in flight and implementing them - work has progressed on both improving auth rules, switching event IDs to be hashes and others.  Whilst implementing this in Synapse we're also doing a complete audit and overhaul of the current federation code, hence the 0.33.3.1 security release this week.

Meanwhile, in the community, ma1uta reports:

I am working on the jeon (java matrix api) to update it to the latest stable release. Also I changed versions of api to form rX.Y.Z-N where rX.Y.Z is a API version and N is a library version whithin API. So, I have prepared Push API (r0.1.0-1), Identity API (r0.1.0-1) and Appservice API (r0.1.0-1) for the first release and current updating the C2S API to the r0.4.0 version.

XMPP Bridging

Are you in the market for a Matrix-XMPP bridge? When I say "market", I mean it because this week we have two announcements for bridging to XMPP! You can choose whether you'd prefer your bridge to be implemented as a puppet, or a bot.

Ma1uta has a new version of his Matrix-Xmpp bridge:

It is a double-puppet bridge which can connects the Matrix and XMPP ecosystems. Just invite the @_xmpp_master:ru-matrix.org and tell him: @_xmpp_master: connect [email protected] to connect current room with the specified conference.
You can ask about this bridge in the #matrix-jabber-java-bridge:ru-matrix.org room.
Currently supports only conferences and only m.text messages. 1:1 conversations and other message types will be later.

maze appeared this week and announced MxBridge, a new Matrix-XMPP bridge:
It works as a bot, so it is non-puppeting. Rooms can be mapped dynamically by the bot administrator(s). There is no support for 1-1 chats (yet). MxBridge is written as a multi-process application in Elixir and it should scale quite well (but don't tie me down on it ;)). https://github.com/djmaze/mxbridge

Seaglass

Neil powers onwards with Seaglass, with updates this week including:
  • Displaying stickers
  • Lazy-loading room history on startup to help with performance
  • Scrollback support (both forwards and backwards)
  • Support for Matthew's Account (aka retries on initial sync for those of us with massive initial syncs, and general perf improvements to nicely support >2000 rooms)
  • Better avatar support & cosmetics on macOS Mojave
  • Encryption verification support, device blacklisting and message information
  • Ability to turn encryption on in rooms
  • Responding to encryption being turned on in rooms
  • Paranoid mode for encryption (only send to verified devices)
  • Invitation support (both in UI and /invite)

Matrique

Blackhat announces that Matrique's new design is almost done, along with GNU/Linux, MacOS and Windows nightly build!

Fractal

Alexandre Franke says:
Fractal 3.30 got release alongside the rest of GNOME. It includes a bunch of new and updated translations, and redacted messages are now hidden.
Meanwhile, hidden in this screenshot, uhoreg noted that E2E plans are progressing...

Riot

Bruno has been hacking away on Riot/Web squashing the remaining Lazy Loading Members defects and various related optimisations and fixes. We also released Riot/Web 0.16.3 as a fairly minor point release (which unfortunately has a regression with DM avatars, which is fixed in 0.16.4, for which a first RC was cut a few hours ago and should be released on Monday).  Meanwhile the first cut of Lazy Loading also got implemented on Android as well. Both are hidden behind labs flags, but we're almost at a point where we can turn it on now!  Otherwise, the Riot team has got sucked into working on commercial Matrix stuff, for better or worse (all shall be revealed shortly though!)

Construct

Jason has been working heavily on Construct, and has new test users.  Construct is able to federate with Synapse and the rest of the Matrix ecosystem.  mujx has created a docker for Construct which streamlines its deployment.

Construct development is still occurring here https://github.com/jevolk/charybdis but we are now significantly closer to pushing the first release to https://github.com/matrix-construct. Also feel free to stop by in #test:zemos.net / #zemos-test:matrix.org as well -- a room hosted by Construct, of course.

tulir has now deployed using the standalone install instructions on a very small LXC VM using ZFS. Unfortunately ZFS does not support O_DIRECT (direct disk IO) which is how Construct achieves maximum performance using concurrent reads. This is not a problem though when using an SSD or for personal deployments. I'll be posting more about how Construct hacked RocksDB to use direct IO, which can get the most out of your hardware with multiple requests in-flight (even with an SSD).

Synapse

Work was split this week into spec/security work, with the critical update for 0.33.3.1 - if you haven't upgraded, please do so immediately.

Otherwise, Hawkowl has been on a mission to finish the Python 3 port, which is now almost merged.  Testers should probably wait until it fully merges to the develop branch and we'll yell about it then, but impatient adrenaline enthusiasts may want to check out the hawkowl/py3-3 branch (although it may explode in your face, mangle your DB and format your cat, and probably misses lots of recent important PRs like the 0.33.3.1 stuff).  However, i've been running a variant on some servers for the last few days without problems - and it seems (placebo effect notwithstanding) incredibly snappy...

Meanwhile, the Lazy Loaded Member implementation got sped up by 2-3x, which makes /sync roughly 2-3x faster than it would be without Lazy Loading.  This hasn't merged yet, but was the main final blocker behind Lazy Loading going live!

matrix-docker-ansible-deploy

Slavi reports:

matrix-docker-ansible-deploy now supports bridging to Telegram by installing tulir's mautrix-telegram bridge. This feature is contributed by @izissise.

In addition, Matrix Synapse is now more configurable from the playbook, with support for enabling stats-reporting, event cache size configurability, password peppering.

Matrix Python SDK needs a maintainer

We should say a huge Thank You to &Adam for his work leading the Python SDK over the previous months! Unfortunately due to a busy home life (best of luck for the second child!) he has decided to step down as lead maintainer. Anyone interested in this project should head to https://github.com/matrix-org/matrix-python-sdk/issues/279, and also come and chat in #matrix-python-sdk:matrix.org.

MatrixToyBots!

Coffee reports that:
A new bot appears! Are you a pedantic academic who likes to correct others' misuse of Latin-derived plurals? This task can now be automated for you by means of SingularBot! Also for people who just like to have some fun. Free PongBot and SmileBot included.

kitsune on Hokkaido island


I ended up being on Hokkaido island right when a major earthquake struck it; so no activity on Matrix from me in the nearest couple of days. Also, donations to GlobalGiving for the disaster relief are welcome because people are really struggling here (abusing the communication channel, sorry).

Matrix Live

...has got delayed again; sorry - we're rather overloaded atm. We'll catch up as soon as we can.

This Week in Matrix 2018-08-31

2018-09-01 — This Week in Matrix — 

The Spec

As many know, we've been aiming for the end of August to cut the first ever stable releases of the remaining APIs in the spec which have up to now been marked unstable - i.e. providing a snapshot of the spec which correctly matches the reference implementations (other than implementation bugs) and which can be used in isolation to develop production grade implementations of clients, servers, etc without need to reference any other implementations. There's been a massive sprint to pull this together, and as of the time of writing there are still PRs and commits landing every few minutes.  We'll post a full update on our progress on Monday; meanwhile you can see a sneak peek over at the August 2018 r0 project board.

Spec work has completely precluded any other backend dev this week.

Half-Shot, gone but not really gone

This week we say farewell to Half-Shot, who has been working fulltime on bridges over the summer. He has managed the matrix.org bridges largely single-handedly, with a big focus on the often-volatile IRC bridge(s).

Bridges

matrix-appservice-irc 0.11.0

It's a big deal, and it's rolling out to IRC networks this week. Half-Shot released matrix-appservice-irc 0.11.0, with the following included:

New features & improvements:

  • Cache modes internally
  • Replace nicks with user pill mentions
  • Kick users if we fail to create an IRC client for them on join (aka ILINE kicks)
  • SASL support
  • Add err_nononreg so we can announce PMs that failed
  • Formatting of replies
Bug Fixes:
  • Fix invalidchar nick
  • Don't answer any msgtypes other than text in an admin room.
  • Fix provisoner leaving users on unlink
  • Fixed a bug where content of events the bridge hadn't cached were not being used in replies.
  • We were calling authedRequest but the request was not mocked out.
  • There was a bug involving intents in m-a-b so it was bumped
Metrics:
  • Metrics for MatrixHandler - Iline Kicks
  • Idle connection metrics
  • QueuePool.waitingItems should use it's internal queue size
Misc:
  • Section out tests, linting and coverage into seperate stages for Travis

WhatsApp

tulir has been working on mautrix-whatsapp bridge.
now bridges a lot more stuff, such as formatting, media and replies. I'm also almost done with desegregating users so that Matrix users join the same group chat portals rather than everyone having their own portal to the same chat

Zulip chat, bridged by Zulip

Matthew discovered there is a Matrix-Zulip bridge on the Zulip side. So if you're running a Zulip server (for some reason), and want to bridge with Matrix check out the integration docs here.

IRC Connection Tracker

Half-Shot created a new component to enhance the reliability of IRC-Matrix bridging:
IRC Connection Tracker is a thing now. It's a project to separate out the IRC connections from the appservice so the two can be run independently, so that restarting the appservice doesn't affect the IRC connections. It's hopefully going to allow bridge stuff to run faster when it's done.
This project is still really early stage. You can take a look at the Proposal document here.

Clients

Nheko 0.5.4

Not technically this week, but Nheko 0.5.4 was recently released
  • The settings page now includes the device id & device fingerprint (thanks @valkum )
  • The Polish translation has been updated (thanks @m4sk1n )
Get the latest builds of Nheko from bintray.

Fractal

Alexandre Franke and the GNOME crew have been working on Fractal, gearing up for their upcoming 3.30 release.

Fractal 3.29.92 got released and we are freezing strings to give GNOME translators a bit of time to complete translations for 3.30 next week. Latest developments include tweaks for the title bar, misc bug fixes, a new presentation for uploaded files (that are not images, those are still displayed inline) with buttons to download or open them. Development builds are now parallel installable for easier testing and CI has been improved.

Seaglass

neilalexander:
Seaglass now has some early support for inline images and attachments, and supports Quick Look. Also handles emotes and notices better. It also has version numbers now, various other little fixes and Aaron Raimist has been working on auto-update support.
Version numbers! Now when you go to download the tarball from bintray, you can see what's going on!

There's also been some work on supporting dark mode on Mojave (which looks particularly sexy) and even Touch Bar support!

Riot Android v0.8.15

Riot Android v0.8.15 is on it's way to the Play Store.

Changes in Riot Android 0.8.15 (2018-08-30)

MatrixSdk:

  • Upgrade to version 0.9.9.
Improvements:
  • Improve intent to open document (#2544)
  • Avoid useless dialog for permission (#2331)
  • Improve wording when exporting keys (#2289)
Other changes:
  • Upgrade lib libphonenumber from v8.0.1 to 8.9.12
  • Upgrade Google firebase libs
Bugfix:
  • Handle \\/ at the beginning of a message to send a message starting with / (#658)
  • Escape nicknames starting with a forward slash / in mentions (#2146)
  • Improve management of Push feature
  • MatrixError mResourceLimitExceededError is now managed in MxDataHandler (vector-im/riot-android#2547 point 2)

Changes in Riot Android 0.8.14 (2018-08-27)

MatrixSdk:
  • Upgrade to version 0.9.8.
Features:
  • Manage server quota notices (#2440)
Improvements:
  • Do not ask permission to write external storage at startup (#2483)
  • Update settings icon and transparent logo for notifications and navigation drawer (#2492)
  • URL previews are no longer requested from the server when displaying URL previews is disabled (PR #2514)
  • Fix some plural and puzzle strings, and remove other unused ones (#2444)
  • Manage System Alerts in a dedicated section
Other changes:
  • Upgrade olm-sdk.aar from version 2.2.2 to version 2.3.0
  • move PieFractionView from the SDK to the client (#2525)
Bugfix:
  • Fix media sharing (#2530)
  • Fix notification sound issue in settings (#2524)
  • Disable app icon badge for "listen for event" notification (#2104)

Riot iOS 0.7.3

Changes in 0.7.3 (2018-08-27)

Improvements:
  • Upgrade MatrixKit version (v0.8.3).
Bug fix:
  • Fix input toolbar reset in RoomViewController on MXSession state change (#2006 and #2008).
  • Fix user interaction disabled in master view of UISplitViewContoller when selecting a room (#2005).

Changes in 0.7.2 (2018-08-24)

Improvements:
  • Upgrade MatrixKit version (v0.8.2).
  • Server Quota Notices in Riot (#1937).
Bug fix:
  • User defaults: the preset application language (if any) is ignored.
  • Recents: Avoid to open a room twice (it crashed on room creation on quick HSes).
  • Riot-bot: Do not try to create a room with it if the user homeserver is not federated.

Riot Web

There's been lots of work debugging and optimising Lazy Loading, which is edging closer to being turned on by default.  We've also been working away at improving E2E UX - starting with finishing key backup, and then improved verification, and then finally cross-signing (at last!)

SDKs

Ruby Matrix SDK

ananace is working on the Ruby Matrix SDK "fixing issues and documenting as I go".

Matrix Android SDK

Changes to Matrix Android SDK in 0.9.9 (2018-08-30)

Improvements:
  • Clear unreachable Url when clearing media cache (vector-im/riot-android#2479)
  • "In reply to" is not clickable on Riot Android yet. Make it a plain text (vector-im/riot-android#2469)
Bugfix:
  • Removing room from 'low priority' or 'favorite' does not work (vector-im/riot-android#2526)
  • MatrixError mResourceLimitExceededError is now managed in MxDataHandler (vector-im/riot-android#2547)
API Change:
  • MxSession constructor is now private. Please use MxSession.Builder() to create a MxSession

Changes to Matrix Android SDK in 0.9.8 (2018-08-27)

Features:
  • Manage server_notices tag and server quota notices (vector-im/riot-android#2440)
Bugfix:
  • Room aliases including the '@' and '=' characters are now recognized as valid (vector-im/riot-android#2079, vector-im/riot-android#2542)
  • Room name and topic can be now set back to empty (vector-im/riot-android#2345)
API Change:
  • Remove PieFractionView class from the Matrix SDK. This class is now in Riot sources (#336)
  • MXMediasCache.createTmpMediaFile() methods are renamed to createTmpDecryptedMediaFile()
  • MXMediasCache.clearTmpCache() method is renamed to clearTmpDecryptedMediaCache()
  • Add MXMediasCache.moveToShareFolder() to move a tmp decrypted file to another folder to prevent deletion during sharing. New API MXMediasCache.clearShareDecryptedMediaCache() can be called when the application is resumed. (vector-im/riot-android#2530)

Matrix iOS SDK

Changes in Matrix iOS SDK in 0.11.3 (2018-08-27)

Bug fix:
  • MXJSONModel: Manage m.server_notice empty tag sent due to a bug server side (PR #556).

Changes in Matrix iOS SDK in 0.11.2 (2018-08-24)

Improvements:
  • MXSession: Add the supportedMatrixVersions method getting versions of the specification supported by the homeserver.
  • MXRestClient: Add testUserRegistration to check earlier if a username can be registered.
  • MXSession: Add MXSessionStateSyncError state and MXSession.syncError to manage homeserver resource quota on /sync requests (vector-im/riot-ios/issues/1937).
  • MXError: Add kMXErrCodeStringResourceLimitExceeded to manage homeserver resource quota (vector-im/riot-ios/issues/1937).
  • MXError: Define constant strings for keys and values that can be found in a Matrix JSON dictionary error.
  • Tests: MXHTTPClient_Private.h: Add method to set fake delay in HTTP requests.
Bug fix:
  • People tab is empty in the share extension (vector-im/riot-ios/issues/1988).
  • MXError: MXError lost NSError.userInfo information.

Tools

matrix-to-riot

Half-Shot shared a handy Firefox extension: matrix-to-riot
This is a tiny webextension to forward matrix.to links to an open Riot tab.
Really useful if you often click matrix.to links and find yourself needing to URL-hack to get to where you need to be.

That's all for now

We're going to shift this week's Matrix Live to Monday, alongside the upcoming blog post on the spec release progress. Have a good weekend!

This Week in Matrix 2018-08-24

2018-08-24 — This Week in Matrix — 

Synapse 0.33.3

Big week for Synapse: v0.33.3 was released this week. You'll find preparation for support for Lazy Loading and Room Versioning, lots of bugfixes, and a great contribution from vojeroen: support for sending SNI over federation for vhosted servers. More complete change log here, features below:

  • Add support for the SNI extension to federation TLS connections. Thanks to @vojeroen! (#3439)
  • Add /_media/r0/config (#3184)
  • speed up /members API and add at and membership params as per MSC1227 (#3568)
  • implement summary block in /sync response as per MSC688 (#3574)
  • Add lazy-loading support to /messages as per MSC1227 (#3589)
  • Add ability to limit number of monthly active users on the server (#3633)
  • Support more federation endpoints on workers (#3653)
  • Basic support for room versioning (#3654)
  • Ability to disable client/server Synapse via conf toggle (#3655)
  • Ability to whitelist specific threepids against monthly active user limiting (#3662)
  • Add some metrics for the appservice and federation event sending loops (#3664)
  • Where server is disabled, block ability for locked out users to read new messages (#3670)
  • set admin uri via config, to be used in error messages where the user should contact the administrator (#3687)
  • Synapse's presence functionality can now be disabled with the "use_presence" configuration option. (#3694)
  • For resource limit blocked users, prevent writing into rooms (#3708)
Ananace has upgraded his K8s-optimized Synapse image to 0.33.3

Spec

  • A large chunk of e2e has landed in the spec, largely thanks to Zil0's work. There are still some things left, but the main bits related to sending encrypted messages is in there. Attachments and key sharing are being reviewed today
  • TravisR progressed on Push, Application Services, and Client-Server APIs.
  • To follow along with progress, the best place to look is the August 2018 r0 tracker.

E2E

Key backups are being worked on, and we've had some new thoughts on key verification.

ru-matrix.org

Well are you?

Alexey and ma1uta have a new Russian-language community wiki available at https://ru-matrix.org. This:

accumulates Russian translates of Matrix FAQ and manuals, and other info about Matrix in Russian. Also we starts a public Matrix Synapse server for Russian users with free open registration

Russian Matrix users: feel free to add and complement articles in our wiki to make Matrix more friendly for Russian users.

Client News


Seaglass


neilalexander has been on a roll the last few weeks working on Seaglass, the macOS-native client:
Seaglass now has support for creating, joining and leaving rooms, and accepting/rejecting room invites, redacting messages, improvements to the room settings pages, timestamps, some visual tweaks, lots of bug fixes, early support for detecting failed message sends, scrolling improvements

Matrique

Black Hat continues work on Matrique, a glossy Qt client:
Typing notification and desktop notification of Matrique are working, plus other improvements
See the latest commits here.

Riot Web

Lazy Loading (LL) is available on develop behind the LABS flag, and is being polished. It will probably not make it to next release, but it's progressing!

Riot Mobile

New releases are imminent for both Android and iOS:
  • iOS: bug fixes and Lazy Loading in settings
  • Android: bug fixes, better management of permission requests at startup

Shared Secret Auth and Matrix Corporal

Slavi has been working on several operations tools for Synapse. Firstly Shared Secret Auth password provider module for Matrix Synapse.
It allows external systems (which know the shared secret) to easily obtain access tokens for any user hosted on the homeserver. This is incredibly useful for all sorts of automation (no more pre-generated access tokens or plain-text passwords).
With this tool, you can pass a mxid, and get back an access_token for that user. With this, you can do whatever actions would normally be done with a token. For example, you for a new starter at a company, you could join a set of rooms known to be needed by new starters.

Support room for Shared Secret Auth: #matrix-synapse-shared-secret-auth:devture.com

Next, he has released Matrix Corporal, reconciliator and gateway for a managed Matrix server:

It's a way to take control of Matrix (Synapse) in a corporate (or other such) environment.
Based on a configuration policy (generated by an external system, like your intranet), it can auto-create and auto-disable users, keep their profile and authentication details to date, auto-join/leave users to communities and rooms, etc.
It's also meant to sit in front of the Matrix Synapse Client API, inspecting and allowing/denying requests, in accordance with the configuration policy (preventing people from leaving certain rooms/communities, preventing them from messing around with their profile details, etc.)
Support room for Matrix Corporal: #matrix-corporal:devture.com

Note that Slavi also maintains matrix-docker-ansible-deploy, which can deploy these projects along with Synapse itself.

Bots

twimbot

I was extremely young when I first read and understood Larry Wall's explanation about the virtue of laziness, but I did not expect it to lead here. Cadair has created (I think inspired by an idea from TravisR), a "twimbot". This bot works in conjunction with opsdroid and the opsdroid connector-matrix - it works by storing selected messages from #twim:matrix.org in room state. In this way, it either assists the author by making it easier to produce the blog post you're reading, or it coldly replaces the author, leading to his sacking and penury. To view updates currently held by the bot, join #twim_updates:cadair.com.

Hashtag bot

When he's not working away on the Matrix Spec, TravisR continues to work on less [essential|sane] Matrix projects. This week we have @hashtag:t2bot.io, a bot that converts #hashtags to Matrix groups.

Why? Because why not. Source available on github: https://github.com/turt2live/matrix-hashtag-bot

Bridges


matrix-appservice-bridge and matrix-appservice-irc


Half-Shot will only be working full time with the Matrix Core team for another week (!!!), but until then he's going full-speed with bridge work. First matrix-appservice-irc:
Just pushed out matrix-appservice-irc 0.11.0-rc3 which contains a lot of nice things. The full changelog is there, hoping to get some of this tested and running on the matrix.org servers soon, but initial testing looks good :)

Having worked so much on IRC bridging the last few months, Half-Shot has this week managed to make improvements to matrix-appservice-bridge:
Released matrix-appservice-bridge 1.6.0 which contains mostly things I was writing for the irc bridge and factored out instead. There's a couple of goodies like automatic caching of profiles/events, and getEvent as a way to fetch events from the homeserver without fiddling with context.
Full changelog: https://github.com/matrix-org/matrix-appservice-bridge/blob/1.6.0/CHANGES.md
Some Intent operations now cache requests that would otherwise fall through to the homeserver which can be expensive. This is configurable for Intents via the opts.caching.ttl and size options. AgeCounters now allow you to set your own time period buckets. Added a new function Intent.getEvent which will fetch events from the homeserver without any context information, which should be quick.MembershipCache is now exposed to let folks read and write to the cache while also letting the bridge access it.a release: Fix issue where roomState would fail.b release: Fix issue where we were calling this.intent inside intent like fools!c release: Fix issue where some stole js-sdk code was not checked thoroughly.

WhatsApp

tulir announces that mautrix-whatsapp "is now somewhat usable for basic chatting".
It uses the go-whatsapp library to talk with the WhatsApp Web API. Using the web API means that you'll still need WhatsApp on your phone connected to the internet, but it also means you won't get banned for using the bridge.
The bridge is still very alpha, but basic message bridging and some advanced features already work. There's a features & roadmap document about that.
To come chat about the WhatsApp bridge: #whatsapp:maunium.net.

mxtoot

mxtoot is a Matrix-Mastodon bot from ma1uta, creator of Jeon and the ecosystem around it.

There were two releases last week:

0.4.6 with additional commands (follow, unfollow, mute, unmute, block, unblock users, show followers and followings of the specified user) and a little bugfix.
0.4.7 is out now, which increases the length of messages to 4000 characters.

GSOC is finished!

GSOC 2018 has been valuable for everyone involved!
  • Thank you zil0 for all your work on the Matrix Python SDK, E2E and and spec work.
  • Thank you APWhiteHat: lots of work on dendrite, including a bunch of stuff on federation, as well as typing notifications!
  • and thank you to Cadair for helping to organising it!

The Construct using asynchronous disk IO

Jason writes:
the Construct has advanced to fully asynchronous disk IO in a single-threaded environment.
RocksDB is a highly configurable and customizable database with a very large callback surface to support many different environments, which is good to connect it with something like AIO.
Normally RocksDB gets its performance from concurrent standard POSIX system calls (blocking IO) with multiple threads. The callback surface and its internals are not specifically suited for deviating from the pthread model. However I hacked RocksDB and tricked it into believing that my userspace contexts, which mimic the std::thread/pthread interface, are threads.
This is an example of a RocksDB callback to read from a file, it expects this callback to return immediately (i.e as soon as the kernel returns from a blocking read(2).) Except, where I call fs::read() that is actually a stack-suspension which makes a request to linux AIO where the stack resumes after AIO has called back with the data (see: https://github.com/jevolk/charybdis/blob/master/ircd/aio.cc)
No modifications to the internals of RocksDB were necessary. The Construct is being developed here: https://github.com/jevolk/charybdis.

Community Guides Index

Some weeks ago I asked for suggestions for content to add to a "Community Guides Index". There was not a wave of feedback, but we have enough collected content to be able to share a first pass of this Index. Check out the content there, and please please contact me if you have articles, videos or anything else you'd like to see included. Of course, if you'd like to produce some content and have it included, that would be great too! Ideas for missing articles:
  • any content in a language other than English
  • DevOps, how to use k8s or ansible to install Synapse
  • how to use the Application Services API to make a bot

OggCamp 2018

OggCamp last weekend was great - massive thank you to Jon for organising and running the show - we love your work!

Presentations from Ben and Half-Shot seemed to go down well, we all chatted with Open Source fans and generally flew the flag for Matrix.

New Rooms

So long…

Hope you had a good week, hope you enjoyed reading this post! Amandine is back after some needed vacation time, and has this week's Matrix Live below.

This Week in Matrix 2018-08-17

2018-08-17 — This Week in Matrix — 

This feels like a bumper (extra big) post, so let's get straight into it!

Spec

TravisR continues to plow through work in documenting, clarifying and confirming the spec. You can check out his project on Github: August 2018 r0, which should give an idea of both the scale of the project and the amount of work which has been done. Rather than list out individual items as I have been, please take a look at that project, and come chat in #matrix-spec:matrix.org if you'd like to contribute.

Clients

Riot web

Some exciting things on Riot Web this week!

Bruno has merged his work on lazy loading room members lists, which should mean we see some big performance improvements, especially in larger rooms. You can expect to see that released on /develop soon.

He has also just started to work on the riot redesign, and has begun on some of the more visible changes like resizeable panels:

More news on the redesign to come soon!

nheko 0.5.3 released

nheko 0.5.3 was released this week. From the changelog:

Features

  • Add option to disable desktop notifications
  • Allow user to configure join rules for a room
  • Add tab-completion for usernames
Improvements
  • Remove the space gap taken by the typing notifications
  • Remove hover event from emoji picker
  • Add tooltips for the message indicators
  • Fix compilation on FreeBSD
  • Update Polish translation
  • Small modal improvements

Seaglass builds being generated

Seaglass, the MacOS-native client, now has automatically generated builds available on bintray.

Seaglass is now a very usable and stable client on macOS. neilalexander has been very active this week:

Seaglass has had various updates, including the groundwork for joining and leaving channels, LOADS of crashes fixed, some more work done on avatars and E2E encryption has been fairly well road-tested now Still need to complete UI for device verification and setting E2E but it works fine in existing channels

Quaternion

kitsune has been working on Quaternion:
Quaternion has gained a new way to highlight mentions - with tinted background instead of colored text. Also, the majority of work on rooms grouping is done, and the current master branch features the roomlist grouped by tag (but rooms under each tag are pretty much out of order so it's not really ready for daily use yet).
Quaternion is looking for a macOS packager - if someone has the chance to help out in this area, speak to kitsune in #QMatrixClient.

Palaver

Arne came at us with the v0.2.1 release of Palaver:
A few days back Palaver has been moved to Gitlab. And I have since released v0.2.0 and v0.2.1. A runnable jar-file of the latest release can be downloaded at https://gitlab.com/MrCustomizer/palaver/tags/v0.2.1. The biggest changes in v0.2.x are the replacement of all the web views with native JavaFX components (as I don't feel comfortable embedding a whole browser stack in a desktop application) and support for read markers. There is a short YouTube video demonstrating the read marker implementation:

Riot mobile

This week, work continued on Lazy Loading room members for Riot Android, and progress toward a release for 0.7.0 on iOS.

neo client

f0x has begun rewriting Neo using matrix-js-sdk.

Matrique

Black Hat has been working on Matrique:
Matrique now has a (basic) room management panel, a working emoji picker, an unread marker and supports playing "m.audio". It should be available at Flathub any time.

SDKs and such

Jeon, Jmsdk, Gene, Matrix-Jabber-Bridge: ma1uta-world

ma1uta is continuing to make progress on his Java-focused collection of APIs and SDKs, he's eagerly awaiting the r0 release of the spec (aren't we all!)
Jeon (https://github.com/ma1uta/jeon) (client2server and application api) has released on the Maven Central Repository with version 0.4.1. The next goal: the stable release of all apis 1.0.0 after the Matrix spec will be released (I hope it will be soon :)) Jmsdk (https://github.com/ma1uta/jmsdk) the client and bot SDK have released on the Maven Central Repository. Gene (https://github.com/ma1uta/gene) the lightweight api for android has released on Maven Central Repository with 0.2.1 version. So, everyone can use this libraries without additional settings and additional repositories. Matrix-Jabber-Bridge (https://github.com/ma1uta/matrix-jabber-java-bridge) the double-pupped bridge between the Matrix and Jabber. I am still working on it and I think it will be released in a few weeks.

Ruby SDK v0.0.3

Ananace has tagged and released the next development version of the Ruby Matrix SDK - 0.0.3. He has plans to "finish up documentation and unit testing", with the aim of making a v1.0.0 release.

mautrix-appservice-go

tulir has a new, yet-to-be-revealed project, and in support of this he's been working again on mautrix-appservice-go:
mautrix-appservice-go is a bit more active again: it now has an initial intent API similar to the one in mautrix-appservice-python (which in turn is based on the intent API from matrix-appservice-bridge).

Synapse

No release this week, but Synapse has been progressing:
  • Python 3 port continues at pace, we expect to have a beta to test in monolith mode rsn (Hawkowl leads this)
  • Erik has been working on some federation API refactoring to make matrix.org snappier and hopes to have the new state resolution algo ready to go if not deployed late next week
  • Richvdh has been looking at performance, as well as spec PRs/ Next week will be r0 work
Many Synapse maintainers are also doing huge lifts on development of the spec.

Matrix support now in ntfy

Half-Shot took a rare 30-minute window away from bridge maintenance to add Matrix support to ntfy. ntfy describes itself as
A utility for sending notifications, on demand and when commands finish
but in fact, you also send notifications whenever you like by calling ntfy send from anywhere you'd normally execute shell commands. This will make it really easy to integrate Matrix notifications into any other application!

matrix-docker-ansible-deploy

Slavi brought updates to matrix-docker-ansible-deploy:
matrix-docker-ansible-deploy got a lot of improvements lately:
  • email-sending support, so that Matrix Synapse can send email notifications (enabled by default)
  • mxisd Identity Server support (enabled by default)
  • more detailed docs split into various sections (used to be a single README, but with more and more features it was turning into a wall of text)
  • started keeping a changelog, especially for backward-incompatible things
the playbook can now also set up and configure Maximus's matrix-synapse-rest-auth

Riot Translations

@csybr:dodsorf.as and @dandellion:dodsorf.as appeared and announced that there is now a Norwegian Nynorsk translation available for Riot Web, matrix-react-sdk and riot-android. Non-Matrix-related aside: as a lazy Brit, I was vaguely aware of the cultural weight language carries in the history of Scandinavia, but didn't realise that Norway still has some fundamental differences ongoing.

Giveth

The Giveth project have produced a bot built on matrix: giveth-bot

For some more context:

Giveth is re-engineering charitable giving, by creating an entirely free, open-source platform, built on the Ethereum Blockchain.
The current giveth-bot:
handles welcoming people, can answer questions and handle our crazy points dishing system to reward contributors!

mautrix-telegram

mautrix-telegram now has an official 0.3.0 release. Says tulir:
No major changes since the release candidates last week, except a Telethon update that might have fixed history backfill.

"The End of GSOC"

Well, it may well be the end of the Julian's GSOC 2018 experience with the Fractal project, but I think Google will continue to run the programme. Check out Julian's experience (and the large number of issues resolved!) in this blog post.

OggCamp

This weekend Neil and I will be representing Matrix at OggCamp, "an unconference celebrating Free Culture, Free and Open Source Software, hardware hacking, digital rights, and all manner of collaborative cultural activities", if you will be there, come find and chat to us. We'll be the two nerdy-looking guys, so we should be easy to spot.

We'll meet again…

But for now, you can watch Neil host Matrix Live below (using the fan-favourite format of walking around the office), and come chat to us in #twim:matrix.org

This Week in Matrix 2018-08-10

2018-08-10 — This Week in Matrix — 

Community Guides Index

As part of an overhaul of the documentation surrounding Matrix, I'm planning to launch a "Community Guides Index". This will be a page or section on Matrix.org with links to useful and informative documentation hosted elsewhere. If you have or know of informative articles, please let me know, or share them in #TWIM:matrix.org.

Clients

Seaglass

Seaglass now supports E2E rooms, leveraging matrix-ios-sdk! Additionally, maintainer neilalexander has had a productive week:

Seaglass has had many updates, including:
  • message coalescing
  • room settings (history/join rules and changing aliases/addresses)
  • loading member list in rooms
  • some starting work on loading avatars
  • various UI and stability tweaks!

Quaternion: new redacted message handling options

Many of you will have seen the incredible volumes of spam plaguing Freenode over the last few weeks. Kitsune has added new features to Quaternion to help:
In response to the recent spam deluge from Freenode Quaternion has got an option to tidy up your timeline after all the spam-cleaning: you can hide all redacted messages or just those that came from recently joined users (along with the join message). So as long as the spammer gets moderated, it can become inexistent for you. The experimental code doing that will eventually be moved to libQMatrixClient for the benefit of Matrique, uMatriks and other clients based on the library.
This is especially cool: moving functionality to the lib for the benefit of other projects makes me very happy. :D

Fractal GSOC write-ups

Eisha and Julian finished their GSOC 2018 Fractal involvements this week, and Eisha has a blog post recounting her experience: My Final Report for GSOC 2018. Julian will have his ready too.

Riot

Big updates are on the horizon for both iOS and Android, with 0.7.0 of iOS headed to TestFlight today with a release due once it's through beta & AppStore review.  More details once the releases are out!

Meanwhile on Riot/Web, Lazy Loading members is pretty much complete - just writing end-to-end tests to ensure that encryption still works well when lazy loading is enabled.  Next up is actually progressing the redesign at last!

Spec status

  • MSC1425/MSC1501 richvdh has been thinking about Room Versioning
    • A summary in his words: "room upgrades are implemented by creating a new room, shutting down the old one, and linking between the two"
  • MSC1497 thorough discussion happening against Matthew's proposal for Capabilities support in the CS API
  • MSC1442 though you may have seen it previously, I recommend anyone who is able to take a look at Erik's "State Resolution: Reloaded" proposal. This documents his "thoughts on the next iteration of the state resolution algorithm that aims to mitigate currently known attacks". It very clearly explains the current problem, and the proposed solution. While heavy, I found it really useful for helping to understand State Res and everything it affects.
  • MSC1485 tulir proposes "Hint buttons in messages", which effectively provide pre-defined responses for users. This is especially valuable for Bots which can only accept a certain range of replies. I'd love to see this implemented, having long ago built a "choose your own adventure" engine using similar features from another messaging platform.

APIs and SDKs

Gene, minimalistic client-server api for Matrix

Not strictly this week, but we missed it before. ma1uta has been working away on his Java-based Matrix suite. Gene is a more lightweight API implementation than Jeon, covering all of the current C2S spec. A big motivation is to be able to use Gene on Android, which is not possible for Jeon due to it having more dependencies.

Ruby Matrix SDK

The Ruby Matrix SDK now has auto-generated, proper documentation, thanks to Ananace. v0.0.2 is the current release, but it's under active development and v0.0.3 is expected presently.

Telegram Puppeting on t2bot.io with mautrix-telegram

TravisR has rolled out tulir's mautrix-telegram bridge for everyone on t2bot.io's bridge.
This is a public trial to see how the bridge copes with multiple people puppeting their accounts. Of course, you don't need to puppet your account unless you want to. For more information on how to set this up, please visit https://t2bot.io/telegram
As part of this project, mautrix-telegram 0.3.0 release candidate was released.

Informo project releases SaltStack states

vabd, from the Informo project, arrived to say they have produced "a set of SaltStack states that includes deploying fully working Synapse homeservers: https://github.com/Informo/salt-states"

They introduce the Informo project:

Informo's a project (still a work in progress, currently) that aims at bypassing censorship of information on the Internet, by basically having news items go through a decentralised and federated network made of Matrix homeservers. Since we need to host nodes to this network (at least for testing purposes), we've worked on a working and automated infrastructure using SaltStack, which involved hand-writing a few SaltStack states, including states handling the installation and configuration of working Synapse homeservers. In the spirit of giving back to the community, we're publishing all of those hand-written states (available at the GH link above) under the GPLv3 license. If you want to discuss with us about what we're doing, or this topic specifically, please join us in #discuss:weu.informo.network ? The project is still pretty much a WIP and the technical specifics (even the ones we already implemented in our projects) are still under discussion and subject to changes (as mentioned in the GH repo's readme). All I can add for sure to what we already say is that we'll be working in partnership with NGOs to promote the project in countries where the press is heavily censored, and we're planning on implementing a cryptographic verification chain of some sort to reduce the risk of intentional disinformation.

Synapse 0.33.2

Synapse 0.33.2 is out now:
The release focuses on performance, notable highlights include reducing CPU consumption through speeding up state delta calculations and reducing I/O through lazily loading state on the master process Separately work continues on our python 3 port and we hope to have something concrete to trial very soon – we're really excited about this and expect step change improvements in CPU and memory use.
Lastest synapse is now available on Debian thanks to andrewsh.

Room Tagging

This is not from this week at all, other than that it was new information to me. Actually it's ancient, matrix-wise, but I think it's interesting for those who don't know! Although Riot doesn't have an interface for adding custom room tags ("Favourites" and "Low Priority" come by default), Matrix supports arbitrary strings as room tags, and will display them if you add them via another CS API call. To facilitate this TravisR created a small script, tag_room.sh, which makes it very simple to set your own room tags.

FIN

That's all folks! Remember, lots of progress is happening with the Spec, if you want to be involved or follow along the best place to start is by joining #matrix-spec:matrix.org.

No Matrix Live this week due to vacation and general scheduling fun; sorry!

If you have documentation or articles related to matrix, let me know!

We'll meet again!

This Week in Matrix 2018-07-27

2018-07-27 — This Week in Matrix — 

mautrix-telegram now supports double puppeting

tulir has been working away on mautrix-telegram, and has a major breakthrough:

It means you can log in to the bridge with your Matrix account to make messages you send from other Telegram clients appear from your Matrix account.

It can also be used to enable bridging of ephemeral events, which synapse doesn't send to appservices (read receipts, typing notifications, presence).

Also, the bridge has a new HTML parser which should be much better than the old one. It might have caused some new bugs though (like m.emote bridging breaking)

Coffee and the FAQBot


I've been slowly working on matrix.org the last couple of months, updating the FAQ, updating content and UI/appearance of try-matrix-now. As you may know, the FAQBot, created and maintained by Coffee, uses try-matrix-now for it's data, so Coffee updated the bot to start to use some of the new fields.
The final puzzle piece needed for FAQBot has been put into place: https://gitlab.com/Matrixcoffee/extract-web-to-org
This is the bit that grabs "Try Matrix Now!" and turns it into questions that FAQBot can use.
While I was working on that bit of code anyway, I also added support for the new 'home', 'repo', 'room' and 'language' fields. FAQBot will now give more and better information accordingly. For example, it is now possible to ask, "where is the Riot Android source code?" although it is generally better to just ask "where can I find Riot Android?" which combines several fields into a single answer.
4 of 7 items are now completed: https://gitlab.com/Matrixcoffee/FAQBot/issues/2
and the remaining 3 items before FAQBot's release are just the final review and integration tests.

New Discord Bridge Maintainer

Half-Shot has been working stridently on the Discord Bridge lately, and the project has now attracted a second maintainer:
We've got a new member of the maintainer crew in discord bridge land (bringing the total count to 2.) I'd like to welcome Sorunome :). They are going to be helping review the influx of PRs, chew some issues and be a point of contact in the community. They've already filled my PR queue up and it's going to help us move even faster!
In other Bridge news, matrix-appservice-bridge 1.5.0 is out now, uses the latest matrix-js-sdk and matrix-appservice-node, and contains a lot of changes.

Bruno unit tests

Bruno, the latest and greatest addition to the [riot-web] team, has been working on configuring end to end unit tests. His scripts now install synapse from the metal, install riot and then run a test suite. Take a look at the animation below to get the idea!

Fractal 3.29.5

Alexandre Franke tells us about new features in Fractal 3.29.5, and how the project has benefited from GSOC 2018 contributors:

Fractal got a big new release 3.29.5, which includes Eisha's multi-line input (with markdown syntax highlighting) and Julian's room details redesign, as well as his refactor on avatar code which leads to a perf boost.

Ananace: Grafana webhook for Matrix notifications

Ananace, always working on sysadmin tooling with matrix, comes back with a new tool: Grafana webhook for Matrix notifications. This release is described as "the very first 'It doesn't crash instantly' version", but this is surely a useful project.

Quaternion / libQMatrixClient support local echo

kitsune had a surprising week while working on his QMatrix projects:

/me accidentally found a year-old feature branch in his Git and thought of rebasing it in order to eventually continue working on it. As a result, libQMatrixClient and Quaternion master branches support local echo from today. Too bad the same trick doesn't work for E2EE.
Too bad indeed!

Riot/Web

  • Cut the release candidate for 0.16-RC1
  • Lots of final polishing on Jitsi; all bugs fixed now
  • Likewise all Slate bugs fixed - many thanks to t3chguy for finishing them off
  • Lazy Loading Members implementation progressing well
  • Release due on Monday
  • On crypto: uhoreg has also been progressing on hooking up incremental key backup

Riot/Mobile

  • Room version upgrade support!
  • Replies UI implemented on iOS and working well
  • Lazy Loading Members is done and working on iOS - speeds up launch by a minimum of 3x

Synapse

  • Hawkowl is running the first ever Python 3.6 synapse! RAM usage looks to be 2-3x less than on Python 2.7. Still work to be done to merge all the PRs though.
  • Landing all the Lazy Loading patches; 3 down, 3 to go
  • Gathering feedback on the state res prop - thanks to uhoreg for wading through it!
  • Catching up Lots and lots of PRs
  • Implementing room versioning and gathering feedback on the MSC
  • Perf fixes - optimising current state res a bit & fixing sync performance
  • => End-to-end message latency on matrix.org has been improved by 3-5x over the last few days(!!!)

Dendrite

  • OpenTracing support has been dusted off and is working again cross-service
  • See the community update for much more!

Spec

  • Travis continues to blitz through the S2S spec, PRs are flying around everywhere (and even landing!)
  • Uhoreg continues to work on the E2E spec merges with Zil0

We'll meet again…

See you next week, and don't forget to watch Matrix Live below!

This Week in Matrix 2018-07-20

2018-07-20 — This Week in Matrix — 

Spec Updates!

First of all: we've just released the first draft of the proposal for our next generation State Resolution algorithm as MSC1442 (State Resolution: Reloaded).  This is the result of a massive amount of work from Erik - if you are at all interested in the problems that state resets have plagued us with, then you will want to read the proposal and please comment on it!

The next step on State Resolution: Reloaded (once approved) is to be able to actually roll it out - and to this end, richvdh has proposed MSC1425 (Room Versioning proposal). This was published at the beginning of the week but we haven't had any feedback yet - again, please read & give feedback as the intention is to start working on this as soon as possible!  Matthew's also been updating the Lazy Loading proposal (MSC1227).

Meanwhile, the Matrix Spec is now awash with activity, lots of work from TravisR, Cadair and others to accelerate progress. Take a look at the proposals list to stay up to date, or straight to the matrix-doc repo and #matrix-spec:matrix.org room to get the raw activity.

Finally, discussions relating to the spec proposal process itself have attracted attention: MSC1426 and MSC1421, and we're already trialling the new process (using Github PRs rather than Google Docs) in MSC1442 (State Resolution: Reloaded) already.

nheko 0.5.x

nheko 0.5.1 is out, and it's great! Get a version for your platform from bintray.com. I've been using it for the last week or so (on macOS) and found it very stable and usable. mujx commented that "highlights were encryption support & desktop notifications on all platforms", but you can get much more thorough notes from the release notes.

Plasma

It's been several weeks since we mentioned Plasma, but work on the C2S parts of the spec implementation have been happening quietly behind the scenes. Project lead Nico said recently:

I've updated the CI test server with the latest snapshot version of plasma. createRoom and invite C2S endpoints are fully implemented and should work as expected.
You can find the full list of implemented endpoints in the readme, and also read the architecture overview.

kitsune, live on stage

kitsune presented an introduction to Matrix (for a technical audience) at the Tokyo Linux Users Group - you'll need to skip to 1h41m16s into the video.

GTAD pulls in description and summary fields from the API

kitsune continues working on GTAD, and this week has started automatically including docs in libQMatrixClient:

GTAD is now aware of description and summary fields in API descriptions so you can use them with Javadoc/Doxygen. As a result, libQMatrixClient master branch now enjoys doc-comments throughout its CS API layer - the rest of the library builds in envy.

mautrix-telegram


tulir:
mautrix-telegram now has a provisioning API, meaning integration managers like Dimension can make an auth/portal management interface for the bridge

In an immediate response, TravisR, creator of Dimension confirmed:
Soon in matrix: Dimension will have support for that provisioning API

SimpleMatrix


MTRNord introduced us to SimpleMatrix:
SimpleMatrix is my approach on making an Android App that is more easy to use than the official one in Terms of UX and UI. Planned is also a Android Wear App within this App for mostly Notifications.
SimpleMatrix is planning to use matrix-java-sdk, but for now is a visual mockup, it doesn't currently connect to Matrix.

Room: #SimpleMatrix:matrix.ffslfl.net Git: https://git.nordgedanken.de/Nordgedanken/SimpleMatrix

Tales of Half-Shot and his many Bridges

Arrival of the Discord DMs

After lots of begging, frustration and eventually an offer of a free lunch (thanks Anoa): I give you Discord DMs.
This first cut bridges over existing regular and group DMs to Matrix. In the future we will also allow you to create DMs from Matrix so that you can contact users without even logging into Discord. With thanks to the #discord:half-shot.uk community for helping shape this feature!

Currently this is in PR form but is very likely to make it into the 0.3 release of matrix-appservice-discord.

Half-Shot fixes the Foonetic IRC bridge

For those who (want to) use Foonetic IRC channels, Half-Shot is here for you! Previously this bridge had been down due to invalid certificates, but this is now resolved.

Synapse

Synapse 0.33 landed on Thursday, boasting 2x speed-ups for /sync and (briefly) meaning that the matrix.org homeserver felt impressively snappy and fast!  Ironically traffic levels promptly grew again such that the synapse master process is now the bottleneck once more, but between incremental state res, python 3 and upcoming room-sharding work we should see the performance fixes continuing to come!  Meanwhile, lots of PRs in the queue for Synapse 0.34 - including Lazy Loading support as per (MSC1227), and a whole new set of stats functionality for tracking per-room and per-user stats.

Riot

Lots of activity in the build up to Riot/Web 0.16 - merging the new Slate rich text editor to /develop (try it now!), upgrading Jitsi and turning it on by default (at last!! - again, try it on /develop, although you'll have to enable it in Labs).  We'd be particularly interested in how Jitsi is behaving, as so far for us it's been unrecognisably improved over the previous deployment.

Meanwhile, lots of work on Lazy Loading members on Riot/Web and Riot/iOS, and lots of stability perf work in general across mobile.

State Resolution Special... Matrix Live!

And finally, all you could ever want to hear about the new State Resolution algorithm on a special edition of Matrix Live, starring Erik & Matthew!

This Week in Matrix 2018-07-13

2018-07-13 — This Week in Matrix — 

Welcome to TWIM for Friday the 13th! Nothing too scary, but lots of client updates and news.

Quaternion

kitsune:

Quaternion has gained a new /html command that allows one to send raw HTML. Note that an actually displayed HTML subset entirely depends on the receiving client; no HTML validation or sanitation is done; a plaintext version is automatically created by stripping all the HTML tags.

neo

f0x is working on Neo again:
added emotes, working localecho and /rainbow

rainbows :D

matrix-logger

A useful tool from CromFr for anyone who wants to archive logs of rooms.
I wrote a small matrix "client" for logging messages in joined rooms, and store them in a format very similar to Weechat logs.Source code (Rust) Binary release (x86_64 windows & linux)Please open issues if encounter any bug or need specific features.\\nAlso I'm new to rust, so any review / advices would be appreciated :)

Matrique client progress

Black Hat has been working on Matrique, and it's looking really good! Screenshot below.
Matrique now has support for sending/receiving messages (plaintext, markdown, HTML, rainbow), emotes and notices. It also supports receiving images, videos, files and states. I am still working on file receiving functions.

I love that all clients include rainbow messages.

fluffychat for Ubuntu Touch

New to me, fluffychat is a "Simple Matrix Messenger for Ubuntu Touch". The design philosophy for this app is focused on simplicity, and the hope is for it to complement uMatriks, another Ubuntu Touch client.

Why are you not just contributing to uMatriks? uMatriks is great and it's superb, that someone has created a Matrix Client for Ubuntu Touch. But sometimes you have a so detailed vision of a user interface, which you want to implement, that you can not just contribute to an existing project. However, I would like to work with the uMatriks developers together. We could use the same push gateway for example.

Riot/Web

  • Welcomed Bruno onto the Riot/Web team! (and said farewell to Luke)
  • Lots of bug blitzing
  • Riot 0.16 due next week, with Jitsi-everywhere (at last) and Slate for composer.
  • We now have an end-to-end test harness (via puppeteer!) at last - being applied at first to fix onboarding bugs.
  • Lazy loading members in progress

Riot/Mobile

  • Major perf work ongoing
  • Decoupling members from state…
  • …and then lazyloading members.

Synapse 0.32.2 available

v0.32.2 is now available, which includes the m.room.server_acl security feature discussed in a previous blog post.
  • If you're not running 0.32, please upgrade!!
  • Python 3 progresses!
  • Quite a lot of ops work to keep matrix.org alive. Status page coming soon! (We promise!!)
  • Looking at metrics and quotas for better experiences on limited-resource homeservers.

Spec

  • State res fix
  • Version bump
  • Lots of omission PRs landing
  • TravisR S2S work
  • Work on both IS & AS API too
  • Uhoreg work - .well-known, and 3pid logins
  • Some internal discussions about improving the proposal process; particularly having a 5 day 'final comment period' similar to Rust's. Once we've got alignment within the core spec team we'll MSC it.

Dendrite

  • Anoa & APwhitehat continue to blitz onwards on AS and federation
  • thirdparty protocol support for application services in the works.
  • continued progress on getting the AS query APIs supported. PR for /alias still being reviewed, PR for /users happened this week and now being reviewed
  • Timestamp massaging for application services ready and in review
  • APWhiteHat did a good chunk on federation, now migrating to supporting the various EDUs, starting with m.typing events.
  • …running out of low hanging fruit…

AS

  • matrix-appservice-irc 0.9.1 is here with perf improvements!
  • Lots of work on trying to make it start up sooner

E2E

  • UISI stats
  • Device list syncing
  • Encrypted backup

Debian Packages

andrewsh has packaged synapse 0.32.2 for Debian

uhoreg has packaged quaternion 0.0.9.2 for Debian

That's all folks

Watch Matrix Live below, and see you next week!

This Week in Matrix 2018-07-05

2018-07-05 — This Week in Matrix — 

matrix-synapse for Docker and k8s

Ananace has been working on configuration files for Synapse:

So now the K8s stuff has configuration examples for Synapse + Riot + mxisd + coturn, all runnable on your very own Kubernetes cluster - though with some manual tinkering required at the moment.
I've updated the Kubernetes configuration examples to include everything you need for a full Matrix stack; Synapse + Riot + mxisd - using the built-in K8s ingress
And + coturn of course, not to forget
Take a look: https://github.com/ananace/matrix-synapse

mautrix-telegram is now the primary Telegram bridge on t2bot.io

TravisR:
t2bot.io is now running mautrix-telegram as the primary Telegram bridge. Feel free to join the other 10k users on the bridge and bridge your own Telegram group to your room: https://t2bot.io/telegram/.

We should give a big shout of thanks to tulir for his consistent and continued work on mautrix-telegram.

Docker images for the matrix spec


uhoreg has released dockerfiles to build the spec docs into html. This is going to be useful for watching the spec development accelerate over the summer.
For Docker fans: I've created a couple of Docker images (https://hub.docker.com/r/uhoreg/matrix-doc-build/ and https://hub.docker.com/r/uhoreg/matrix-doc-watch/ ) for building the Matrix spec HTML.

Debian packaging


andrewsh:
I'm packaging Circle IRC/Matrix client for Debian and backporting synapse to stable.

Google Summer of Code

The second evaluation for GSOC 2018 is nearly here, so we have some updates from the student participants:

apwhitehat is working on Dendrite

Dendrite updates for TWIM (before GSoC 2nd eval): This month we've got most of the federation APIs working on Dendrite. These are:
  • State APIs #486
  • Get missing events API #516
  • Query user devices #498

We still need to figure out pagination for backfill API.

On applications services, we've got a lot of APIs working, thanks to anoa. Authentication now acknowledges App services, though lot of other stuff is under review. I am eagerly waiting for it to land.

On the same topic, anoa says:
We've had a PR from fadeAce/dirichlet_zby for the server-side implementation of end-to-end encryption support in Dendrite. Will be looking forward to seeing that land as well.
There is an explanation of the endpoints required for this in the CS API docs.

Zil0 is working on E2E in the Python SDK

Sounds like Zil0 has been going great guns on the matrix-python-sdk:
Encryption in matrix-python-sdk should now work fairly well.
The biggest parts to write were device tracking and key persistence. All the PRs are now opened, and the code is fully tested and documented.
It is possible to try out the implementation before it lands by refering to instructions written here.
Also a special thanks to poljar for some great work on new Olm bindings, which allowed the project not to get stuck with packaging issues.
Further work include encrypted attachments, device verification and key sharing.

koma, kotlin client

Last week I mistakenly referred to Koma as being written in Rust, then Java. This was all incorrect, though being written in Kotlin, Koma does run on the JVM and use JavaFx.

sideboat:

This week in koma, we are improving the room info window used for viewing and editing the name, icon, and aliases of a room. In the upcoming release, user power levels will be taken into account, so that editing options will only be shown when the user has enough power.


Synapse


Neil says:
We've just cut the next release candidate for Synapse: 0.32.0rc1.
The upcoming release focuses almost entirely on security; fixing federation bugs and adding new features for countering abuse.

Riot

This week we welcome Bruno to the Riot team, he's off and away working on getting integration tests set up.

Otherwise:

  • More work on the Jitsi integration
  • More work troubleshooting E2E failures
  • v0.15.6 and v0.15.7-rc.1 now available

Self-reference

This week was only six days long, but to make up for it we'll have a bumper eight day edition next time! Come join us in #TWIM:matrix.org and share what you've made.

This Week in Matrix 2018-06-29

2018-06-29 — This Week in Matrix — 

Welcome

Welcome to This Week in Matrix, let's see what updates the community has to offer this week!

koma

Announcing his update nearly a week ago, radicus released v0.7.3 of koma.

There have been quite some changes since updates of the project were last posted, but the major ones are:
  • Upgrade to JavaFx 9
  • Experimental support for infinite scroll on message list
  • Rewrite ListView to improve performance and reduce jar file size

dialogflow connector

vurpo has released matrix-dialogflow, which allow the use of DialogFlow agents as chatbots:
I've written a little bot for connecting a DialogFlow agent to Matrix as a chatbot. I did this for my own personal purposes but I know someone else might find this handy as well.

mautrix-telegram

tulir:
New stuff in mautrix-telegram:
  • A basic telematrix database import script
  • Improved config for relaybot message formatting, including the option to use Matrix displaynames (instead of just mxid localparts) I've also been planning an improved Matrix->Telegram formatting converter and a provisioning API for integration managers like Dimension.

jmsdk

ma1uta has been working on a matrix client this week. To that end, he has implemented jmsdk, a "very early version of the matrix sdk and common classes (client, bot, …)"
Currently implemented the matrix client on the java with full support of the C2S API. It still under development and contains bugs.
He has also been working on a "bot sdk with core classes to write custom bots and appservices."

matrix-appservice-voip

Max has been working on VoIP bridging between Matrix and regular phones using Freeswitch:
We have successfull VoIP bridging between Matrix and regular phones using Freeswitch, for 1:1, both directions! a v0.1 is scheduled in a few days once configuration is possible and a getting started doc is written.

Next steps:

  • more voice backends (think Jitsi, etc.)
  • SMS support with Twilio and/or OVH initially
  • mxisd integration to automatically invite bridge users if needed and suggest bridge users
  • mxgwd integration to auto-join HS regular users if a VoIP bridge user invites them, so > calls are directly seen
  • And much more in later releases
Join #matrix-appservice-voip:kamax.io for more info, or visit the Github repo

transform

A wild bettiah appeared, announced a completely new homeserver implementation in TypeScript:
I have been working on a homeserver implementation over at https://github.com/bettiah/transform . It is fairly basic at the moment, but the development experience is straight-forward and even fun.
I'm interested to see a TypeScript backend running, and of course it's great to have more homeserver implementations! Some highlights from the readme:
Transform is a matrix homeserver built using Typescript and Redis. It is not fully functional yet.Status: Register, Login, CreateRoom, Invite & Join seem to be functional with riot web client. But quite a lot of functionality is missing and the software is definitely not ready for deployment in a public facing role.Design: A lot of the code is auto-generated from the excellent swagger specs for the client-server api.Contributing: It is early days yet. However, Typescript has enabled safe & rapid progress. Redis streams too seem to have a very well thought out api and the whole thing has been a fun experience so far. Contributions are very welcome.

dsn-traveller source code released!

Good news for those following the progress of dsn-traveller, the source is now publicly available!

From Florian:

I received permission to publish the source code of the DSN Traveller bot (https://dsn-traveller.dsn.scc.kit.edu/) prior to handing in my thesis: You can find it at https://github.com/florianjacob/dsn-traveller, it's written with ruma-client and Rust async/await.
Room remains at #dsn-traveller:dsn-traveller.dsn.scc.kit.edu.

E2E for Python SDK

Late breaking, but not itself broken, &Adam has news from matrix-python-sdk:
first olm-centered E2E PR for the python sdk merged to master (finally). Lots of great work from Zil0 still to be merged waiting on PR review. https://github.com/matrix-org/matrix-python-sdk/pull/224

Fractal

From Tobias:

No new Fractal release this week. Development was quite active nevertheless, with Jordan's new inline audio player landing in master, Julian getting close to landing the first part of the new room settings, and Eisha working on improving the image viewer.

Riot

New Rooms

And so…

All good things must come to an end, so it is with this blog post! Watch this week's Matrix Live (hosted by yours truly) below, and come see us in #twim:matrix.org!

This Week In Matrix 2018-06-22

2018-06-22 — This Week in Matrix — 
[Ben is away today, so this week's edition is compiled again by Matthew]

libQMatrixClient 0.3.0.2 and Quaternion 0.0.9.2

kitsune writes:
libQMatrixClient 0.3.0.2 has been released - no new features, just small fixes including one for an unlucky typo preventing 0.3.0.1 from generating .cpp files with GTAD.

Quaternion 0.0.9.2 is out, another step towards 0.1. Aside from bugfixes and using the latest libQMatrixClient, it features an entirely new timeline layout similar to that of Riot (the old one is still around too). Also, you can now change some settings through the menu rather than by editing a configuration file or registry - including switching timeline layouts on the fly!


Loading Artist sticker packs!


TravisR says:
The Official Loading Artist sticker pack got added to Dimension ?

It also got added to Modular (aka Scalar), the default integration manager for Riot :)

releasetracker

Ananace writes:

Decided to actually start pushing code I've been slowly prodding at for the last while, ever since starting the Ruby Matrix SDK in fact. Working on a Sibbell like system that tracks new releases on GitHub projects, posting them into a specified Matrix room.

The release tracker now tracks both full releases and just regular tags, though only one or the other at the moment.

Spun up a proper room for the release tracker, in case people want to help development / feel like using hosted alpha-level software more than running it themselves. #releasetracker:kittenface.studio

jeon and jmsdk updates

ma1uta writes about his jeon Java HS, jmsdk and Matrix spec work:
I reorganized my projects and extracted the sdk from the api. So, today I have one project for the api (https://github.com/ma1uta/jeon), another for the sdk (https://github.com/ma1uta/jmsdk) but last is very early and non-usable.
Also I covered the code with the swagger-annotation and now I can generate the swagger schema from the code. There is an example: https://github.com/ma1uta/jeon/blob/master/client-api/generated/swagger-ui/swagger.json
And there is an example of the spec was generated from swagger: https://ma1uta.github.io/matrix-api.html (plain and without sorting or grouping, I'll maybe fix it).
Everyone can ask me in the #jeon:matrix.org (matrix api) or #mxtoot:matrix.org (matrix-mastodon bridge).
Then I want to cover the remaining api (appservice, push, identity but not federation because it isn't completed yet), write sdk (client, bot). And publish api and sdk on the maven central repository.

CI/CD for Plasma!

Nico gives updates on Plasma, the new Scala/Akka homeserver:
I've setup CI/CD for plasma HS. Now every time a push occur on the repo, the pipeline builds and deploys a plasma HS instance on a test server.
This test instance is reachable at http://matrix.beerfactory.org:9000. For now it is very modest and can only reply to a few C2S endpoints like GET /_matrix/client/versionsPOST /_matrix/client/r0/login and POST /_matrix/client/r0/register are also available for testing registration and login flow. POST /_matrix/client/r0/createRoom is also available with the TEST_TOKEN auth token value, but it's only a mock.
I'm now working on implementing the concept of room servers: each room will be managed by a dedicated room server (an actor), so they get fault tolerance and scalability by default (through akka clustering).
There's also a dedicated room for this project : #plasma:beerfactory.org

matrix-python-sdk 0.3.2

&Adam says:
v0.3.2 of matrix-python-sdk released. See the github release for list of changes. (v0.3.0 and v0.3.1 are substantially the same with small formatting errors). There are a lot of hugely annoying bugs fixed in this one, so upgrading soon is recommended.
There's also been a lot of work on adding E2E to the python-sdk from Zil0 and his GSoC project!

gomatrixclient

Black Hat writes:
I am currently writing a high-level API on top of gomatrix. As gomatrix is suitable for bots but not for clients, I decided to write a layer above it. (The motivation is to provide a backend for Matrique) It will have similar API as libqmatrixclient, but in Golang. It is currently under heavy development, and API breaking changes are frequent. Sources are available in Gitlab: https://gitlab.com/b0/gomatrixclientP.s. It is a library for writing clients in Golang. But it also provides useful APIs for basic functions, e.g. getting avatars.

Fractal 3.29.1

Tobias says: New Fractal release 3.29.1, which includes a Eisha's new image viewer [implemented as part of GSoC]!

It looks like this (screenshot being a screenshot of, uh, last week's screenshot, for maximum fractalception...)

Terraform Provider

TravisR writes:

I've been working on a Terraform provider for matrix. It is still a work in progress, however I plan to have the basics completed in the coming days. The provider gives you the opportunity to create users, rooms, and other objects on your homeserver, making your homeserver part of your infrastructure. This could be useful for people who want to set up a monitoring room, or for setting up default rooms on a homeserver instance. In particular, this provider will be used by the monitor bot (see last week's post) to set up the test homeservers for seeing how the bot scales with increased server counts. Source and information available on Github: https://github.com/turt2live/terraform-provider-matrix

mxtoot 0.4.3

ma1uta says:I've fixed a few bugs and added some new commands (show status by id and show n-last statuses), and now mxtoot 0.4.3 (Matrix-Mastodon bridge) can send public, private, unlisted and direct messages. There are 4 features left to go:
  • show, add and remove follows;
  • show threads;
  • show notification, public and federated lines (and optionally merge them with the home timeline);
  • show account info by id.
Also I think to implement a bridge Matrix-ActivityPub as S2S. For example, a room - is a ActivityPub's actor. Room participants is a bot corresponds to actors you follow to. Room timeline is a Inbox+Outbox. Reactions is a likes/favorites. Pinning message is a boost. Replies will be very useful.

mautrix-telegram now puppets via user-specific relay bots!

tulir sneaks in at the last minute with:
mautrix-telegram now supports logging in with your own bot. It means that you can look almost like a real user and even use direct messages without logging in with your real Telegram account!

And finally...

On the core team it's been an irregular week; as mentioned in last TWIM we spent most of it in workshops working through spec issues as part of the mission to finally get to an 'r0' stable release of the spec across all APIs - not just the Client/Server API.  The majority of this was spent making up for lost time on the S2S API, analysing its various holes and designing solutions to them.  Things are looking promising - we're keeping the work under wraps though given the potential for abuse, although we should see more gaps being fixed in the coming days.  Meanwhile we're aiming to get the r0 stable release out by the end of August.  We also unblocked a few longstanding MSCs (.well-known URIs and media limits), although in the end the S2S stuff took priority.  On the client side we did a lot of design sessions on Riot/Mobile (working out how the new app design should work on Mobile - watch this space for details!) and also how to speed up app launch (the concept of Hybrid Sync; somewhere between an initial sync and an incremental sync - basically an initial sync which can be interrupted in order to let the user use the app whilst the initial sync is still ongoing) - we'll write up the notes and publish these asap.

We also announced the Open Governance work which we've been doing in order to extend control of the Matrix spec to properly include the wider Matrix community - the plan is to get the Matrix.org Foundation legal entity set up roughly around the same time as the r0 release of the spec in August, and formally decouple control of the Matrix spec from New Vector (the company we set up last year to hire the core team).

We'd also like to welcome mujx (developer of nheko) and kitsune (developer of Quaternion and libQMatrixClient) to the new core team as we start trialling the new governance structure (which mainly amounts at this point to getting review approvals on spec proposals and changes from the relevant domain experts on the new team).  This brings us to a full complement for the team: Erik (servers), richvdh (servers, crypto & clients), Dave (clients & push/identity) and uhoreg (crypto, general) from the current core team; and Anoa (servers, AS API), TravisR (integrations, AS API; acting with Dimension hat on), mujx & kitsune from the community.

Otherwise, spec work has taken priority over writing software, with the exception of: APwhitehat doing as much federation work in Dendrite as part of GSoC as the current unstable state of the API allows; Michael (t3chguy) has been blitzing through P1 Riot/Web issues.  Next week should be back on the normal (if not better!) trajectory however.  No Matrix Live this week however, as we're all exhausted.

This Week in Matrix 2018-06-08

2018-06-08 — This Week in Matrix — 

GSOC Updates

With the first evaluation date coming up, let's take a look at what some of the GSOC students have been working on.

Zil0 on the matrix-python-sdk

I am working on implementing end-to-end encryption in the Python SDK. As of now, I have done a good part of the encryption and decryption work with Olm and Megolm, enough to allow communicating with Riot in an encrypted room. My next goals include device list tracking and key persistence, which are the main steps left before the implementation starts being usable in a real environment.

apwhitehat on Dendrite

My aim is to achieve feature completion on Dendrite. Have got lots of help from anoa, for which I'm very grateful.
Features worked on this month:
  • we made a transactions cache/table for idempotency. So now dendrite will not reprocess events as far as client-server api is concerned.
  • added request authentication function which recognises an application service user (partially landed.)
  • username auto generation, which let's you register without username (will be used for guest access later.)
  • We also added a tokens library based on macaroons, however we might not be using it anytime soon. Since it's been known to be very problematic (on synapse).
  • Other small bug fixes not big enough to mention.

Clients

We are rich in client announcements this week!

palaver

Arne has announced v0.1.0 of Palaver:
More news from the JVM-world: I've just released the first Alpha version (v0.1.0) of Palaver, a Desktop client written in Kotlin: https://github.com/MrCustomizer/palaver/releases/tag/v0.1.0. As backend it uses the matrix-java-sdk, the GUI is written in TornadoFX, a Kotlin-Wrapper for JavaFX. The room for this client is #palaver:matrix.localtoast.de. The current features are listed in the changelog: https://github.com/MrCustomizer/palaver/blob/v0.1.0/CHANGELOG.md. And there is a little demo video on youtube, too: https://www.youtube.com/watch?v=AuGuxAPuRIM.
I enjoyed this video enough that I'm embedding it here:

matrique returns

Black Hat is working on Matrique:
a matrix client using golang and QtQuick controls 2. It is not ready...Yet. PRs and issues are welcomed!

neilalexander has a new macOS Client: seaglass

neilalexander has begun work on "seaglass", a client for macOS using matrix-ios-sdk, he's only just begun, but for now see the screenshot below:

kitsune: GTAD and libQMatrixClient

kitsune has announced GTAD v0.6 and libQMatrixClient v0.3. We've covered GTAD before, but I think it's worth including this note from the readme:

GTAD (Generate Things from an API Description) is a generator of code from a Swagger/OpenAPI specification. Initially made to generate marshalling/unmarshalling C++ code for Matrix CS API, it can be extended to support other API descriptions and other programming languages with static type checking.
kitsune regarding the GTAD 0.6 release:
A new version of API code generator, GTAD, 0.6, has been released today, adding support of variant types, proper dealing with definitions referencing other files ($ref) and more options to override schema names - even defined inline. Most importantly, GTAD has got extensive README.md that describes (most of) the things needed to start writing your own templates! As usual, kitsune will be happy to help those who would like to try it (both with C/C++ projects and other languages).
libQMatrixClient has been benefiting from GTAD over the last 4 months or so - but this is the first release where GTAD is stable and feature-complete enough to be shared with other projects.
#gtad:matrix.org is the new room for GTAD chat and support.

and libQMatrixClient 0.3:

A new version of libQMatrixClient, 0.3, comes out this weekend. This is the first libQMatrixClient release to include (almost) all CS API requests and supplementary (non-event) definitions, thanks to GTAD 0.6. Notably, it now includes jobs to register users, manage devices and keys on the server (no local key management yet - E2E work has just begun). This version also gains centralised request error handling so that clients could deal with problems in a unified way, and support "Consent not given" errors of GDPR fame, so that client authors could automatically open consent pages. You can also trigger logging out of all devices through libQMatrixClient thanks to a very recent addition to CS API spec from TravisR.

Fractal

Last week we linked to Julian's blog notes on the User Settings panel - this has now landed in Fractal master.

nheko

nheko v0.4.3 is now available, from the release notes:
  • Overdue fixes for some regressions with regard to widget height introduced in the previous two releases
  • The matrix id will be shown on hover on the display name.

riot-web

Riot-web: released an RC for 0.15.5. This RC includes some small bugfixes.

riot-android

We have been working on Riot stability: fixing crashes and adding more tools to control code quality The community on android adds a more readable display of keys and a floating actions menu is coming.

riot-ios

Working on perf. On stability too (like killing build warnigs). Users can now re-request keys when they have UTCs.

Other projects

anoa on dendrite

We've got a shiny new application service component which runs as a separate process (if you're doing multiprocess dendrite) that handles all outbound communication to application services. Last week I got event sending working. This week I'm hooking up an internal API for other components (roomserver, c-s api) to talk to the app service component, as we occasionally need to ping AS's to ask about existence of rooms or users. Getting those two endpoints covered is the goal of this week.

ma1uta Full Spec Implementation in Java

ma1uta appeared with an extremely ambitious piece of work. His goal:
I want to create a full spec's implementation on java (all 5 specification). After that I want try to write a homeserver (2 variants: distributed on java+kafka and simple which can run on a ligth vps). But it's a long-term goal.
So far work has begun on an implementation of the Matrix API in Java:
https://gitlab.com/ma1uta/jeon - another java implementation of the matrix api (client-server, server-server, application server, push server, identity server) using jax-ws. It corresponds the specification on https://matrix.org/docs/spec. On the next step I want dive deep into synapse to parse it's api and fill the gaps of the spec with sending pull request. May be I will write something like a TCK (test compability kit).
And an SDK for which there is a sample bot for mastodon:
Also this project has a very early sdk (client, bot). I will fix it after finishing works with the spec.https://gitlab.com/ma1uta/mxtoot - matrix-mastodon bridge. With this bridge you can invite a bot and read your home mastodon's timeline, post messages, reply and boost messages.
There are rooms to follow progress on these projects:Also find updates on Mastodon: [email protected]

The Continuing Adventures of Half-Shot and the Discord Bridge

Half-Shot has been at work on matrix-appservice-discord, and has made a v0.2.0 release! Looong feature list below is taken from https://github.com/Half-Shot/matrix-appservice-discord/releases/tag/v0.2.0:
  • Support Node v10
  • Option to disable @here and @everyone on the bridge - Permission based mentions coming soon.
  • Sending large files over the Discord limit now sends them as URLs
  • Added support for external and animated emoji - Thanks @Sorunome!
  • Initial support for m.sticker
  • Sender avatars are now thumbnailed - Thanks @turt2live
  • Support for message edits. Thanks @anoadragon453
  • Support for custom and animated discord emoji parsing M->D. Thanks @anoadragon453
  • Throw discord.js logs into our logging to help debug connection issues
  • Warn when turning on encryption that the bridge will no longer work.
  • Clarify where to specify protocols in the registration config. Thanks @anoadragon453
  • Add attachments into the event store and fix up some of our Inserts. Thanks @eeeeeta
  • Fail if the event.content.url is not present.
+ lots of testing and fixes

t3chguy matrix-search including e2e

t3chguy, straight out of exams, went back to working on matrix-search, now with a working release, including e2e chats!
a local Full Text Search engine for Matrix, which will index the events locally and then provide a search api interface for matrix clients to query it matrix-search mimics the standard /search API
toml has already been looking at this and has created a docker container for it: https://github.com/matrix-org/matrix-search/tree/toml#to-run-in-a-docker-container

Ananace on Kubernetes

Switched the Kubernetes-oriented Synapse image over to running on the official one as a base, seems to still work quite well. Even if there were some issues at first due to Alpine and busybox.
I've been building slightly specialized Synapse docker images since 0.25.1 - and running them on my Kubernetes cluster at home. Moved them to being based on the official images now instead of building them on CentOS as I used to.

Synapse 0.31.0 and 0.31.1 released

Changes for Synapse 0.31.0
  • Most notable change from v0.30.0 is to switch to python prometheus library to improve system stats reporting. WARNING this changes a number of prometheus metrics in a backwards-incompatible manner.
  • There are still many changes being made relating to the Python 3 migration.
For Synapse 0.31.1
v0.31.1 fixes a security bug in the “get_missing_events“ federation API where event visibility rules were not applied correctly.
andrewsh has been packaging synapse for Debian.

Guides index

I'm going to start making a list of guides from around the web to be linked from https://matrix.org. If you have, or know of, useful guides relating to matrix, please let me know or share in #twim:matrix.org.

New rooms

other points of interest

The end is nigh...

And here it is. As you may have noticed, I'm leaning much more toward quoting wherever possible, rather than trying to paraphrase. The aim is to keep the content authentic and community-driven, rather than a narrative from one fairly naive observer. The risk is it makes the post awkward to read as it switches voice too frequently. Come to #twim:matrix.org and let me know if you have opinions on this.

Check out Matrix Live:

This Week in Matrix 2018-06-01

2018-06-01 — This Week in Matrix — 

GDPR

It's over. It's once again safe to check your email, and we got some fairly good jokes out of the experience.

Projects

Synapse

hawkowl is technically new to the Matrix Core team but is already integrated and storming the codebase like an old pro. She and notafile have been ramping up on work to the make the Synapse codebase work with Python 3.

matrix-docker-ansible-deploy can now set up your homeserver using the official Matrix Synapse Docker image

@slavi:devture.com sent great news: matrix-docker-ansible-deploy can now set up your homeserver using the official Matrix Synapse Docker image. In his words:

Using this Ansible playbook is probably the easiest way to set up a fully-functioning Matrix homeserver on your own machine. The setup includes Matrix Synapse and some related services required to actually make it useful (automatically-managed HTTPS; STUN/TURN server for audio/video calls; Postgres database for Synapse; optionally riot-web; optionally Amazon S3 storage support)

matrix-registration

Helpfully named Zeratax?utf8=✓ has released matrix-registration, an application which allows you to "easily create tokens to invite users on your homeserver without the need to open up public registration". There is a public demo here: https://zeratax.github.io/matrix-registration/demo.html

Says Zeratax:

my personal problem was: i didn't want to open up registration for everyone i didn't want to register every account manually and have to worry about seeing passwords etc now i can just share a link, e.g: https://zeratax.github.io/matrix-registration/demo.html?token=JargonGingerYankee

and my friends can register.

these token can be restricted as one time usable only or by an expiration date.

dendrite activity!

anoa writes about progress on dendrite:
Last week dendrite was filtering events from user's into seperate queues for each application service to eventually be given. Sending these events requires batching them up into transactions and then sending them to an HTTP endpoint on the application service. I'm happy to report that from today, that functionality is now implemented, along with graceful handling of both server and application service downtime.

Fractal


Alexandre Franke from Fractal reports:
Fractal got the beginning of a revamped directory (from one of our GSoC interns), as well as misc bugfixes and performance improvements. It has also been added to Damned lies, the GNOME platform for translations.

neo 0.06

neo v0.06 is out now, release notes:
Beautiful new file upload dialog, with previews, captions and the option to cancel. Making 1on1 chat look a bit nicer.

added: file upload dialog room canonical alias fallback for name 1on1 room now shows avatar+name of partner

changed: getting room name/image in initialSync instead of on render, still not optimal better image/video scaling better local echo various bugfixes

Articles and blog posts

Riot Jouni blog post

Riot is undergoing a visual redesign, thanks to Jouni Helminen. Take a look at the redesign work on the Riot blog. The changes are not radical, but will help standardise and modernise the Riot interface. Early feedback I've seen has been mostly positive.

Julian on Fractal work

Julian is a GSOC 2018 student working on Fractal. He's been working to improve the user account setting panel, and has made progress as described here.
The user can now change the following settings: Avatar, display name, add and remove email addresses and phone numbers. Also, they can see the homeserver and their own MXID.
We will probably make some more small changes on the way to make the UX as good as we possibly can.

Fedora Magazine mention of Fractal

Fractal was featured in Fedora Magazine this week, just a little introduction. I notice the article barely introduces matrix: not sure if that's an oversight or a belief that the audience will already know it!

New Riot theme from MTRNord: blueshine

MTRNord has started work on "a secondary Dark Riot Theme named blueshine". Lots of screenshots are available on the PR, and take a look below too. If you'd like to try it out, TravisR has hosted a Riot instance with the theme included here.blueshine riot theme

Spec Proposals

Still posting about spec proposals. To get involved in the spec development process, take a look at the Matrix Spec Change Proposals page to find out what's happening, read the proposals, then talk about it in #matrix-spec:matrix.org. One proposal looking for attention and a good place to start:

Interactive Key Verification: Spec proposal from uhoreg

Long-time contributor uhoreg joined the matrix.org core team this week, and is requesting feedback on a spec proposal relating to Interative Key Verification. Reminder that the list of spec proposals is tracked here, and to join the discussion in #matrix-spec:matrix.org.

nheko packaging

nheko openSUSE packaging

It's now possible to install nheko as a openSUSE package - great to see that there is enough demand for a community package to appear.

nheko 0.4.2-1 package now in Debian

uhoreg provided Debian and Ubuntu packages for nheko 0.4.2-1: https://packages.qa.debian.org/n/nheko/news/20180530T135401Z.html.

New Rooms, also rooms which happen to be new to benpa

That's about all for now…

… and that's plenty for the week! Take a look at Matrix Live below, and join us in #twim:matrix.org if you have something which should be included.

This Week in Matrix 2018-05-25

2018-05-25 — This Week in Matrix — 

GDPR

HAPPY GDPR DAY EVERYONE!!!!1!

  • Our long-awaited new privacy policy & term & conditions for the matrix.org server are here - Phase 1 is complete!
  • Folks are already accepting the new policies - thanks.
  • We're going to start requiring acceptance to access the matrix.org server on Tuesday (May 29th).
  • We're already receiving our first GDPR requests… :|
  • Erasure and Right-to-be-forgotten work (Phase 2) is next up so we can action the requests in a timely manner.
  • It looks like we will go ahead on removing MXIDs on events as a Phase 3 (although for now we do warn people that this is effectively a technical limitation of Matrix, albeit one that we're working on).

Client Updates

mtxclient E2E progress

Big E2E progress from mujx, developer of the nheko client on his project mtxclientAs of this week, mxtclient is able to decrypt group events. When writing (that is, sending encrypted messages) is complete, the idea is to migrate this work back to nheko, though mujx points out this library could be used in any client.

Fractal

Back to work after the HackfestFractal have released version 0.1.30, featuring:
  • Translations support
  • Number of members in the room in the members button
  • File storage configuration support
  • Gold and Silver tags for admins and moderatos
Some coverage of the Fractal design thinking from last week, nothing new but a decent signal boost.

gomuks

tulir came in with some late breaking news about gomuks, the terminal client written in go. New features:
  • A fancy quick room switcher by Evidlo
  • A few basic UI options (hide user/room lists)
  • Plaintext view to be able to click long links and such
  • Fixed some bugs

Riot/Web

  • GDPR-capable release! 0.15.4 out today
  • Various bugfixes and performance regressions.

Riot/Mobile

  • GDPR-capable releases!
  • Sticker sending is ready modulo some CSS bugs; we'll get it pushed shortly.

Bridging

JonTheNiceGuy bridging video

JonTheNiceGuy produced a helpful video describing how to use bridges for IRC, Slack and Telegram, showing the difference between the different bridges. I found this to be really clear and well-paced for following the many practical details of bridging. Watch here: https://www.youtube.com/watch?v=ZNEzgYRLj8g

Discord bridge

anoa and half-shot have been working on the matrix-appservice-discord bridge:
"finished edit passing between Discord and Matrix, as well as support for discord's custom emojis (though UX is a bit manual until TravisR's proposal goes through ?)"

matrix-puppet-facebook-1to1-fixer from Brendan


Brendan shared a project he's been working on this week: matrix-puppet-facebook-1to1-fixer. This project fixes a UI issue Brendan had with the Facebook Messenger Bridge, namely that activity in 1:1 rooms was not clear enough.
This small tool will take the local part of the room ID created by the Matrix<>Facebook Messenger bot once the friend has joined it, identify th friend, and grab their avatar and display name to set the room's.

mautrix-telegram

Lots of progress on mautrix-telegram this lately including v0.2.0 RC. As reported by tulir:
  • A dockerfile by jcgruenhage
  • Option to whitelist/blacklist automatic bridging of specific chats
  • Fixed many bugs

matrix-appservice-sms

eta has been working on matrix-appservice-sms this week:
I have managed to do the first phase of a massive refactor that makes it way more reliable (temporarily store SMS in the database before delivery)

this makes it more resilient to synapse hiccups, as well as general failures

Other Projects

matrixboard, from betz

betz runs the https://hackerspaces.be/ matrix server and has this week, inbetween repairing his Synapse install, been working on a project called matrixboard. This tool is used to output the last five messages from a given room to displayed as HTML, the idea being to display output from a specific room as a website widget. You can see an example using #matrix-dev here.

opsdroid room state connector

SolarDrew implemented a database modulefor opsdroid to allow Matrix room state to be used to persist chat bot memory. (Suggestion apparently came from Cadair, the human not the place.)

The idea of using the room state to encapsulate bot data per-room was well received, discussion in #TWIM:matrix.org suggests this is an estabilished practice for some developers.

matrix-python-sdk

No general GSOC round-up this week, &Adam shared the news that GSOC-student Zil0's first PR towards E2E in matrix-python-sdk landed on master. These PRs are working from efforts previously contributed by pik.

Ruma

Work continues in the Ruma space. This week saw the release of

  • ruma-events 0.10.0: ruma-events contains Serializable Rust types for the events in the Matrix specification. 0.10.0 sees a major update with code provided by mujx, and contains many breaking changes.
  • ruma-api-macros 0.2.2, and ruma-client-api] is also updated to use the new macro.

f0x account migration helper

f0x has started work on a tool to help migrate accounts - including across homeservers. Right now he's working on the GUI, but check out progress at https://github.com/f0x52/matrix-migrate.

DSN Traveller by Florian

Florian reports:
As part of my master's thesis, I wrote the DSN Traveller bot, which is crawling the matrix federation to measure the shape and size of the matrix network, and how distributed it currently is. The bot is already in a smaller number of rooms for testing, and will join the remaining rooms over the next days. All details at https://dsn-traveller.dsn.scc.kit.edu/, room at #dsn-traveller:dsn-traveller.dsn.scc.kit.edu.

Synapse

  • GDPR policy management is welcomed in by Synapse 0.30
  • Means we get server notices too!
  • Explosion of Python 3 activity from notafile & Amber (hawkowl)
  • andrewsh has prepared a Debian package for the 0.30 release.

Dendrite

  • Anoa is on the case, having joined the core team on Monday - Dendrite is already sending events to ASes! Meanwhile APwhitehat is hacking away on his GSoC projects!

Spec

The Matrix Spec Change Proposals list is populated, popular, and under discussion at #matrix-spec:matrix.org. There are multiple issues ready to review, for example: TravisR is calling for attention on MSC1256: "Custom emoji and sticker packs in matrix".

New Rooms

GSOC

Last week I promised an update on the state of the various GSOC projects in the Matrix Ecosystem. There is activity happening but other than what's been discussed above we'll wait a week or two for more detailed updates.

See you soon

As always, if you have things to say, projects to advertise, or anything else, ping me or visit #TWIM:matrix.org. I'm keen to get everyone included and keep this community enthused about all the work going on in the Matrix ecosystem.

Check out this week's Matrix Live:

This Week in Matrix 2018-05-18

2018-05-18 — This Week in Matrix — 

On the Web

Enter the Matrix

Brendan produced a really, really informative article introducing Matrix. As someone who is still very new to the project I found this writng to be very clear and informative, so thank you! The article made it to the top of Hacker News, where you can find a discussion of both the article and Matrix itself.

Presentation about Matrix

martinkrafft presented about Matrix at wossat a New Zealand Open Source show and tell meetup. His talk can be seen here, and focuses on the benefits of Matrix for users.

Spec Proposals

As you may have seen from the previous blog post, we have a new drive to advance the Matrix Specification itself. Part of this is https://matrix.org/docs/spec/proposals, which lists all the spec change proposals we've accumulated so far, and describes the flow for getting new proposals merged. There is a new room, #matrix-spec:matrix.org for discussion, please join if you want to get involved in this process. Check out the page and the blog post for more detail.

Next up: try to turn some of the many WIP proposals into Spec PRs...

Fractal Hackfest 2018

Fractal Hackfest 2018: was super successful and productive by all accounts, and there were many! Check out reports from Daniel García Moreno (Day 1, Day 2), Eisha Chen-yen-su, Adrien Plazas, Julian Sparber, Tobias Bernard and Alexandre Franke.

A major topic at the Hackfest was a discussion of splitting the Fractal client into two UIs for the different behaviours of messaging apps. For anyone interested in product design thinking this is a genuinely fascinating topic. I encourage you to read "Banquets and Barbecues", Tobias' excellent coverage of the latest thinking. The different chat personas are very well explained and the post brings up some of the immediate technical challenges too.

Projects and Products

mxisd v1.1 RC1 available

Max reports on mxisd, a Federated Matrix Identity server for self-hosted Matrix infrastructures:

mxisd v1.1 RC1 is out, addressing various privacy issues and being more GDPR-friendly overall. Testing and feedback from the community is very much appreciated

Dimension

Dimension, an open source integrations manager for matrix clients from TravisR, now supports sticker packs.

Ruma

Rust-based Ruma has new activity, starting with the release of ruma-api-macros 0.2.0. This moves ruma-api-macros from dependency on hyper to using types from the http crate. This will give more flexibility about library and framework choices for ruma-client-api and ruma-client.

Federation Tester Graphical Frontend

f0x produced and shared a graphical frontend for the federation tester, already getting some use. Check it out at https://neo.lain.haus/fed-tester/ and see the source on GitHub.

Synapse

  • Synapse 0.29 out - pretty much a maintenance release.
  • Chunk PRs are landing, providing a long-term solution to the ‘depth' issue which is still impacting #matrix and #matrix-dev.
  • Lots and lots of GDPR work - you can follow progress at https://github.com/vector-im/riot-meta/projects/7.
  • Fixes SYN-1(!!!) - server notifications in general.
  • ...and a last minute update from Andrej Shadura that the official Debian packages for Synapse are now up-to-date in Debian Unstable!!

Riot/Web

  • Riot/0.15 is out! With Stickers, Electron 2.0, Firefox E2E speed ups and lots of polishing
  • Working on GDPR now - cookie warnings have already landed on /develop, for instance. Remaining is the consent flow, and the deactivation/erasure flow.
  • Currently on a blitz to mop up P1 bugs
  • Accidental mission to replace Draft with Slate to make the RTE robust.
  • Upcoming: enabling Jitsi everywhere; E2E cross-signing; member lazyloading.

Riot/Mobile

  • Sticker sending is almost done!
  • GDPR work in progress
  • Released a fix for unreliable notification (and bg syncing) on Android 8 on Fdroid (released on Wednesday - please update!)

Neo Alpha 0.05

neo alpha 0.05 was announced by f0x, go take a look at https://github.com/f0x52/neo/releases/tag/alpha0.05. From the changelog:
features to bridge better with telegram, like Replies and Stickers, general ui improvement with fontawesome icons added: Replies Receiving stickers
and more

Discord Bridge

Half-Shot and anoa are working on the matrix-appservice-discord, and have embarked on bridging Discord edited messages to Matrix
headed up by anoa, feedback for this is useful as it's early days, https://github.com/Half-Shot/matrix-appservice-discord/pull/131
They've been writing tests and crushing bugs along the way. This is all in aid of the coming 0.2.0 release.

gomuks

A gomuks package was added to added to NixOS nixpkgs, shows interest in the client: https://github.com/NixOS/nixpkgs/pull/40510.

CromFr doge bot

CromFr has been working on a doge bot, which he describes as a hack over the hyper / haiku bots", and is hosted on TravisR's https://t2bot.io/. Go try it out in the test room #test-doge-bot-crom:matrix.org.

Independent Client-Server interactions

Lots of excitement at the variety of independent clients and servers able to interact over the matrix protocol. The images above show The Construct (server) and gomuks (client), and then mxhsd and Fractal. A fundamental part of matrix is to be an open protocol, so it's great to see entirely independent implementations liaising together! While implementing mxhsd, Max has been documenting spec omissions in a branch of the spec - we're hoping he will contribute these back!

Honourable mention for mujx, who was sending messages with nheko and Ruma a year ago!

Matrix Core team expansion

  • Stève - 17th May (yesterday)
  • Amber - 21st (Monday)
  • Anoa - 21st (Monday)
  • Hubert - 28th May
  • Half-Shot - 4th June ...and one more community member, hopefully (just sorting paperwork currently!)
Heads up that we're consciously trying to hire a mix of folks from the Matrix community as well as those outside it - and avoid hiring the whole community, both to ensure diversity of viewpoint & experience in the core team, and also to avoid cannibalising folks who working on their own commercial projects on top of Matrix. We'd prefer Matrix to be as decentralised and heterogenous as possible, needless to say - and instead try to support folks in building on Matrix without hiring them into the core team (where we'd expect them to focus on the core project for everyone's benefit). This may change once we have Matrix set up as a separate foundation, once we've got out of beta, of course.

New Rooms

Next week in Matrix

Next week I'll take a look at Matrix-related GSOC 2018 projects, what the plans are and how the first few weeks are going.

So Long...

That's all for now! Join us on #TWIM:matrix.org if you'd like to make an announcement and be featured in this series.

Check out this week's Matrix Live below, and we'll see you next week!

This Week in Matrix 2018-05-11

2018-05-11 — This Week in Matrix — 

Fractal Hackfest 2018

The talk of the town in Strasbourg this week was the arrival of Fractal Hackfest 2018! Event is still ongoing, and I'm sure they will provide a report of the progress on https://wiki.gnome.org/Hackfests/Fractal2018, though Alexandre kindly sent us a photo of the group in action

Fractal Hackfest 2018

Home Assistants

Wonderful things are happening and being discovered regarding IoT and Home Automation. uhoreg was the first to point us to tinloaf's project to build a Matrix Chatbot component for Home Assistant:


This component allows you to send messages to matrix rooms, as well as to react to messages in matrix rooms. Reacting to commands is accomplished by firing an event when one of the configured commands is triggered.


(this is not the same as notify.matrix https://www.home-assistant.io/components/notify.matrix/, which is used to deliver messages from Home Assistant to a room.)

Enthusiasm for this work led to jfred discussing his past adventures in Matrix, including a component for sibyl, 'a python chatbot with a focus on XBMC' allowing Matrix communication.

All this excitement led to Cadair creating #homeautomation:cadair.com, which has started a more thorough discussion. I'm eager to see more non-chat applications of Matrix, #twim:matrix.org came up with others with projects in progress.

On GDPR

GDPR has been a favourite topic for a while now. If you didn't already, take a look at the latest thinking from the Matrix Core team here: https://matrix.org/blog/2018/05/08/gdpr-compliance-in-matrix/


It's worth noting that we feel that GDPR is an excellent piece of legislation from the perspective of forcing us to think more seriously about our privacy – it has forced us to re-prioritise all sorts of long-term deficiencies in Matrix (e.g. dependence on DNS; improving User Interactive authentication; improving logout semantics etc). There's obviously a lot of work to be done here, but hopefully it should all be worth it!


TravisR on GDPR

TravisR has also been thinking about GDPR, and how it relates to his Voyager bot. In his words:

TWIM: I've mostly been working on figuring out how GDPR affects t2bot.io for the last couple weeks. One of the things running on t2bot.io is Voyager - a bot that tries to join rooms it sees mentioned in people's messages, graphing them on https://voyager.t2bot.io. With the increase in talk about GDPR and more bots starting to wander the federation, the recurring topic of whether Voyager should change its approach to finding and listing rooms.

With the current approach, Voyager reads messages and tries to find room aliases to try and join. Individual people can opt-out of this tracking to stop Voyager from reading/parsing their messages (opting back in at a later time, if desired). The room moderators can kick or ban the bot to completely remove their room from the graph, and can invoke a 'soft kick' if they'd like to have their room remain listed, but don't want the bot in the room. Voyager will make sure to only show information for public rooms and will update the graph if the room flips between public and private.

If anyone has feedback on how this approach could be improved (or if it should be left as-is), please come by #voyager:t2bot.io on matrix to start the conversation.

Translations

I was surprised and excited to learn that a Russian translation of the Matrix FAQ has been produced by a group of Russian-lanugage users. ma1uta reported:


There are a several Russian-speaking users spontaneously decided to unite and help Matrix. We created a room where translated FAQ using the embedded etherpad widget. Some of us are here: Magnolia and Fenneko is a Good Girl for example. Anybody can join to us #perevodators:matrix.org and helps. We accept any help.
Preview: https://ma1uta.github.io/index.html


They've provided a PR which I will presently merge (though of course, as I don't speak Russian I will need to trust that it's really a translation of the FAQ!)

Projects and Updates

Matrix Ruby SDK

Ananace reports that work has begun on a Matrix SDK for Ruby 'with a design based heavily on the Python one'. Doing a lot of sysadmin work, Ananace has been working a lot with Ruby, and also wants to get going using the SDK to write bots.

neo

Neo from f0x released Alpha 0.04.


Added two very ux-improving features, local echo and tab completion. User list, eslinter, auto-retrying requests


Take a look at the changelog for more.

matrixstats.org

a13xmt came to use with https://matrixstats.org, a bot-powered room directory


Public catalog for matrix rooms announced: matrixstats.org. The place where you can find a lot of rooms and sort them by ratings or categories. Presented rooms are collected from different homeservers; some of rooms have detailed statistics. The homeservers itself can be explored without the registration. The project is currently in beta stage, so some features may be missing. We would be glad to receive any feedback and ideas for further improvement. Additional info available at https://matrixstats.org/about, related discussions at #matrixstats:matrix.org.


Quaternion

says kitsune:


TWIM: Quaternion 0.0.9.1 is out, with building/packaging fixes; those who use 0.0.9 need not upgrade (https://github.com/QMatrixClient/Quaternion/releases/tag/v0.0.9.1)


Riot/Web

  • New release due monday - whether it's 0.14.3 or 0.15 depends on whether we can make the sticker picker fast enough to launch!
  • Lots of other polish; E2E is now as fast on Firefox as it is on Chrome!

Riot/Mobile

  • Almost all of France has been holiday this week…
  • ...although we've got sticker sending mostly working on iOS & Android anyway!

Synapse

Spec Proposals

Much-needed work has begun to classify and present the spec proposals for the Matrix specification. We've tagged up the all the issues in GitHub, new page will appear on matrix.org at the start of next week if I can just stop preening the generator.

Around the Web (and more)

Another week, another article on the front page of Hacker News. The author is focused more on Riot than Matrix, still it's great knowing how much interest there is in the wild.

Happily, I was at an unrelated event in London earlier in the week, and had my first IRL experience meeting someone who already knew (and then enthused) about the project. Feels good.

Rooms of note

TTFN

Do you have a suggestion for this series? What could we be doing more of? I have a nascent plan to do 'deeper' conversations with people or projects that aren't necessarily in the normal run of things, but are interesting uses of Matrix. Does this sound like something you'd want to read on a Friday afternoon? Drop a line in #twim:matrix.org or ping benpa.

This Week In Matrix – 2018-05-04

2018-05-04 — This Week in Matrix — 

Matrix Ecosystem Updates

Project Updates

Clients

nheko

nheko, Qt desktop client announced release v0.4.0. From their own changlog:

  • Basic member list
  • Basic room settings menu
  • Support for displaying stickers
  • Fuzzy search for rooms
https://github.com/mujx/nheko/releases/tag/v0.4.0 for more information.

mujx - https://github.com/mujx/nheko - #nheko:matrix.org

Fractal

Fractal have released v0.1.28 - couple of new features plus fixes.

Fractal of course have their in-person meeting coming up soon, and are looking forward to GSoCers getting onboard.

https://gitlab.gnome.org/World/fractal - #fractal-gtk:matrix.org

neo

f0x is keeping the pace up on neo. New version (alpha0.03), new website!

Rollup of changes since last week includes

  • settings menu
  • mentions
  • unread counts
  • room invite handling
  • video thumbnails
and a lot more.

f0x - https://github.com/f0x52/neo/ - #neo_client:matrix.org

gomuks

Ever modest, tulir has been tearing through issues and fixes over on gomuks. I'm quite excited to have a matrix-native console client getting up to speed so fast.

tulir - https://github.com/tulir/gomuks - #gomuks:maunium.net

Journal

One of the riot developers, luke has a fun side-project called Journal, this being a blogging platform built on matrix.

Says Luke:

The big news this week being that I'm going to redesign the interface to focus on the personal blog use-case, optimising for easy setup and easy blog post sharing. And hopefully push a 1.0 release that I'd be happy to use as my own personal blog.
Worth noting that the linked project page (Journal) is itself a blog using journal (the url might give you a hint of this!)

luke - https://journal.ldbco.de/#/journal/journal:ldbco.de

Bridges and other projects

synapse-diaspora-auth

Po Shamil reports an update for synapse-diaspora-auth. New documenation on how to integrate with mxisd, plus email syncing from diaspora.

Po Shamil - https://git.fosscommunity.in/necessary129/synapse-diaspora-auth

matrix-appservice-discord

matrix-appservice-discord is now at v0.2.0-rc1.

There are several changes moving this project along, but checking out the change list I can see there were a bunch of contributors to thank, (eeeeeta, Sorunome, TravisR), which is super-cool to see.

Half-Shot - https://github.com/Half-Shot/matrix-appservice-discord

GTAD

This week kitsune has been focused on 'GTAD (Generate Things from API Description)', which is a code generator for C++, taking API description in Swagger/OpenAPI as it's source. Now at version 0.5, apparently GTAD

can generate correct buildable (and runnable) code to convert data structures used in CS API between JSON and C++ - for the entirety of CS API calls. That basically means that libqmatrixclient gains (so far low-level) C++ CS API for all calls in The Spec and will follow updates to it.
This is super-exciting, especially as we are going to see discussion and progress on the spec...

kitsune - https://github.com/KitsuneRal/gtad/commits/master

Riot/Web

  • We shipped 0.14.2 as an incremental release
  • Jitsi by default on the horizon…
  • Trying to work our way through the regressions which keep stacking up
  • Lots of work on improved UTs for Groups and Replies; discussion about flux stuff
  • Next up is E2E verification (at last).

Riot/Mobile

  • Replies
  • Sticker sending
  • Android is now Kotlin enabled!

Synapse

  • Handling abuse of the depth parameter; short-term fix deployed and longer term coming along shortly.
  • This destroyed progress on the algorithmic perf improvements.
  • Half-Shot PRs for negotiating size limits
  • Amber is inbound!

Dendrite

  • We're behind on PRs - sorry Thibaut :(

Matrix.org Ops

  • Ansible stuff is being refactored based on our experiences trying to use it in the wild status.matrix.org is coming soon!

Spec

  • Loads of work happening to build the Spec Proposals website, tracking workflow for all the proposals in flux and putting them into a formal RFC-style process. It should help community participation in the spec process massively whilst we finalise the longer term governance model for Matrix.org
  • Also looking at publishing formal roadmaps for Synapse, Dendrite and Riot (at last!) - we have them internally these days but need to just chuck them up on the web and maintain them.
  • Finally, GDPR work is in full swing.

New(ish) Rooms

This section is scraped manually from #newrooms:matrix.org, though there has not been much activity there this week. Meanwhile, there are a couple of rooms suggested by Creak which deserve some love:

Before we go

New Core team member

Amber Brown of the Twisted project will be joining the Matrix core team in a few weeks. She'll be focusing on Synapse implementation work, and will bring a lot of Python experience with her. Having someone working full time on synapse will increase others bandwidth for homeserver and spec work.

Matrix Live

Matrix Live is now available, where among other things you can see this blog post being written!

This Week In Matrix – 2018-04-27

2018-04-27 — This Week in Matrix — 

Matrix Ecosystem Updates

Big News

GSoC students

Google Summer of Code acceptees were announced, and we're really excited to have FIVE Matrix-related projects to look forward to!

Three of the students will be mentored by matrix.org folk, and two more will work on Fractal under the GNOME org.

Fractal Hackfest 2018

Fractal Hackfest 2018 will take place next month in Strasbourg, hosted by Epitech. They'll be planning a roadmap for the year, and working on their current focus areas.

https://wiki.gnome.org/Hackfests/Fractal2018

Coverage of French Matrix adoption

After the blog post on matrix.org yesterday, lots of attention developed around the news. Take a look at this Hacker News thread with lots of discussion, which has stayed on the front page for nearly 24 hours, and a megathread on Reddit/r/linux: nearly 1000 upvotes and growing.

Project Updates

Clients

libqmatrixclient

kitsune reports a new release of libqmatrixclient, v0.2.1, this is mostly a bugfix release, fully backwards-compatible with v0.2. Check out the release notes for details.

kitsune - https://github.com/QMatrixClient/libqmatrixclient - #qmatrixclient:matrix.org

Quaternion

Staying in QMatrix-land, there is a pre-release of Quaternion available. Take a look at v0.0.9, improvements include "redactions, file downloading, room creation and settings editing, better timeline visualisation and much more"!

kitsune - https://github.com/QMatrixClient/Quaternion - #qmatrixclient:matrix.org

neo

f0x has been beavering away on neo, and has announced that Alpha 0.01 is available now. neo is a webclient in React, it feels really light and fast. I asked f0x about the uptick in work, and he mentioned he got started with React recently, but likes it a lot.

f0x - https://github.com/f0x52/neo/ - #neo_client:matrix.org

Fractal

Fractal released 0.1.27 with many new features and bugfixes. Lot's going on but I'm most excited to see Markdown support land.

https://gitlab.gnome.org/World/fractal - #fractal-gtk:matrix.org

Bots

matrix-trello-bot

Says TravisR: "I've whipped together a simple Trello notification bot for matrix: matrix-trello-bot. Future plans include the ability to create/update/delete cards and more granular control of what is notified about. Currently it acts very similar to how the Github notifications bot works."

TravisR - https://github.com/turt2live/matrix-trello-bot - #trellobot:t2bot.io

Others

Matrix DSL

MTRNord is working on a "matrix DSL", basically a config file language that generates a project Template in multiple languages. The project is just now at the discussion stage, so join #matrix_dsl:matrix.ffslfl.net to check out what's going on. (DSL = Domain Specific Language.)

MTRNord - #matrix_dsl:matrix.ffslfl.net

urllib-requests-adapter

Says Coffee: "urllib-requests-adapter has been updated to work with matrix-python-sdk 0.2.0. urllib-requests-adapter is a lightweight replacement for requests and its dependencies, currently standing at 126 SLOC."

Coffee - https://github.com/Matrixcoffee/urllib-requests-adapter

mxisd

mxisd, the Identity Server from kamax, saw a v1.0.2 release, following the big one-point-zero last week. Changes include de-duplicated directory search results, plus bugfixes.

Max - https://github.com/kamax-io/mxisd

matrix-stfu

Missed this one last week, but matrix-stfu from xwiki is a message filtering tool released recently, it can "mass remove everything which was said by a particular user in a particular room". XWiki use matrix as their internal chat system for the ~30 people at the company.

xwiki - https://github.com/xwiki-labs/matrix-stfu - #xwiki:matrix.xwiki.com

Riot/Web

  • We're committing to 2-weekly releases come what may, to avoid another massive gap like the one between 0.13 and 0.14.
  • RCs will get cut starting from Wednesday; actual release then happens on the Monday having given folks a chance to test the RC on /staging (and to iterate on the RCs).
  • Obviously this is flexible if we need to rush out fixes sooner.
  • On that note, 0.14.2-rc1 was cut on Wednesday! Please test it at riot.im/staging. It's mainly bugfixes but also the full relayering between riot-web and matrix-react-sdk.
  • Dave's working on finally hooking in Jitsi as the default conferencing system
  • t3chguy's been working on Replies, which continue to look awesome
  • Next up: E2E cross-signing (at last!!!!)

Riot/Mobile

  • New releases are out! Mainly preparing for sticker viewing and trying to fix the Android push notification situation. PLEASE TELL US IF YOU ARE STILL HAVING ANDROID PUSH NOTIFICATION PROBLEMS!
  • Lots of review of Android by Benoit - adding in Kotlin support as of today and establishing a formal roadmap for Android work (we'll show the blog post when we have it)
  • Lots of Matrix-for-French-Government stuff.

Synapse

  • Synapse 28.0 was released! A major bump mainly thanks to lots and lots of contributions from the wider community.
  • Massive experimental work on GDPR in progress - doing the thought experiment of pseudonymising MXIDs throughout Matrix on a per-room basis so that it's possible to redact MXIDs in the event of a “right-to-erasure” GDPR event. Rich vdH is leading the work.
  • The good news is that introducing an MXID abstraction layer like this could help us enormously with some of Matrix's longest-term architectural issues - i.e. account migration and portability; improving on PERSPECTIVEs for managing server identity; future support for P2P Matrix; solving the domain name reuse problem; etc.
  • The bad news is that it would obviously be a very significant change to the Matrix spec, although we'd be doing it in such a way which minimises impact to client implementers and keep the CS API looking as similar as possible.
  • We're not sure whether we need to rush this through or not yet; still waiting for final GDPR clarification from lawyers, but it feels like this might be a good opportunity to force us to finally tackle some of these harder problems.
  • Meanwhile, Erik's Delta State Resolution algorithm work is continuing well; we're hoping to finish & merge it asap in order to get back headroom on the server.
  • Thankfully the matrix.org synapse itself has been relatively stable this week, other than being completely overloaded causing Freenode to be almost unusable.
  • We've started using Ansible in production, although the playbooks need some iteration before we're fully happy to announce them & recommend folks use them as an official way of running Synapse in production.

try-matrix-now

There is a update out on try-matrix-now, matrix.org's central listing of projects. Try filtering and see whether benpa mangled the metadata for your project. Submit any changes as markdown PRs on the repo.

Spec

benpa is currently working on a Proposals page for the Spec to properly stack spec proposal status, at last!

Articles around the web

Riot: A Distributed Way of Having IRC and VOIP Client and Home Server

uhoreg pointed to some charming coverage over on https://itsfoss.com: Riot: A Distributed Way of Having IRC and VOIP Client and Home Server, by Shirish. The article covers some details about riot-web and the open source ethos of Matrix, but my favourite quote by far:


"Without Matrix, Riot would be like a body without a soul."


Shirish - https://itsfoss.com/riot-desktop/

Service notifs with Matrix

Half-Shot shared an article he wrote, Service notifs with Matrix, about using Matrix and Riot to deliver automated notifications to different types of end-user at his company.

Half-Shot - https://dev.to/halfshot/service-notifs-with-matrix-3fb5

New Rooms roundup

  • #matrix_dsl:matrix.ffslfl.net As mentioned above, MTRNord is looking at creating a DSL for matrix. In his words: "A room to discuss about making a Matrix DSL to allow non coders to write simple as and bots. I would love to see some people discussing about syntax with me as this is my very first DSL and very first time trying JetBrains MSP. Anyone with Ideas what it should allow to do and how to have the syntax a welcome to join (and people who want to follow of course too)"
  • #trellobot:t2bot.io (from above) TravisR: "a discussion/developer room for Matrix Trello Bot (https://github.com/turt2live/matrix-trello-bot). This is a bot that notifies rooms of changes to tracked Trello boards, similar to how the Github bot works. Future enhancements include being able to create, update, and delete cards from within Matrix."

Lastly...

Matrix Live - Season 2, Episode 17: Apr 27th is now available!

This Week in Matrix is printed fresh every week! There will be another post before you know it, so if you'd like to be included join us in #twim:matrix.org and let us know what you've been working on. See you next week!

This Week In Matrix - 2018-04-20

2018-04-20 — This Week in Matrix — 

Matrix Ecosystem Updates

Drupal matrix_api module

Updated the Drupal matrix_api module to pass the auth token as a header instead of as a GET param... the GET param was leaking the token if there was an http exception thrown.

(John) - https://cgit.drupalcode.org/matrix_api

mxisd

v1.0.0 has been released and is now stable, making it the first community Identity server and first open federation one.

(Max) - https://github.com/kamax-io/mxisd

nheko

0.3.x of nheko was released! There is progress towards e2e encryption in mujx/mtxclient. Once this encryption is working there, it can eventually be included in nheko.

(mujx) - https://github.com/mujx/nheko

Fractal

Fractal 0.1.26 was released this week, which includes an animated scroll to bottom animation, fixed MacOS compilation, and bug fixes. Since then markdown support and many other commits have been spotted...

https://gitlab.gnome.org/World/fractal/

libqmatrixclient

kitsune released 0.2 of libqmatrixclient a couple of weeks ago, which he says is "the first one more or less functional and stable"!

Highlights include redactions support, files transfer (both ways), rooms creation, account data (tags, direct chat flags). Also there are a few things making libqmatrixclient clients stand out compared to, e.g., Riot: one can set per-room names/avatars, and also the best estimate for the number of unread messages can be taken from the library and shown in the client application."

(kitsune) - https://github.com/QMatrixClient/libqmatrixclient

matrix-monitor-bot

#monitorbot:t2bot.io is a bot to measure latency between homeservers (as perceived by users).

It's able to report metrics to Prometheus and has it's own built-in dashboard (see https://lag.t2bot.io/ for some horrendous times). In the coming weeks it'll become more production-ready, however in the meantime if people are looking to help iron out the scalability issues, please run an instance on your homeserver.

(TravisR) - https://github.com/turt2live/matrix-monitor-bot

uMatriks

thrrgilag wrote on behalf of uMatriks, to say that v0.10 was published to the openstore this last week which now includes unread counts for rooms. Those not already familiar, uMatriks is a native matrix client being developed for Ubuntu Touch.

https://github.com/uMatriks/uMatriks

Construct

There looks to be lots of activity on Construct (jzk's fork of the charybdis ircd which adds in a C++ homeserver implementation) based on the commit log at https://github.com/jevolk/charybdis. jzk's work there has been highlighting some of synapse's nastier problems (e.g. thundering presence bugs), and it looks like the federation support is progressing steadily, including handling EDUs (presence & typing data). (jzk) - https://github.com/jevolk/charybdis

matrix-puppet-maxs

tyler shared his "horrifying" project, for people that want to use Matrix to send an SMS via an XMPP bridge to their Android phone, in order to provide SMS and call notifications inside Riot.

(tyler) - https://github.com/tfreedman/matrix-puppet-maxs

matrix-register-bot

krombel built a bot to have a two step registration to synapse, check it out:

(krombel) - https://github.com/krombel/matrix-register-bot

picard

Cadair reported that he and SolarDrew have written a bot to bridge a whole slack team into a matrix community. It basically handles all the room admin for you including:

  • Invite the slack bot to the channel
  • Creating matrix rooms
  • Setting users as admins
  • Setting room name and room avatar and as publically joinable
  • Setting up the link with the slack AS
  • Creating and adding rooms to the community
  • Inviting all members of the communtiy to the rooms
It does these things on a 1 min cron, to pick up new channels as they are created on the slack side.

(Cadair) - https://github.com/SolarDrew/skill-picard

opsdroid connector

Cadair also mentioned that picard uses the opsdroid connector for matrix, also written by himself and SolarDrew, and has had recent updates.

(Cadair) - https://github.com/opsdroid/connector-matrix

matrix-python-sdk

Release v0.2.0 of the python sdk. Highlights from this release are a workaround for https://github.com/matrix-org/synapse/issues/3054 and use of connection pooling via a requests session.

(&Adam) - https://github.com/matrix-org/matrix-python-sdk

matrix-twitch-bridge

MTRNord is at the early stages of working on a twitch bridge for Matrix, written in golang.

(MTRNord) - https://github.com/Nordgedanken/matrix-twitch-bridge

IdleRPG

remaeus wrote in to say "we (+rpg:verse.im) just launched an initial build of #idlerpg:verse.im (now also available at #idlerpg:matrix.org) — an automated RPG that rewards you for staying online (via the presence API). It's an initial test case for prototyping out a bot framework called "doorman" with multi-service support, but focused on Matrix as we are using it as a "backbone" for our p2p app framework."

(remaeus) - https://github.com/FabricLabs/doorman

URI protocol scheme

kitsune started working on a design proposal for the Matrix URI scheme, with the ultimate goal to have the scheme passed through IANA so that we're no worse than IPFS and others. The document is here (alpha quality but comments are already welcome): https://docs.google.com/document/d/18A3ZRgGR-GLlPXF_VIHxywWiX1vpMvNfAU6JCnNMVuQ/edit

There is also a spec proposal room: #uri-scheme-proposal:matrix.org.

(kitsune)

Riot/Web

  • The Great Relayering landed - almost all of Riot/Web's code is now gathered together in one sensible place (matrix-react-sdk). No more duplicate PRs or CSS & JS living in different repos!
  • Folks with open PRs against the riot-web repository will need to reopen them against matrix-react-sdk (or more likely, merge them into their existing equivalents on matrix-react-sdk)
  • Michael (t3chguy's) Replies work has almost landed and is looking fantastic!
  • Next up: improving test coverage slightly; fixing regressions in 0.14; and a few other minor bits and bobs before we land 0.15.

Riot/Mobile

  • New releases on the horizon for both iOS & Android
  • Welcomed Benoit to the Android team, acting as lead android dev!
  • Finalising all new UX for configuring push notification permissions…
  • Final touches for Sticker viewing (including animated stickers!)
  • Fix embarrasing crash on iOS on certain shapes of Riot/Web URLs...
  • Supporting French Government Matrix activity

Synapse

  • Operational firefighting continues: stopping malformed events from impacting federation; investigating thundering herds of presence EDUs; trying to keep Freenode joins from lagging;
  • Meanwhile, Erik has been working hard on the problem of Incremental State Resolution (the big algorithmic win which could massively improve HS performance, especially for Synapse); this is looking promising and has ended up taking the form of a formal mathematical proof that the proposed algorithm works: https://matrix.org/_matrix/media/v1/download/jki.re/hSmkLkFGVUnrXjtYcjsCUsyS (aka https://github.com/matrix-org/synapse/pull/3122) is where that's happening! Warning: contains maths.
  • ...and also wrote a Rust testjig for state resolution to help reason about it: https://github.com/erikjohnston/rust-matrix-state
  • Official Ansible playbook repository dev is progressing on the develop branch at https://github.com/matrix-org/matrix-ansible thanks to massive work from Michael K. We'll blog properly about this when ready for use in earnest.
  • Dave has been doing an interesting experiment in syncing user profile data from HSes into ISes (useful for folks running a private federation with its own IS who want to use the IS as a global user directory); almost complete - we'll see how this goes.
  • GDPR work is in progress. We're seeing how far we can push the envelope on improving privacy, including a very interesting thought experiment on pseudonyimsing MXIDs to provide 'perfect' right-to-erasure. vdH is on the case. Warning: this may well require a major federation protocol bump if we go through with it.
  • More Python3 port PRs are landing from NotAFile - thanks! They're getting slightly lost behind everything above.

Dendrite

  • Still stuck behind Synapse work.
  • Barring disasters we have at least 2 new folks starting fulltime in the core team (both synapse & dendrite) to help backend progress at the end of May however!
  • Lots of PRs coming in from APWhitehat though - thanks!!

Spec

  • uhoreg has been looking at the .well-known URI proposal again
  • Spec work on the core team is currently stuck behind Riot/Web and Synapse work, sadly, on the basis that burning implementation problems are more visible and harming to the project than burning spec problems.

Matrix in the News

Tom's Hardware provided a great article on about Matrix in the French Government.

Next INpact produced two articles, one from last week introducing a project from the French government to use an open messaging platform, then a follow up provided an extremely thorough story covering Riot & Matrix following the announcement of the French Government encrypted messaging project. (Article is in French, but will Google Translate nicely!)

Huge thank you to nouts who produced a great intro to Riot and Matrix! Check it out! (Note that is also in French.)

 

New Rooms roundup

And Finally...

Check out Matrix Live, now available at https://youtu.be/EstVaVUWkdw

Thanks for reading the very first This Week in Matrix! There will be another post next week, so if you'd like to be included join us in #twim:matrix.org. See you next week!