‹ back home

Status update, May 2024

2024-05-28 #status-update #vdirsyncer

This has been a slow month. I took a short vacation the last days of April, and as soon as I got back had some health issues which got in the way of me doing anything productive or fun.

vdirsyncer alpha release

I have finally tagged an alpha release of vdirsyncer 2. This version is stable enough that I’ve been using it for over a month now no issues. I generally keep vdirsyncer daemon running in background my calendars & contacts simply synchronise across devices continuously.

While some features are missing, none of the ones that I use are missing, so it might be suitable for you as well. I’d appreciate feedback from testers, but please do make a full backups of your data just in case!

In hindsight, the code quality is much better than what I’d usually call alpha or beta quality, but I tagged it as alpha as an indicator that user-facing aspects of program may well change before the final release (in fact, some command line arguments have already changed since then).

Caveats on daemon mode

For now, the daemon mode simply synchronises at a given interval. I intend to work on implementing storage monitoring in future, so as to trigger a synchronisation only when a storage indicates that an item has changed. The “fixed interval” approach is only a temporarily solution until storage monitoring is fully ironed out.


ab-tidy is a tiny tool to tidy up an address book. It operates on a directory where each contact is an individual vcard file (e.g.: a “vdir”) and renames each file to match the name of the contact inside of it.

After running it, the directory is easy to browse with a file manager, terminal, or even ls.

I wrote this in Hare in one afternoon, and I have to say that writing Hare has been a pleasant (and fun) experience so far. The standard library provides abstractions right on top of the primitives that the operating system offers. The standard library is also readable and approachable code, even for a Hare newbie like myself. The layer at which the it provides abstractions are not too far from C itself, but the error handling is lovely (it uses tagged unions much like Rust, Zig and other recent languages).

This tool also helped me find another bug in vdirsyncer: when a file is renamed locally, the status database isn’t updated properly. As a result, the file get read from both storages each time a synchronisation occurs. The end result is the exact same, but it adds unnecessary network traffic on each run.

darkman v2.0.0

Another release that has been delayed more than necessary.

The main breaking change is that geoclue is no longer used by default. Geoclue automatically communicates external services to determine the current location by default, so I want users to explicitly opt into it to ensure that here is clear consent of what is going on. Geoclue also requires some manual configuration to work properly on distributions, so for many use cases, just putting latitude and longitude manually into the configuration file is good enough.

See the changelog for a full list of all changes.

Have comments or want to discuss this topic?
Send an email to ~whynothugo/public-inbox@lists.sr.ht (mailing list etiquette)

— § —