Introduce stateVersion concept

With upcoming changes to the dovecot home and maildirectories we need to
introduce a way to nudge users to inform themselves about manual
migration steps they might need to carry out.

The idea here is to allow us to safely make breaking changes and notify
the user of required migration steps at eval time, so they can make the
necessary changes in time.
This commit is contained in:
Martin Weinelt 2025-05-22 02:45:55 +02:00
parent f7a221bc69
commit 792225e256
No known key found for this signature in database
GPG key ID: 87C1E9888F856759
9 changed files with 100 additions and 4 deletions

22
docs/migrations.rst Normal file
View file

@ -0,0 +1,22 @@
Migrations
==========
With mail server configuration best practices changing over time we might need
to make changes that require you to complete manual migration steps before you
can deploy a new version of NixOS mailserver.
The initial `mailserver.stateVersion` value should be copied from the setup
guide that you used to initially set up your mail server. If in doubt you can
always initialize it at `1` and walk through all assertions, that might apply
to your setup.
NixOS 25.11
-----------
This option was introduced in the NixOS 25.11 release cycle, in which case you
can safely initialize its value at `1`.
:: code-block: nix
mailserver.stateVersion = 1;