The vdirsyncer rewrite on which I have been working these last months will be named pimsync, not vdirsyncer v2.
The idea of a different name originally came to mind due to difficulty pronouncing the original name, and having to spell it out every time I spoke about it in person.
But this wasn’t the deciding factor for a new name. The main issue with naming
it vdirsyncer
is that is makes references everywhere confusing. Documentation,
issues, tutorials and blog posts that refer to vdirsyncer become ambiguous,
since it’s not clear which version they’re talking about.
With the new edition having a different feature set and different configuration, it just makes sense to treat it as a different project – even if a spiritual successor. The initial release of pimsync will be missing some features in vdirsyncer, so some folks will also continue to use the previous version for the time being. Distributions should likewise be able to ship both packages during a transition period, and end users will be able to co-install both programs until they’ve migrated to the new one.
The documentation for both will remain online. This separate names, it will be clear which documentation refers to which project.
Despite having a new name, the main goal and general implementation design remains the same. Thanks @untitaker for writing the original implementation!
The name pimsync comes from the PIM acronym, which stands for Personal information manager. This term describes tools that manage personal information, including address books and calendars. It is easier to pronounce at loud and to explain verbally.
Documentation
Writing the documentation was a lot more pleasant and fulfilling that I expected. I admit that I overestimated the effort required for this.
At the moment, the following manual pages are available:
- pimsync(1) - general command usage
- pimsync.conf(5) - pimsync configuration file
- pimsync-migration(7) - migration guide from vdirsyncer
All reference documentation shall be published as manual pages. These same pages are also rendered as HTML pages and published into a proper website. For the moment, the HTML pages are published at a temporary mirror.
Tutorials and how-tos will likely exist in the pimutils website, and contributions are most welcome.
Explanations on why things are designed the way they are will continue being published in these status updates. There’s also a lot of internal documentation in the library documentations for the different components of pimsync.
The documentation is by no means complete. There’s likely plenty of room for improvement, but it should be a good starting point to understand how to configure and use pimsync. I expect to continue improving it based on user feedback and frequent questions. If anything is not clear, that is an issue that needs to be fixed.
Configuration overhaul
I discussed configuration formats a bit last year. At the time, I went with TOML, mostly given that it seemed the one with least difference from the previous implementation.
While TOML is a good serialisation format, it is not a very good configuration format for humans to write. To make matters worse, the code that parsed the TOML configuration was bloated and pointlessly complex. I was happy to drop all of it.
I don’t want to ship a stable release on pimsync with TOML and later regret that and impose yet another change on end users. I intend to avoid breaking changes as much as possible after the stable release has been done.
The new configuration format is much simpler and friendlier for humans to understand and write. The syntax is technically the scfg format, but documentation doesn’t expect familiarity or understanding of the underlying format. Instead, the documentation focuses on explaining how to write the configuration file itself.
Unix socket support
The implementation for using CalDav and CardDav over a Unix socket has been completed. See Unix domain socket support for vdirsyncer for more background on this.
Versioning discontinuity
Previous beta releases were in the order of v2.0.0-beta1, given that this was the second iteration of vdirsyncer. With the rename, this doesn’t make sense: the next stable release will be v1.0.0 of pimsync.
Given that no distribution has packaged any of the beta versions, this should not be an issue.