From 360620ec9d5ffc186b5b1fca4c5f5b2e1634a5cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Pomyka=C5=82a?= <168227269+dpomykala@users.noreply.github.com> Date: Mon, 12 Jan 2026 21:15:13 +0100 Subject: [PATCH] mise: remove the `settings` option mise no longer supports the separate `settings.toml` file for settings. Settings should be defined in the global configuration (`globalConfig`). --- modules/programs/mise.nix | 53 +++++++++---------- .../programs/mise/custom-settings-renamed.nix | 35 ++++++++++++ .../modules/programs/mise/custom-settings.nix | 41 +++++++------- .../programs/mise/default-settings.nix | 1 - tests/modules/programs/mise/default.nix | 1 + 5 files changed, 83 insertions(+), 48 deletions(-) create mode 100644 tests/modules/programs/mise/custom-settings-renamed.nix diff --git a/modules/programs/mise.nix b/modules/programs/mise.nix index 65ed2d15..b16986ee 100644 --- a/modules/programs/mise.nix +++ b/modules/programs/mise.nix @@ -14,15 +14,20 @@ in imports = let - mkRemovedWarning = + mkRtxRemovedWarning = opt: (lib.mkRemovedOptionModule [ "programs" "rtx" opt ] '' The `rtx` package has been replaced by `mise`, please switch over to using the options under `programs.mise.*` instead. ''); - in - map mkRemovedWarning [ + [ + (lib.mkRenamedOptionModule + [ "programs" "mise" "settings" ] + [ "programs" "mise" "globalConfig" "settings" ] + ) + ] + ++ map mkRtxRemovedWarning [ "enable" "package" "enableBashIntegration" @@ -47,38 +52,32 @@ in enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption { inherit config; }; globalConfig = mkOption { - type = tomlFormat.type; + inherit (tomlFormat) type; + default = { }; example = lib.literalExpression '' + settings = { + disable_tools = [ "node" ]; + experimental = true; + verbose = false; + }; + + tool_alias = { + node.versions = { + my_custom_node = "20"; + }; + }; + tools = { node = "lts"; python = ["3.10" "3.11"]; }; - - aliases = { - my_custom_node = "20"; - }; ''; description = '' Config written to {file}`$XDG_CONFIG_HOME/mise/config.toml`. - See - for details on supported values. - ''; - }; - - settings = mkOption { - type = tomlFormat.type; - default = { }; - example = lib.literalExpression '' - verbose = false; - experimental = false; - disable_tools = ["node"]; - ''; - description = '' - Settings written to {file}`$XDG_CONFIG_HOME/mise/settings.toml`. - - See + See and + for details on supported values. ''; }; @@ -109,10 +108,6 @@ in "mise/config.toml" = mkIf (cfg.globalConfig != { }) { source = tomlFormat.generate "mise-config" cfg.globalConfig; }; - - "mise/settings.toml" = mkIf (cfg.settings != { }) { - source = tomlFormat.generate "mise-settings" cfg.settings; - }; }; programs = { diff --git a/tests/modules/programs/mise/custom-settings-renamed.nix b/tests/modules/programs/mise/custom-settings-renamed.nix new file mode 100644 index 00000000..9f583aa5 --- /dev/null +++ b/tests/modules/programs/mise/custom-settings-renamed.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + options, + pkgs, + ... +}: +{ + programs = { + mise = { + package = config.lib.test.mkStubPackage { name = "mise"; }; + enable = true; + settings = { + disable_tools = [ "node" ]; + experimental = true; + verbose = false; + }; + }; + }; + + test.asserts.warnings.expected = [ + "The option `programs.mise.settings' defined in ${lib.showFiles options.programs.mise.settings.files} has been renamed to `programs.mise.globalConfig.settings'." + ]; + + nmt.script = '' + assertFileExists home-files/.config/mise/config.toml + + assertFileContent home-files/.config/mise/config.toml ${pkgs.writeText "mise.config.expected" '' + [settings] + disable_tools = ["node"] + experimental = true + verbose = false + ''} + ''; +} diff --git a/tests/modules/programs/mise/custom-settings.nix b/tests/modules/programs/mise/custom-settings.nix index ddc1585c..e0291ec5 100644 --- a/tests/modules/programs/mise/custom-settings.nix +++ b/tests/modules/programs/mise/custom-settings.nix @@ -1,10 +1,26 @@ -{ config, pkgs, ... }: +{ + config, + pkgs, + ... +}: { programs = { mise = { package = config.lib.test.mkStubPackage { name = "mise"; }; enable = true; globalConfig = { + settings = { + disable_tools = [ "node" ]; + experimental = true; + verbose = false; + }; + + tool_alias = { + node.versions = { + my_custom_node = "20"; + }; + }; + tools = { node = "lts"; python = [ @@ -12,36 +28,25 @@ "3.11" ]; }; - - aliases = { - my_custom_node = "20"; - }; - }; - settings = { - verbose = false; - experimental = true; - disable_tools = [ "node" ]; }; }; }; nmt.script = '' assertFileExists home-files/.config/mise/config.toml - assertFileExists home-files/.config/mise/settings.toml assertFileContent home-files/.config/mise/config.toml ${pkgs.writeText "mise.config.expected" '' - [aliases] + [settings] + disable_tools = ["node"] + experimental = true + verbose = false + + [tool_alias.node.versions] my_custom_node = "20" [tools] node = "lts" python = ["3.10", "3.11"] ''} - - assertFileContent home-files/.config/mise/settings.toml ${pkgs.writeText "mise.settings.expected" '' - disable_tools = ["node"] - experimental = true - verbose = false - ''} ''; } diff --git a/tests/modules/programs/mise/default-settings.nix b/tests/modules/programs/mise/default-settings.nix index d3729178..a41ddc3b 100644 --- a/tests/modules/programs/mise/default-settings.nix +++ b/tests/modules/programs/mise/default-settings.nix @@ -8,7 +8,6 @@ nmt.script = '' assertPathNotExists home-files/.config/mise/config.toml - assertPathNotExists home-files/.config/mise/settings.toml ''; }; } diff --git a/tests/modules/programs/mise/default.nix b/tests/modules/programs/mise/default.nix index 402e3263..9d6dc3ba 100644 --- a/tests/modules/programs/mise/default.nix +++ b/tests/modules/programs/mise/default.nix @@ -1,6 +1,7 @@ { mise-default-settings = ./default-settings.nix; mise-custom-settings = ./custom-settings.nix; + mise-custom-settings-renamed = ./custom-settings-renamed.nix; mise-bash-integration = ./bash-integration.nix; mise-zsh-integration = ./zsh-integration.nix; mise-fish-integration = ./fish-integration.nix;