When re-using the name vdirsyncer
, versioning for this new project was a bit
messy. Now that this new project has its own name, pimsync
, versioning can
start from zero. I have published a new tag, v0.1.0, which can be used be
early adopters. I also submitted a new package to the Alpine Linux
testing repositories.
Packages from other distributions are welcome to start publishing packages. Please report any issues, including lack of documentation. The README now explains requirements, compilation and installation, something obvious that somehow slipped through the cracks until this point.
I have updated libdav
to rely on the hyper
/tower
middleware stack, which
is currently the standard in the Rust ecosystem. This allows consumers of this
library to alter requests and responses in any way that they need, including
custom authentication, setting a User-Agent header (or any other header),
domain-specific logging, etc. Version 0.6.1 includes further documentation and
examples on this.
Pimsync itself leverages the above feature, and now properly sets a User-Agent header. This can also be customised in the configuration file. The pimsync.conf(5) man page explains this in detail.
As you might notice from the above link, manual pages are now published in HTML form, making them convenient to read online. I’ve created a small and simple landing website for pimsync too, mostly as an index of existing material.
Another small change is that pimsync
will now embed the proper version,
regardless of whether it is build from tarballs or a git checkout. I wrote a
separate article with details on this process.
The storage for WebCal calendars is now named webcal
, which is less ambiguous
than http
(CalDAV also uses HTTP). The documentation and source code was
inconsistent everywhere. The term webcal
is now used consistently in all
places.
Current blockers for a v1.0.0 release
- Publish man pages as HTML online
- Publish a landing index.html page
- Implement protections if collections have been reconfigured.
- Flush stale data for collections that are no longer synced.
- Move the
interval
directive inside individual storage definitions. - Implement conflict resolution
from a
andfrom b
.