Sender | Message | Time |
---|---|---|
28 May 2024 | ||
What other attrs are used by lib.evalModules ? I've seen imports , disabledImports , config , and options , but I didn't know there were others. Is there a place I can read about this behavior or do I just need to do a deep dive on the source of lib.evalModules ? | 12:54:49 | |
In reply to @nbp:mozilla.org Definitely something I'd expect others to have problems with, so I'd be down to contribute to a fix. How would I go about debugging | 12:57:06 | |
When I said upstream, I meant the flake you use as input. | 15:52:59 | |
3 Jun 2024 | ||
16:23:46 | ||
4 Jun 2024 | ||
02:43:30 | ||
12 Jun 2024 | ||
00:31:19 | ||
00:32:52 | ||
16 Jun 2024 | ||
01:15:19 | ||
18 Jun 2024 | ||
Can you conditionally set imports if the condition isn't based on the config arg? | 20:54:51 | |
19 Jun 2024 | ||
Try it and report back 😛 But seriously what kind of conditional are you trying to use with imports? | 02:19:55 | |
No, it is not possible to conditionally import files using imports list, as it is computed ahead of the configuration. | 09:40:48 | |
However, you can conditionally configure using mkIf . | 09:41:29 | |
What is your problem? | 09:43:16 | |
20 Jun 2024 | ||
14:29:21 | ||
21 Jun 2024 | ||
Redacted or Malformed Event | 13:19:32 | |
3 Jul 2024 | ||
09:52:25 | ||
4 Jul 2024 | ||
15:46:22 | ||
15:54:02 | ||
5 Jul 2024 | ||
Is it possible to override an option? I don't mean an option's value, I mean overriding the option itself, like changing the type or the default (I can't use extendModules ) | 15:24:32 | |
7 Jul 2024 | ||
09:38:54 | ||
8 Jul 2024 | ||
zrsk: By default, no, you can extend some option types such as enum and submodules , but you cannot substitute the type by another one. However, you can disable the module (using disabledModules = [ <path-of-imported-module> ] ) and re-implement the same interface as the disabled module. | 10:48:59 | |
disabledModules was introduced as a way to develop non-backward compatible changes without having the fork NixOS. | 10:49:44 | |
nbp: Yeah I know about disabledModules , it would be nice if there was a way to disable single options and then re-implement them.Anyway at the end I solved my problem (which was unrelated, my question here was due to a possible workaround I was considering). To be exact what I wanted to do was changing the default value for an option and I don't mean using mkDefault , I mean changing the value in options.foo.default without having direct access to where it was declared (I'm generating docs starting from imported modules but the default value for that option was a package that required an overlay I didn't want to apply, otherwise it gave an evaluation error) | 12:27:43 | |
We do not have a way apart from disabledModules for replacing the default value for the documentation :/ | 12:35:53 | |
In reply to @nbp:mozilla.orgThat's not the end of world | 12:41:53 | |
While I'm at it I've another question about the module system: why it isn't possible to set an option config.foo to a function of config.foo ? | 12:44:57 | |
In general it shouldn't lead to an infinite recursion | 12:45:23 | |
Or maybe yes, I'm not sure anymore...I remember thinking about this time ago. The example I was giving to myself was something like foo = f config.foo where f is the usual recursive factorial. But thinking about it now I can't see how I could express the recursion base case. | 12:48:22 | |
But still I believe that even foo = g config.foo with g: _: 42 as the constant function would lead to an infinite recursion error (perhaps I'm wrong, haven't tried) | 12:49:16 | |
* But still I believe that even foo = g config.foo with g = _: 42 as the constant function would lead to an infinite recursion error (perhaps I'm wrong, haven't tried) | 12:50:03 |