Commit Graph

549 Commits

Author SHA1 Message Date
Johannes Kirschbauer
2ceefcd44d refactor(buildClan): move modules into 'forName' and import the correct core module depending on class 2025-04-15 15:29:01 +02:00
Johannes Kirschbauer
bb0ca2065d fixup(buildClan): use clan.inventory instead of refering to the clanInternals dumping ground within the module 2025-04-15 15:10:08 +02:00
Johannes Kirschbauer
d2c068c4a1 fixup(buildClan): split up the inner-module into: {forSystem, forName}
I am preparing this such that we can move the forName modules into the
defaults for the deferred module outputs and the forSystem modules are
added later and only for the 'configsPerSystem' where we actually need
the system modules
2025-04-15 15:02:37 +02:00
Johannes Kirschbauer
a0da225282 refactor: buildClan output; output deferred modules instead of nixosConfig 2025-04-15 14:25:02 +02:00
Michael Hoang
9c317e8f3b build-clan: drop unused machinesFunc 2025-04-15 13:30:28 +02:00
Michael Hoang
1d159fb774 build-clan: expose Clan configuration as a module 2025-04-14 16:04:06 +02:00
Johannes Kirschbauer
cd11835ec4 Reapply "Merge pull request 'chore(buildClan): move machineClass option into inventory.machines submodule' (#3259) from hsjobeki/clan-core:buildclan-cleanup into main"
This reverts commit 6154b4cb3a.
2025-04-09 18:16:35 +02:00
Johannes Kirschbauer
b0fb0752e9 fix(checks/data-mesher): format, dont pass a duplicate data-mesher module 2025-04-09 18:03:04 +02:00
Johannes Kirschbauer
3ccfcdc0c1 fix(eval/inventory): fix some test arguments to buildInventory 2025-04-09 17:38:06 +02:00
Johannes Kirschbauer
9f159084cd feat(buildInventory): move instance resolution into buildInventory
Such that buildClan doesn't have to compose the results
buildInventory should be more self contained. But it is NOT meant a
public API! use buildClan argument 'inventory' instead
2025-04-09 17:31:35 +02:00
Johannes Kirschbauer
e37f16f47a treewide(clanLib): rename all occurences of {clan-core,self}.lib to 'clanLib' 2025-04-09 11:32:46 +02:00
Johannes Kirschbauer
059cc1e2ea chore(lib/buildClan): remove dependencies {nixpkgs,nix-darwin} from the clanLib file 2025-04-08 22:13:46 +02:00
Johannes Kirschbauer
7c955f2820 chore(lib/getModuleClass): remove unused library function 2025-04-08 22:09:10 +02:00
hsjobeki
5879bcd6d9 Merge pull request 'docs(authoring): restructure authoring guides' (#3248) from hsjobeki/clan-core:docs-authoring into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3248
2025-04-08 19:58:59 +00:00
hsjobeki
0e26bfc228 Merge pull request 'chore(inventory/services): dont check _class in our logics. Let the error eccour in the final evaluation.' (#3236) from hsjobeki/clan-core:role-settings into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3236
2025-04-08 19:49:46 +00:00
Johannes Kirschbauer
485b6ae5c4 docs(authoring): restructure authoring guides
Mainly because we have two module specs now and they will remain
valid for a while. We need to keep the older format documented for a while
2025-04-08 21:32:19 +02:00
Sam Lehman
4fe822b340 devshells: name shells for clarity 2025-04-08 19:31:30 +00:00
Johannes Kirschbauer
8c970dc04a chore(inventory/instances): don't eagerly test the service modules _class 2025-04-08 20:30:35 +02:00
Johannes Kirschbauer
dd62b6c97a chore(inventory/services): dont check _class of legacy clanModules.
Let the module system handle the error. Once we shift to deferred
modules, things get more complicated and we cannot check the module
class eagerly
2025-04-08 20:30:33 +02:00
Johannes Kirschbauer
be8b86153c fix(getModulesSchema): forward argument to evalClanModules 2025-04-08 19:53:20 +02:00
Johannes Kirschbauer
29fbf361a7 chore(lib/modulesDocs): move dependency on clan-core and pkgs into function args
This is a good idea, to make lib agnostic from clan-core
The next step could be to rename the clan-core argument name
Or to explizitly pass the actual dependencies, instead of everything in
clan-core
2025-04-08 15:30:49 +02:00
hsjobeki
6df1b4a085 Merge pull request 'feat(inventory/instances): add extendSettings as argument to perInstance, perMachine' (#3233) from hsjobeki/clan-core:role-settings into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3233
2025-04-08 12:46:44 +00:00
Johannes Kirschbauer
375b18fd32 feat(inventory/instances): dont set module location to allow underlying error location to bubble up 2025-04-08 14:36:29 +02:00
Mic92
413d932238 Merge pull request 'directory-context' (#3234) from directory-context into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3234
2025-04-08 12:09:36 +00:00
Jörg Thalheim
681d28430b inventory: don't loose string context of directory 2025-04-08 13:50:27 +02:00
Johannes Kirschbauer
5db084e011 feat(inventory/instances): add extendSettings as argument to perInstance, perMachine 2025-04-08 13:15:06 +02:00
Brian McGee
b31cf42d2d fix(docs): tighten up validation for meta.name and improved description 2025-04-08 10:44:35 +01:00
Michael Hoang
ce85aebc17 tests: add --show-trace to nix-unit tests 2025-04-08 08:53:29 +02:00
Michael Hoang
b5a57a72a0 build-clan: support constructing darwinConfigurations 2025-04-08 08:53:29 +02:00
Michael Hoang
c2eaf74df5 lib/jsonschema: fix enum support 2025-04-08 08:53:27 +02:00
hsjobeki
d15ac22d41 Merge pull request 'chore(lib/select): move into subfolder with a test file' (#3175) from hsjobeki/clan-core:lib-cleanup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3175
2025-04-04 12:32:32 +00:00
Johannes Kirschbauer
bc2e353dff feat(lib/inventory): fix arguments discrepancy on perInstance and perMachine 2025-04-04 14:22:36 +02:00
Johannes Kirschbauer
3358eb1bfa chore(lib/select): init simple test 2025-04-04 14:06:05 +02:00
DavHau
e435bc2f72 workaround bug in docs rendering if machine.name is not set 2025-04-03 17:29:07 +07:00
DavHau
e540b82dc6 remove default for clan.core.settings.machine.name and make readOnly
There is not reason that there needs to be a default. Machines are usually defined as an attrset, so there is no reason to have a default.
Also make this readOnly as we never want to override it.
2025-04-03 17:29:07 +07:00
Johannes Kirschbauer
11f213f8e2 feat(inventory/instances): prevent modules without explizit class from beeing used 2025-04-02 14:57:21 +02:00
Johannes Kirschbauer
542a6a3fd1 feat(buildClan): add clan.modules as output 2025-04-02 13:38:38 +02:00
Johannes Kirschbauer
8a1584b145 chore(lib/introspection): add comment about upstream PRs, that allows removing features 2025-04-02 12:38:28 +02:00
Johannes Kirschbauer
1aaa328e1b chore(lib/select): move into subfolder with a test file 2025-04-02 12:37:49 +02:00
Johannes Kirschbauer
f6f0c1b356 fix(inventory/interface): use explizit file dependency, until dependency injection works properly 2025-04-02 11:12:16 +02:00
Johannes Kirschbauer
6e16d1345e chore(lib/treewide): cleanup directory struture of lib. See lib/readme.md for details 2025-04-02 11:11:21 +02:00
Johannes Kirschbauer
ad43cb63ca chore(lib/readme): use real-world example for directory structure vision 2025-04-02 09:56:30 +02:00
Johannes Kirschbauer
d69a074366 chore(buildClan): make buildClan and flake-parts return identical outputs 2025-04-02 09:56:28 +02:00
Johannes Kirschbauer
be62c8844e fix(computed-tags): typo 2025-04-02 09:49:54 +02:00
Johannes Kirschbauer
05b6180675 chore(buildClan): remove dependency on clan-core in the lib function 2025-04-02 09:49:54 +02:00
Johannes Kirschbauer
3c2708b263 feat(lib/buildClan): turn lib/build-clan into a 'buildClanModule' with sub-features such as 'buildClan' and 'flakePartsModule' 2025-04-01 15:39:12 +02:00
Johannes Kirschbauer
6bc98c14e5 chore(buildClan): set clanInternals.modules to clanInternals.clanModules 2025-04-01 15:36:37 +02:00
Johannes Kirschbauer
9ef42996e4 chore(buildClan): rename eval.nix to function-adapter.nix to make its shallows purpose more clear 2025-04-01 14:33:55 +02:00
Johannes Kirschbauer
b08c67cc7b test(inventory/instnces): add tests for 'perInstance' arguments 2025-04-01 12:50:04 +02:00
Johannes Kirschbauer
663739a629 feat(inventory): remove tag settings for now 2025-04-01 11:04:51 +02:00