~bitfehler/vomit-m2sync

Emphasize the safety issues some more
Prepare for 1.0.0-alpha.1 release
Clean up error handling a bit
Update dependencies
Drop cog.toml

I am not really satisfied with the conventional commits approach.
m2sync: force quit on second interrupt
vomit-sync: make chrono a dev-dependency
chore(version): v0.11.0
feat: vsync becomes m2sync

Main new features:

* Local mail is stored in m2dir format (https://sr.ht/~bitfehler/m2dir)
* The state cache is now a sqlite DB (instant persistent updates)
* SIGINT is caught and only interrupts at pre-defined points
feat: add option to disable TLS
chore: update dependencies
docs: clarify threads usage
feat: create local maildir if it does not exist
test: fix integration test
chore: update dependencies
refactor: split state cache storage for subdirs

Currently, the subdir state, which is only present/needed in the root
directory, is part of the regular state cache. It is, however, quite
special and has a very different access pattern, and special
requirements on when changes should be made/persisted.

To facilitate state handling, split out this special root state into its
own file, `.vmtdirstate`, whic will only be present in the maildir root.
To avoid concurrency issues, the file will only be updated by a special
thread that collects results from the worker threads.

Split out this way, the new synchronization with the worker threads
ensures that the directory state is always updated at the right time,
regardless of updates to the regular state in the root directory.
Previously, updates to the directories were sometimes written
prematurely (due to changes in the regular state), which could then lead
to data loss if the current operation errored out or was aborted.

The change is sort of backwards compatible. Vsync will start adding
subdirectories to the new root state file as they get processed (i.e.
there are actual changes to process). However, the absence of a
subdirectory from the file only means the remote mailbox won't get
deleted if the local one does, so there is no hurry to add them. Once
the inbox is being processed, the regular state will be saved without
the `subdirs` entry.
Next
Do not follow this link