Status update, March 2023

Here we go again. This time, I took these two day. Not like anything is more finished because of that, but hey…

There is a lot to unpack this month. Let’s start with the bigger fish.

names.sr.ht

Long overdue, and while the timing is spot on, it’s not (yet?) related to the Gandi take-over. To recap: we want to provide the community with a domain registrar, SourceHut style: simple interface, good API, and of course no intention to sell the business anywhere. To do this, we will build something around the enom reseller API. We will however try do this in a way that will allow us to switch to another provider, should the need arise.

Unfortunately, the enom API is neither simple, nor - and I cannot phrase this any other way - good. But it is of course our mission to shield you from that. I started go-enom, an enom API client. It is forked from go-enom-client, but already heavily modified (and heavy work-in-progess).

You can totally already buy a domain name with it, but the devil is in the details. And, to be fair, much of that is not enom’s fault. I’ll provide an example. Their documentation states:

Some TLDs, such as .de, requires you to specify name servers. The Registry will automatically delete the domain name if no name servers are specified.

That’s a situation you’d obviously like to avoid! But for this, you have to figure out if the TLD in question has this requirement, and also what the minimum and maximum permissible number of nameservers for that TLD are.

Orders can be successful, but queued. They can also be “delayed”, but their documentation does not state whether that constitutes a success or not. So many little things like this. Fun…

I’ve also started a stub GraphQL schema for names.sr.ht. Some discussion on that has already happened on IRC (e.g. that we do want to add me()-wrapping, so that sharing access to domain names with other users is potentially possible in the future (but not planned for now).

If you want to get involved, you can do so on names.sr.ht-discuss, names.sr.ht-dev, or on IRC. This is a sr.ht project, so discussing on #sr.ht is fine.

NPotM: anemos

I think I haven’t had an explicit NPotM for a while, so here goes: it’s anemos. It’s a complex subject matter, and I could write about it (and probably will) until my fingers fall off, so please click the link for context. But I think I finally found a good subset of all the stuff I have in my head (and some on my laptop) to start a proper project with.

I think the most important task for now is more documentation, so if you read the project page and it does not make sense to you, please do drop me a mail. I’d love to understand how other’s perceive it, as this is stuff I’ve spent years working with in an environment where I rarely had to explain the basic assumptions.

Anemos also builds on makeimg (though you don’t have to use it). Makeimg also saw a new release and now officially supports building Debian images with debootstrap. That could probably be extended to Ubuntu, but I honestly don’t think you should be using Ubuntu for anything serious, so I haven’t bothered yet.

The forge

This month, the new invoice PDF generation endpoint went live. Invoices are now generated by Go code and we could drop the dependency on Python’s weasyprint! I am also confident that another major Python package will be dropped by next month - sit tight!

In events related to our new EU infrastructure, I tried to submit an Alpine Linux package for the Prometheus smartctl exporter. Unfortunately, the seemingly simple task to specify the license in the APKBUILD led to this issue… always mind the LICENSE!

Vomit

Not much work happened on Vomit, but there is an interesting development. The author of himalaya reached out to me. Turns out that himalaya has been split up into a CLI and a library, with the latter having a spirit similar to vomit. I’ll spend some time taking a closer at it, to see if it makes sense to join forces.

And that’s all for this month! Thanks for reading, and as always any feedback is welcome in my public inbox or find me in the #sr.ht.watercooler IRC channel!