January Status Update

Hey everyone, it's another one of those Tuesday newsletters, which means I'm either a few days late (since I didn't write one last week), or a few days early, depending on how you want to look at it. I think I'm early, because I was going to post this on Thursday, but I was just too excited to wait.

What's Happening

Here's what's been happening, and what's going to happen. These are the things that have been on my mind when I sit down to work on Telodendria:

  • Client Authentication: I'm proud to report that the client authentication part of the Matrix specification is well on its way to being completed in the near future. I did some work yesterday and got the user login logic in place, so now clients can complete the registration flow at /_matrix/client/v3/register, and they should also be able to log in and get access tokens using /_matrix/client/v3/login. I was able to sign up for an account with Element, and then log in with it, although Element just hangs after logging in because of course there's no sync endpoints or anything yet. Still, kind of neat. The next thing to do is implement the refresh token and logout endpoints.
  • Non-JSON Endpoints: There are a few scenarios in which an endpoint may not return JSON, such as the endpoints for downloading files from the content repository. Unfortunately, the way things are currently set up, endpoints can only return JSON objects. So I will have to refactor the way routes are handled to allow for these non-JSON endpoints. This will have the added benefit of allowing me to add a static home page (resembling Synapse's "it works!" page), as well as implement a fallback login HTML page as described by the specification.
  • Documentation: At some point I really need to work on cleaning up the docs, because they are a bit out of date now. In the future, I'm going to try a little harder to not get so out of control. I'd like to keep the documentation in sync with the code as much as possible.
  • v0.2.0 Release: I know I may have implied last time that v0.2.0 was right around the corner, but I'd like to finish up some of the aforementioned tasks before I cut a new release, and that's going to take a little time, so I'm delaying the release a little bit. Not because things are going slow, but because they're going fast and I want to squeeze as much into it as I can! Check out the TODO.txt file for exactly what I have left to get done. It may be a few months before we see another release. But that's okay, because I've said from the beginning that even if development is fast-paced, I don't want the release cadence to be that fast.

Contributing

I just want to say thank you to @allonsenfantsdelapatrie:devhonk.tk for submitting patches and reporting issues at an impressive rate over the last few weeks. I really appreciate the work that's been getting done as a result. We've caught quite a few of bugs, addressed some security concerns, and implemented a number of features related to client authentication. I also spent some time brainstorming how Telodendria's database schema is going to work, thanks entirely to an early prototype patch that was submitted a few weeks ago.

As always, anyone is welcome and encouraged to contribute. Feel free to chat with me in #telodendria-general:bancino.net, or report an issue to #telodendria-issues:bancino.net. Right now, the following areas need help:

  • Client Authentication: The existing code for client authentication should probably be tested a bit more. I'd encourage everyone following this project to spin up Telodendria and give it a whirl with their favorite Matrix client and see how creating an account and logging in works. Additionally, there's more work to be done regarding refreshing access tokens, and logging users out.
  • Documentation: I could always use help with documentation! There's lots to write, and I'm not really looking forward to writing it, so if anyone wants their name in some man pages, feel free to hop in here.
  • Integration Testing: I'd like to eventually test Telodendria using SyTest and Complement, but I've been too lazy to get them set up properly. If you have any experience with these testing suites, you're definitely welcome to try to get Telodendria running in them and submitting patches for any necessary changes.
  • Donations: As always, if you don't want to write code or documentation, but want to help out, you can always donate using the links on the project website (linked in this room's topic).

Fun fact: Running grep -R TODO src/ in Telodendria's project directory will generate a list of TODO items that you may be interested in. Whenever there's further work to be done on the code, we add a comment with the word TODO in it. Do also be sure to check out the TODO.txt, which contains items that haven't even been coded up yet.

That's All

That's all for this week!

Next Post