This Week in Matrix

339 posts tagged with "This Week in Matrix" (See all Category)

Atom Feed

This Week in Matrix 2019-03-29

29.03.2019 00:00 — This Week in Matrix Ben Parsons

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:

Attention Riot Web Admins! We reset Scalar tokens to address a potential security vuln. with some clients - if you run your own Riot instance please upgrade to at least v1.0.4 to keep using integrations (widgets, sticker picker, any bots and bridges configured through Scalar).

— Riot.im (@RiotChat) March 27, 2019

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

22.03.2019 00:00 — This Week in Matrix Ben Parsons

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:

Yesterday on @BBCRadio4 I talked about the problems of centralisation, how to regulate big tech, personal data stores and @redecentralize! You can listen online here: https://t.co/xGHK812lYa with #Web30 section starting 1:50 mins in ? (I'm from 7mins ish) #redecentralize pic.twitter.com/m0dazBH7Dk

— Irina (Ira) Bolychevsky (@shevski) March 22, 2019

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

15.03.2019 00:00 — This Week in Matrix Ben Parsons

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

08.03.2019 00:00 — This Week in Matrix Ben Parsons

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

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

01.03.2019 00:00 — This Week in Matrix Neil Johnson

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 replaceable 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 delimiters 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

22.02.2019 00:00 — This Week in Matrix Ben Parsons

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?

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 received 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 announcement 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

16.02.2019 00:00 — This Week in Matrix Ben Parsons

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:

thank you @matrixdotorg @RiotChat - with the new update the office is full of people yelling names of emoji at each other

— Russell Currey (@russelldotcc) February 15, 2019

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 Android 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 enhancements. 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.

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 creation, 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

08.02.2019 00:00 — This Week in Matrix Ben Parsons

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!

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 ports@ 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

01.02.2019 00:00 — This Week in Matrix Ben Parsons

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.

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

update on @gnome @matrixdotorg client for #PureOS: "I am pleased to announce that over the next week I will be working to make Fractal's UI adaptive for the Librem 5's launch. This contract began last week, and I already have some results to show off." https://t.co/iX47u1Bdb1 pic.twitter.com/Hnr7ZVpYd1


— Purism (@Puri_sm) January 30, 2019

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

25.01.2019 00:00 — This Week in Matrix Ben Parsons

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 availability 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-bot-sdk

TravisR reports that:

the matrix-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-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!