[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
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!
The Official Loading Artist sticker pack got added to Dimension 🎉
It also got added to Modular (aka Scalar), the default integration manager for Riot :)
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
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
POST /_matrix/client/r0/registerare also available for testing registration and login flow.
POST /_matrix/client/r0/createRoomis also available with the
TEST_TOKENauth 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
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!
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/gomatrixclient
P.s. It is a library for writing clients in Golang. But it also provides useful APIs for basic functions, e.g. getting avatars.
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…)
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
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!
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.