lib: add deprecated option warning helpers

This commit is contained in:
Austin Horstman
2026-06-01 12:38:21 -05:00
parent 4c5c1e8ba1
commit 5ded124f91
4 changed files with 88 additions and 0 deletions

View File

@@ -177,6 +177,7 @@ import nmtSrc {
(
[
# keep-sorted start case=no numeric=yes
./lib/deprecations
./lib/generators
./lib/types
./modules/files

View File

@@ -0,0 +1,3 @@
{
lib-deprecations-warnings = ./warnings.nix;
}

View File

@@ -0,0 +1,42 @@
{ lib, pkgs, ... }:
{
nmt.script =
let
expected = pkgs.writeText "deprecation-warnings.expected" ''
Using `programs.example.settings` as a list is deprecated and will be
removed in a future release. Please use `programs.example.settings.items` instead.
Move list entries under `settings.items`.
The value "kde6" for `qt.platformTheme.name` is deprecated and will be
removed in a future release. Please use "kde" instead.
'';
actual = pkgs.writeText "deprecation-warnings.actual" (
lib.hm.deprecations.mkDeprecatedOptionValueWarning {
option = [
"programs"
"example"
"settings"
];
old = "a list";
replacement = "`programs.example.settings.items`";
details = "Move list entries under `settings.items`.";
}
+ "\n"
+ lib.hm.deprecations.mkDeprecatedOptionValueRenameWarning {
option = [
"qt"
"platformTheme"
"name"
];
old = ''"kde6"'';
replacement = ''"kde"'';
}
);
in
''
assertFileContent ${actual} ${expected}
'';
}