From 4239f4d27f38d023d1d49ffc75988162a184fdd7 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Mon, 27 Oct 2025 17:24:45 +0100 Subject: [PATCH 1/5] clan/module: explain throw --- modules/clan/module.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/clan/module.nix b/modules/clan/module.nix index cdd616b40..a3bc09ddc 100644 --- a/modules/clan/module.nix +++ b/modules/clan/module.nix @@ -167,6 +167,9 @@ in { ... }@args: let _class = + # _class was added in https://github.com/NixOS/nixpkgs/pull/395141 + # Clan relies on it to determine which modules to load + # people need to use at least that version of nixpkgs args._class or (throw '' Your version of nixpkgs is incompatible with the latest clan. Please update nixpkgs input to the latest nixos-unstable or nixpkgs-unstable. From a2cec323a23955d161deead8c3c749b6a78016d6 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Mon, 27 Oct 2025 17:27:54 +0100 Subject: [PATCH 2/5] modules: move nixos modules into nixosModules folder --- modules/clan/module.nix | 4 ++-- {modules => nixosModules}/machineModules/forName.nix | 1 + {modules => nixosModules}/machineModules/overridePkgs.nix | 0 3 files changed, 3 insertions(+), 2 deletions(-) rename {modules => nixosModules}/machineModules/forName.nix (92%) rename {modules => nixosModules}/machineModules/overridePkgs.nix (100%) diff --git a/modules/clan/module.nix b/modules/clan/module.nix index a3bc09ddc..ab433b68a 100644 --- a/modules/clan/module.nix +++ b/modules/clan/module.nix @@ -100,7 +100,7 @@ let _: machine: machine.extendModules { modules = [ - (lib.modules.importApply ../machineModules/overridePkgs.nix { + (lib.modules.importApply ../../nixosModules/machineModules/overridePkgs.nix { pkgs = pkgsFor.${system}; }) ]; @@ -179,7 +179,7 @@ in in { imports = [ - (lib.modules.importApply ../machineModules/forName.nix { + (lib.modules.importApply ../../nixosModules/machineModules/forName.nix { inherit (config.inventory) meta; inherit name diff --git a/modules/machineModules/forName.nix b/nixosModules/machineModules/forName.nix similarity index 92% rename from modules/machineModules/forName.nix rename to nixosModules/machineModules/forName.nix index 361f58dfb..a485f2c60 100644 --- a/modules/machineModules/forName.nix +++ b/nixosModules/machineModules/forName.nix @@ -3,6 +3,7 @@ directory, meta, }: +# The following is a nixos/darwin module { _class, lib, diff --git a/modules/machineModules/overridePkgs.nix b/nixosModules/machineModules/overridePkgs.nix similarity index 100% rename from modules/machineModules/overridePkgs.nix rename to nixosModules/machineModules/overridePkgs.nix From 9503b46b2191714cb69799eb8f7e27eede23c56e Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Mon, 27 Oct 2025 17:31:26 +0100 Subject: [PATCH 3/5] modules: rename arbitrary interface.nix to 'top-level-interface' --- modules/clan/default.nix | 2 +- modules/clan/{interface.nix => top-level-interface.nix} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename modules/clan/{interface.nix => top-level-interface.nix} (100%) diff --git a/modules/clan/default.nix b/modules/clan/default.nix index af742cbcc..8a55c44a0 100644 --- a/modules/clan/default.nix +++ b/modules/clan/default.nix @@ -6,7 +6,7 @@ inherit (clan-core) clanLib; }; imports = [ + ./top-level-interface.nix ./module.nix - ./interface.nix ]; } diff --git a/modules/clan/interface.nix b/modules/clan/top-level-interface.nix similarity index 100% rename from modules/clan/interface.nix rename to modules/clan/top-level-interface.nix From 3e950bc66fcc05ad3a8660d60dac04925d19314b Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Mon, 27 Oct 2025 17:38:34 +0100 Subject: [PATCH 4/5] docs: add doc-comment for template submodule --- modules/clan/templates.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/modules/clan/templates.nix b/modules/clan/templates.nix index 91042f821..84c24791b 100644 --- a/modules/clan/templates.nix +++ b/modules/clan/templates.nix @@ -1,3 +1,28 @@ +/** + The templates submodule + + 'clan.templates' + + Different kinds supported: + + - clan templates: 'clan.templates.clan' + - disko templates: 'clan.templates.disko' + - machine templates: 'clan.templates.machine' + + A template has the form: + + ```nix + { + description: string; # short summary what the template contains + path: path; # path to the template + } + ``` + + The clan API copies the template from the given 'path' + into a target folder. For example, + + `./machines/` for 'machine' templates. +*/ { lib, ... From b3323007b213f2dc29443e9fe00fd3dca00c1bab Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Mon, 27 Oct 2025 17:44:02 +0100 Subject: [PATCH 5/5] test: update test filesets --- clanServices/syncthing/flake-module.nix | 1 + clanServices/zerotier/flake-module.nix | 1 + lib/inventory/distributed-service/flake-module.nix | 1 + 3 files changed, 3 insertions(+) diff --git a/clanServices/syncthing/flake-module.nix b/clanServices/syncthing/flake-module.nix index 63368048d..64afbda26 100644 --- a/clanServices/syncthing/flake-module.nix +++ b/clanServices/syncthing/flake-module.nix @@ -22,6 +22,7 @@ in ../../clanServices/syncthing # Required modules ../../nixosModules/clanCore + ../../nixosModules/machineModules # Dependencies like clan-cli ../../pkgs/clan-cli ]; diff --git a/clanServices/zerotier/flake-module.nix b/clanServices/zerotier/flake-module.nix index 78933d589..49b36f770 100644 --- a/clanServices/zerotier/flake-module.nix +++ b/clanServices/zerotier/flake-module.nix @@ -21,6 +21,7 @@ in ../../clanServices/zerotier # Required modules ../../nixosModules/clanCore + ../../nixosModules/machineModules # Dependencies like clan-cli ../../pkgs/clan-cli ]; diff --git a/lib/inventory/distributed-service/flake-module.nix b/lib/inventory/distributed-service/flake-module.nix index 621e069f7..8cddb90ba 100644 --- a/lib/inventory/distributed-service/flake-module.nix +++ b/lib/inventory/distributed-service/flake-module.nix @@ -21,6 +21,7 @@ in ../../../flakeModules ../../../lib ../../../nixosModules/clanCore + ../../../nixosModules/machineModules ../../../machines ../../../inventory.json ../../../modules