69 Commits

Author SHA1 Message Date
Johannes Kirschbauer
0060ead876 clan/checks: move into lib function; add tests 2025-10-28 09:40:31 +01:00
pinpox
dc0b7fc3bf Add library function to read public vars 2025-10-22 19:56:10 +02:00
Johannes Kirschbauer
346e3d816a lib/modules: move modules out of lib 2025-10-21 19:35:50 +02:00
Johannes Kirschbauer
347668a57f lib: remove unused facts utils 2025-10-12 17:49:05 +02:00
Johannes Kirschbauer
1d38ffa9c2 inventory: unit test autoloading with a virtual fs 2025-10-12 16:32:55 +02:00
Johannes Kirschbauer
daea2da358 lib: move clan out of lib into flake
This allows clanLib to stay agnostic and be more testable
2025-09-16 15:28:12 +02:00
Johannes Kirschbauer
5e22830048 inventory: remove deprecated frontmatter 2025-09-16 14:59:39 +02:00
Johannes Kirschbauer
f49df8d574 inventory: make resolve module a clanLib function
Unclutter inventory logic
2025-09-16 13:09:56 +02:00
Johannes Kirschbauer
72e7c2e9b9 clanModules: cleanup some more unused code 2025-08-16 12:56:30 +02:00
Jörg Thalheim
0e97efbbef refactor: move docs transformOptions to clanLib to reduce rebuilds
- Add clanLib.docs.stripStorePathsFromDeclarations to deduplicate code
- Update all documentation generation to use the shared function
- This strips store paths from option declarations to prevent options.json
  from rebuilding when only store paths change but content remains the same
- Reduces unnecessary documentation rebuilds when making unrelated changes
2025-07-09 16:59:58 +02:00
Jörg Thalheim
b692f6fcfe put flake input overrides into a helper function 2025-07-07 15:59:09 +00:00
hsjobeki
a052f30b10 Merge pull request 'clanServices: clean up, add tests' (#4157) from default-modules into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4157
2025-07-01 12:09:28 +00:00
Johannes Kirschbauer
20e17b0e56 Lib/flakes: remove self references 2025-07-01 13:57:49 +02:00
Johannes Kirschbauer
65f01c72bd clanServices: remove unneeded self reference in lib 2025-07-01 13:19:37 +02:00
Johannes Kirschbauer
4f496a84f9 clanLib: remove select 2025-06-30 16:14:01 +02:00
DavHau
f966f5b745 clan services: use service modules from clan-core by default
Users will use clan-core services first before making their own. Therefore this is a better default. Also it allow us to simplify rendering of our docs
2025-06-30 10:13:46 +00:00
Johannes Kirschbauer
e9600a19c1 modules.clan.default: move specialArgs into common place 2025-06-26 17:37:42 +02:00
Johannes Kirschbauer
a35e2d84d1 buildClan: deprecate in favor of 'clan'
clan.lib.clan { <your definition> } returns an eval result
In contrast to buildClan which returns the .config
This allows for better introspection
2025-06-26 17:08:47 +02:00
Johannes Kirschbauer
f6de6632e4 modules: move clan module to flake.modules.clan.default 2025-06-26 17:08:47 +02:00
Johannes Kirschbauer
761e8b0ec5 refactor: clanLib buildClan 2025-06-26 15:20:05 +02:00
Johannes Kirschbauer
9ef518fa20 refactor: unify evalClanService with evalService 2025-06-26 14:50:35 +02:00
Johannes Kirschbauer
345aa12e99 build-inventory: move inventory and inventoryClass into explizitly different folders 2025-06-25 17:55:45 +02:00
Johannes Kirschbauer
ac5cc85d57 Refactor(build-clan): rename to lib/modules
This is a preparation for moving everything into clan, to make it all one module evaluation
2025-06-23 16:06:49 +02:00
DavHau
828e97775a lib: mkOfflineFlakeLock init
copied from the clan-core-flake module

I plan to re-use this function to improve the clan test framework to allow cli execution
2025-06-09 15:23:09 +07:00
Johannes Kirschbauer
7dc03f8eee Feat(clanLib): init types {uniqueDeferredSerializableModule} 2025-05-21 18:41:14 +02:00
Johannes Kirschbauer
dfa5a228e8 feat(clanLib): init evalServiceSchema 2025-05-05 21:55:29 +02:00
Michael Hoang
c3842902ac cli: don't use select from clanLib 2025-04-28 12:52:00 +10:00
Johannes Kirschbauer
06e2fcf9fa refactor: rename clanLib.values to introspection 2025-04-27 13:10:42 +02:00
Michael Hoang
4c2584e246 lib: move select.select -> select for backwards compat with old CLIs 2025-04-25 17:30:06 +10:00
lassulus
d93e58218d Refactor select with new maybe selector
This is a great refactor of the select functionality in the flake class.
This now uses the same parser as the nix code, but runs it in python for
nice stacktraces.

Also we now have a maybe selector which can be used by prepending the
selector with a ?

Tests have been expanded to make sure the code is more stable and easier
to understand
2025-04-25 16:26:45 +10:00
Johannes Kirschbauer
0bc2a068fe chore(test/makeTestClan): document all options, remove magic specialArgs 2025-04-16 10:33:32 +02:00
Johannes Kirschbauer
75c8541a8d tests(clan): move test-inventory.nix to clanLib. And name it 'makeTestClan'
Exposing the function via clanLib makes it more accessible to clan modules
This allows each module to define its own test without needing to depend on any fileSystem path assumptions in the clan-core repo
2025-04-15 18:17:40 +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
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
Michael Hoang
b5a57a72a0 build-clan: support constructing darwinConfigurations 2025-04-08 08:53:29 +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
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
d9741be51a feat(lib/inventory): use clanLib instead of clan-core as internal specialArg. This has the benefit of beeing more narrow scoped. 2025-03-30 17:07:09 +02:00
Johannes Kirschbauer
8a67602469 feat(lib/modules): remove dependency on self 2025-03-30 16:12:01 +02:00
Johannes Kirschbauer
0083ea86df feat(lib): init callLib; helper to bootstrap clanLib 2025-03-30 16:11:04 +02:00
Johannes Kirschbauer
77b6afd034 chore(lib): prepare for refactoring into clanLib 2025-03-30 15:56:54 +02:00
lassulus
02d450b905 clan-cli: add a Flake class with caching 2025-02-02 11:52:36 +00:00
Johannes Kirschbauer
de78a85324 lib.values: init getPrio
This function can be used to get the priority of all values within a module
2024-12-04 17:37:23 +01:00
Johannes Kirschbauer
3ebda7c304 Ext/modules: expose module schemas 2024-11-21 17:02:34 +01:00
Johannes Kirschbauer
b3bcecd61c Inventory: init external modules support 2024-11-21 15:38:17 +00:00
Johannes Kirschbauer
9028027220 modules/frontmatter: init module interface as source of frontmatter 2024-11-15 20:04:06 +01:00
Jörg Thalheim
da56927968 eval-clan-modules: don't re-import nixpkgs 2024-10-09 13:48:32 +02:00