From c742f6f25abfe698166eefcb389f31ecd9e6b07b Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 27 Nov 2022 16:06:43 +0000 Subject: [PATCH 1/3] Add some eval tests Not how I would recommend to do it, because I'm forcefully trying to avoid adding dependencies to flake-parts. Other projects should not follow this restriction. --- dev/flake-module.nix | 4 +++ dev/tests/eval-tests.nix | 63 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 dev/tests/eval-tests.nix diff --git a/dev/flake-module.nix b/dev/flake-module.nix index 40fe958..49b1102 100644 --- a/dev/flake-module.nix +++ b/dev/flake-module.nix @@ -26,6 +26,10 @@ }; }; + checks.eval-tests = + let tests = import ./tests/eval-tests.nix; + in tests.runTests pkgs.emptyFile // { internals = tests; }; + }; flake = { # for repl exploration / debug diff --git a/dev/tests/eval-tests.nix b/dev/tests/eval-tests.nix new file mode 100644 index 0000000..450b6a8 --- /dev/null +++ b/dev/tests/eval-tests.nix @@ -0,0 +1,63 @@ +rec { + f-p = builtins.getFlake (toString ../..); + f-p-lib = f-p.lib; + + inherit (f-p-lib) mkFlake; + inherit (f-p.inputs.nixpkgs-lib) lib; + + pkg = system: name: derivation { + name = name; + builder = "no-builder"; + system = system; + }; + + empty = mkFlake + { self = { }; } + { + systems = [ ]; + }; + + example1 = mkFlake + { self = { }; } + { + systems = [ "a" "b" ]; + perSystem = { system, ... }: { + packages.hello = pkg system "hello"; + }; + }; + + runTests = ok: + + assert empty == { + apps = { }; + checks = { }; + darwinModules = { }; + devShells = { }; + formatter = { }; + legacyPackages = { }; + nixosConfigurations = { }; + nixosModules = { }; + overlays = { }; + packages = { }; + }; + + assert example1 == { + apps = { a = { }; b = { }; }; + checks = { a = { }; b = { }; }; + darwinModules = { }; + devShells = { a = { }; b = { }; }; + formatter = { }; + legacyPackages = { a = { }; b = { }; }; + nixosConfigurations = { }; + nixosModules = { }; + overlays = { }; + packages = { + a = { hello = pkg "a" "hello"; }; + b = { hello = pkg "b" "hello"; }; + }; + }; + + ok; + + result = runTests "ok"; +} From 85518a2916f27e0351deafa0fd0960279bfc4b3d Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 27 Nov 2022 16:08:31 +0000 Subject: [PATCH 2/3] Remove darwinModules It should be added to the nix-darwin project instead. --- ChangeLog.md | 8 ++++++++ all-modules.nix | 1 - dev/tests/eval-tests.nix | 2 -- modules/darwinModules.nix | 27 --------------------------- 4 files changed, 8 insertions(+), 30 deletions(-) delete mode 100644 modules/darwinModules.nix diff --git a/ChangeLog.md b/ChangeLog.md index 9b693f1..ed0be96 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,4 +1,12 @@ +# 2022-11-27 + + - The `darwinModules` option has been removed. This was added in the early days + without full consideration. The removal will have no effect on most flakes + considering that the [`flake` option](https://flake.parts/options/flake-parts.html#opt-flake) + allows any attribute to be set. This attribute and related attributes should + be added to the nix-darwin project instead. + # 2022-10-11 - The `nixpkgs` input has been renamed to `nixpkgs-lib` to signify that the diff --git a/all-modules.nix b/all-modules.nix index 42bfdf2..039ce97 100644 --- a/all-modules.nix +++ b/all-modules.nix @@ -3,7 +3,6 @@ imports = [ ./modules/apps.nix ./modules/checks.nix - ./modules/darwinModules.nix ./modules/devShells.nix ./modules/flake.nix ./modules/formatter.nix diff --git a/dev/tests/eval-tests.nix b/dev/tests/eval-tests.nix index 450b6a8..276269c 100644 --- a/dev/tests/eval-tests.nix +++ b/dev/tests/eval-tests.nix @@ -31,7 +31,6 @@ rec { assert empty == { apps = { }; checks = { }; - darwinModules = { }; devShells = { }; formatter = { }; legacyPackages = { }; @@ -44,7 +43,6 @@ rec { assert example1 == { apps = { a = { }; b = { }; }; checks = { a = { }; b = { }; }; - darwinModules = { }; devShells = { a = { }; b = { }; }; formatter = { }; legacyPackages = { a = { }; b = { }; }; diff --git a/modules/darwinModules.nix b/modules/darwinModules.nix deleted file mode 100644 index 2e39a00..0000000 --- a/modules/darwinModules.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, self, lib, flake-parts-lib, ... }: -let - inherit (lib) - filterAttrs - mapAttrs - mkOption - optionalAttrs - types - ; - inherit (flake-parts-lib) - mkSubmoduleOptions - ; -in -{ - options = { - flake = mkSubmoduleOptions { - darwinModules = mkOption { - type = types.lazyAttrsOf types.unspecified; - default = { }; - apply = mapAttrs (k: v: { _file = "${toString self.outPath}/flake.nix#darwinModules.${k}"; imports = [ v ]; }); - description = '' - [nix-darwin](https://daiderd.com/nix-darwin/) modules. - ''; - }; - }; - }; -} From 44c1ee5b28a0c32ced1237300f0ddbb51546fb71 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 7 Dec 2022 20:29:59 +0100 Subject: [PATCH 3/3] Update ChangeLog.md --- ChangeLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index ed0be96..c9d894e 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,5 @@ -# 2022-11-27 +# 2022-12-07 - The `darwinModules` option has been removed. This was added in the early days without full consideration. The removal will have no effect on most flakes