Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider moving state to $XDG_STATE_HOME as opposed to $XDG_CACHE_HOME #5

Open
shymega opened this issue Sep 11, 2024 · 2 comments
Open

Comments

@shymega
Copy link

shymega commented Sep 11, 2024

To follow-up from our Matrix chat:

Currently, neverest stores state/locks in two places:
$XDG_CACHE_HOME/pimalaya and $XDG_RUNTIME_DIR/pimalaya.

The former is the one I'd like to see changed to $XDG_STATE_HOME/pimalaya, as
storing in $XDG_CACHE_HOME/pimalaya runs the risk of accidental deletion of
the state files.

The latter isn't as much of an issue.

We could, maybe in the future, store state in the IMAP/Maildir backends as well.

@codethief
Copy link

In how far is it safe vs. not safe to delete $XDG_CACHE_HOME/pimalaya? Could anything go wrong next time I run neverest synchronize? If yes, that folder should definitely be considered state.

@soywod
Copy link
Member

soywod commented Sep 20, 2024

In how far is it safe vs. not safe to delete $XDG_CACHE_HOME/pimalaya? Could anything go wrong next time I run neverest synchronize? If yes, that folder should definitely be considered state.

The scariest scenario is when you delete your data, the root-dir, without deleting the cache. It may consider that all emails were removed and needs to be removed remotely.

If you delete the cache, Neverest will not be able to know if sth has been deleted right side or added left side. For now it comes with safe defaults: it will always take the path that does not delete data. Worst case you just get back emails you previously deleted, or get duplicates (same email in trash and inbox).

I believe cache is not crucial. It just helps the sync to take the right decision. Hence my initial choice behind the cache directory. That said, the state directory also makes sense, and may be a safer default. So let's do it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

3 participants