Skip to content

Commit 94e6396

Browse files
committed
Vdirsyncer-2.0.0-alpha0 release notes
1 parent 27d76c0 commit 94e6396

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed

assets/main.scss

+8
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ h1,
5252
h2,
5353
h3,
5454
h4,
55+
.footnotes,
56+
.highlight,
5557
.blog-post {
5658
max-width: 760px;
5759
margin-left: auto;
@@ -89,3 +91,9 @@ article {
8991
color: gray;
9092
margin-top: -1rem;
9193
}
94+
95+
.highlight {
96+
pre {
97+
padding: 0.5rem;
98+
}
99+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
layout: post
3+
title: Vdirsyncer 2.0.0-alpha0 release notes
4+
date: 2024-05-22
5+
categories: blog
6+
params:
7+
author: WhyNotHugo
8+
---
9+
10+
I've just tagged a first alpha version of the vdirsyncer rewrite. This is an
11+
EXPERIMENTAL VERSION, and has several missing features. It likely has bugs too,
12+
so I appreciate anyone willing to test this and report bugs.
13+
14+
Keep in mind that as an early version, this MAY have bugs that result in data
15+
loss. Ensure that you keep frequent backups. If you are unwilling to help report
16+
bugs, please wait for a stable release.
17+
18+
Compared to the previous series, there are a few exciting changes.
19+
20+
## Continuing on errors
21+
22+
When synchronising a collection, if a single items fails, synchronisation will
23+
continue and other items will be processed properly. This has an impact when a
24+
server rejects a single calendar event, but I want the other 500 events in my
25+
calendar to synchronise properly.
26+
27+
## Daemon
28+
29+
A new `daemon` command has been implemented. This keeps vdirsyncer running and
30+
performing new synchronisations every five minutes[^minutes]. In future
31+
releases, I intend to implement storage monitoring, so instead of having a fixed
32+
timeout, synchronisations will be triggered only when a storage reports that
33+
changes have occurred.
34+
35+
[^minutes]: This period is actually configurable.
36+
37+
I have been running `vdirsyncer daemon` in the background for the last few weeks
38+
and am quite happy with the results.
39+
40+
## Collection creation and deletion
41+
42+
When a collection is created or deleted on one side, this change will
43+
immediately replicate to the other side (assuming that the affected collections
44+
match the current configuration).
45+
46+
This means that I can create a new calendar on one device, and it automatically
47+
shows up on another.
48+
49+
If this behaviour is problematic for some use case, please do reach out so we
50+
can find a solution.
51+
52+
## No more `discover`
53+
54+
The `discover` command is gone and no longer necessary; discovery of collections
55+
is handled automatically.
56+
57+
## Conflict resolution
58+
59+
Conflict resolution is not executed during normal synchronisations. This is
60+
mostly because there commands are usually interactive and would interrupt the
61+
automated flow or regular synchronisations.
62+
63+
Use `vdirsyncer resolve-conflicts` to manually resolve any conflicts.
64+
65+
## Testing
66+
67+
Testers are welcome. Using a custom CA certificate and specifying TLS
68+
certificate fingerprints has had minimal testing, so I would appreciate
69+
real-world testing of this.
70+
71+
When migrating from the previous vdirsyncer implementation, ensure that your
72+
collections are already in sync. A new, separate status file is used, so any
73+
changes on either side will result in conflicts.
74+
75+
It is not trivial to migrate back to the previous version either: you will have
76+
to ensure that both sides of your collection are in sync before doing so too.
77+
78+
# Installation
79+
80+
The current version needs to be built from source. The result is a single
81+
binary, that can be copied onto other hosts without any additional support files
82+
(note that binaries will only work across hosts of the same distribution and CPU
83+
architecture).
84+
85+
```sh
86+
curl -LO https://git.sr.ht/~whynothugo/vdirsyncer-rs/archive/vdirsyncer/v2.0.0-alpha0.tar.gz
87+
tar xf v2.0.0-alpha0.tar.gz
88+
cd vdirsyncer-rs-vdirsyncer/v2.0.0-alpha0
89+
cargo build --release -p vdirsyncer
90+
cp target/release/vdirsyncer /usr/local/bin/
91+
```
92+
93+
Replace `/usr/local/bin/` with any other directory in `$PATH`.
94+
95+
Compilation will take a long time (several minutes, at least). I hope to improve
96+
this in future releases, although Rust doesn't make this easy. Fortunately, this
97+
cost pays off with vdirsyncer itself being quite lightweight at runtime.
98+
99+
# Feedback
100+
101+
See the [migration guide] for details on how to update a configuration file.
102+
There is currently no documentation on setting up a new configuration from
103+
scratch (this will be addressed at some point on a later release).
104+
105+
Please [join us on IRC][contact] if you have feedback or questions.
106+
107+
Issues are tracked in [a separate issue tracker][issues], to avoid any confusion
108+
with existing issues from the previous implementation.
109+
110+
[contact]: /contact/
111+
[issues]: https://todo.sr.ht/~whynothugo/vdirsyncer-rs

0 commit comments

Comments
 (0)