From 59448d635c7ac0b73f1517b69e5c9dea1d8a9572 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Fri, 23 Nov 2018 00:18:29 +0100 Subject: [PATCH] version: add module --- modules/misc/news.nix | 23 +++++++++++++++++++++++ modules/misc/version.nix | 24 ++++++++++++++++++++++++ modules/modules.nix | 1 + 3 files changed, 48 insertions(+) create mode 100644 modules/misc/version.nix diff --git a/modules/misc/news.nix b/modules/misc/news.nix index 21529f46d..89ec3b41e 100644 --- a/modules/misc/news.nix +++ b/modules/misc/news.nix @@ -841,6 +841,29 @@ in untested at this time. ''; } + + { + time = "2018-11-24T16:22:19+00:00"; + message = '' + A new option 'home.stateVersion' is available. Its function + is much like the 'system.stateVersion' option in NixOS. + + Briefly, the state version indicates a stable set of option + defaults. In the future, whenever Home Manager changes an + option default in a way that may cause program breakage it + will do so only for the unstable state version, currently + 19.03. Once 19.03 becomes the stable version only backwards + compatible changes will be made and 19.09 becomes the + unstable state version. + + The default value for this option is 18.09 but it may still + be a good idea to explicitly add + + home.stateVersion = "18.09"; + + to your Home Manager configuration. + ''; + } ]; }; } diff --git a/modules/misc/version.nix b/modules/misc/version.nix new file mode 100644 index 000000000..42e19e98a --- /dev/null +++ b/modules/misc/version.nix @@ -0,0 +1,24 @@ +{ config, lib, ... }: + +with lib; + +{ + options = { + home.stateVersion = mkOption { + type = types.enum [ "18.09" "19.03" ]; + default = "18.09"; + description = '' + It is occasionally necessary for Home Manager to change + configuration defaults in a way that is incompatible with + stateful data. This could, for example, include switching the + default data format or location of a file. + + The state version indicates which default + settings are in effect and will therefore help avoid breaking + program configurations. Switching to a higher state version + typically requires performing some manual steps, such as data + conversion or moving files. + ''; + }; + }; +} diff --git a/modules/modules.nix b/modules/modules.nix index 2af4cec35..b73bc8ead 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -24,6 +24,7 @@ let ./misc/nixpkgs.nix ./misc/pam.nix ./misc/qt.nix + ./misc/version.nix ./misc/xdg.nix ./programs/afew.nix ./programs/alot.nix