The option `submodule.args' was accessed but has no value defined. Try setting the option.
> `nix build github:insipx/jupiter/namespace-issue#kubenix`
>
> which is on [this branch](https://github.com/insipx/jupiter/tree/namespace-issue)
_Originally posted by @insipx in [#97](https://github.com/hall/kubenix/issues/97#issuecomment-3705707972)_
@insipx I needed to clone the branch and remove the cases where it was depending on your `jupiter-secrets` repo 🙂
But I was also able to reproduce the issue.
<details><summary>Trace</summary>
<p>
```
error:
… while calling anonymous lambda
at /nix/store/f68rm3gsa1ffllyz4m35jvrck4db2f7i-source/flake.nix:50:43:
49| in
50| nixpkgs.lib.attrsets.mapAttrs (_: exp: exp.config.kubernetes.result) experiments
| ^
51| );
… while evaluating the attribute 'config.kubernetes.result'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:361:9:
360| options = checked options;
361| config = checked (removeAttrs config [ "_module" ]);
| ^
362| _module = checked (config._module);
… while evaluating an expression to select 'kubernetes' on it
at /nix/store/f68rm3gsa1ffllyz4m35jvrck4db2f7i-source/flake.nix:50:59:
49| in
50| nixpkgs.lib.attrsets.mapAttrs (_: exp: exp.config.kubernetes.result) experiments
| ^
51| );
… while calling the 'seq' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:361:18:
360| options = checked options;
361| config = checked (removeAttrs config [ "_module" ]);
| ^
362| _module = checked (config._module);
… while evaluating the attribute 'unmatchedDefns'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:894:7:
893| # Transforms unmatchedDefnsByName into a list of definitions
894| unmatchedDefns =
| ^
895| if configs == [ ] then
… while calling the 'concatLists' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:900:11:
899| else
900| concatLists (
| ^
901| mapAttrsToList (
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:902:21:
901| mapAttrsToList (
902| name: defs:
| ^
903| map (
… while calling the 'map' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:903:15:
902| name: defs:
903| map (
| ^
904| def:
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:886:22:
885| # Propagate all unmatched definitions from nested option sets
886| mapAttrs (n: v: v.unmatchedDefns) resultsByName
| ^
887| # Plus the definitions for the current prefix that don't have a matching option
… while evaluating the attribute 'unmatchedDefns'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:894:7:
893| # Transforms unmatchedDefnsByName into a list of definitions
894| unmatchedDefns =
| ^
895| if configs == [ ] then
… while evaluating configs
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:895:12:
894| unmatchedDefns =
895| if configs == [ ] then
| ^
896| # When no config values exist, there can be no unmatched config, so
… while calling the 'concatLists' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:834:47:
833| loc = prefix ++ [ name ];
834| defns = pushedDownDefinitionsByName.${name} or [ ];
| ^
835| defns' = rawDefinitionsByName.${name} or [ ];
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:791:16:
790| mapAttrs (
791| n: value:
| ^
792| map (config: {
… while calling the 'map' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:792:13:
791| n: value:
792| map (config: {
| ^
793| inherit (module) file;
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:795:17:
794| inherit config;
795| }) (pushDownProperties value)
| ^
796| ) module.config
… while calling 'pushDownProperties'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1282:5:
1281| pushDownProperties =
1282| cfg:
| ^
1283| if cfg._type or "" == "merge" then
… while calling the 'concatMap' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1284:7:
1283| if cfg._type or "" == "merge" then
1284| concatMap pushDownProperties cfg.contents
| ^
1285| else if cfg._type or "" == "if" then
… while calling 'pushDownProperties'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1282:5:
1281| pushDownProperties =
1282| cfg:
| ^
1283| if cfg._type or "" == "merge" then
… while evaluating an expression to select '_type' on it
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1283:8:
1282| cfg:
1283| if cfg._type or "" == "merge" then
| ^
1284| concatMap pushDownProperties cfg.contents
… while evaluating cfg
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1283:8:
1282| cfg:
1283| if cfg._type or "" == "merge" then
| ^
1284| concatMap pushDownProperties cfg.contents
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1283:8:
1282| cfg:
1283| if cfg._type or "" == "merge" then
| ^
1284| concatMap pushDownProperties cfg.contents
… while calling anonymous lambda
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:67:13:
66| ${name} = mkMerge (mapAttrsToList
67| (_: inst:
| ^
68| if inst.passthru.enable
… while evaluating an expression to select 'submodule' on it
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:69:28:
68| if inst.passthru.enable
69| then inst.config.submodule.passthru.${name} or { }
| ^
70| else { }
… from call site
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:69:16:
68| if inst.passthru.enable
69| then inst.config.submodule.passthru.${name} or { }
| ^
70| else { }
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/attrsets.nix:1188:17:
1187| mapAttrs (
1188| name: value:
| ^
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/attrsets.nix:1189:85:
1188| name: value:
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^
1190| );
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:275:71:
274| # For definitions that have an associated option
275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
276|
… while evaluating the attribute 'value'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1118:7:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while calling the 'addErrorContext' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1118:15:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while evaluating the option `submodules.instances.ingress-internal.config':
… while evaluating the attribute 'mergedValue'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1192:5:
1191| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
1192| mergedValue =
| ^
1193| if isDefined then
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1202:11:
1201| else if all (def: type.check def.value) defsFinal then
1202| type.merge loc defsFinal
| ^
1203| else
… while calling 'merge'
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:92:20:
91| check = x: isAttrs x || isFunction x;
92| merge = loc: defs:
| ^
93| let
… while evaluating the attribute 'config'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:361:9:
360| options = checked options;
361| config = checked (removeAttrs config [ "_module" ]);
| ^
362| _module = checked (config._module);
… while calling the 'seq' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:361:18:
360| options = checked options;
361| config = checked (removeAttrs config [ "_module" ]);
| ^
362| _module = checked (config._module);
… while evaluating an expression to select '_module.check' on it
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:297:12:
296| checkUnmatched =
297| if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
| ^
298| let
… while evaluating config
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:297:12:
296| checkUnmatched =
297| if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
| ^
298| let
… while evaluating an expression to select '_module.freeformType' on it
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:288:12:
287| in
288| if declaredConfig._module.freeformType == null then
| ^
289| declaredConfig
… while evaluating declaredConfig
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:288:12:
287| in
288| if declaredConfig._module.freeformType == null then
| ^
289| declaredConfig
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:275:28:
274| # For definitions that have an associated option
275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
276|
… while calling 'mapAttrsRecursiveCond'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/attrsets.nix:1183:14:
1182| mapAttrsRecursiveCond =
1183| cond: f: set:
| ^
1184| let
… while calling the 'mapAttrs' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/attrsets.nix:1192:5:
1191| in
1192| recurse [ ] set;
| ^
1193|
… while evaluating the attribute 'matchedOptions'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:891:15:
890| {
891| inherit matchedOptions;
| ^
892|
… while calling the 'mapAttrs' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:881:24:
880|
881| matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
| ^
882|
… while calling the 'mapAttrs' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:829:23:
828|
829| resultsByName = mapAttrs (
| ^
830| name: decls:
… while calling the 'zipAttrsWith' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:745:21:
744| # an attrset 'name' => list of submodules that declare ‘name’.
745| declsByName = zipAttrsWith (n: v: v) (
| ^
746| map (
… while calling the 'map' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:746:9:
745| declsByName = zipAttrsWith (n: v: v) (
746| map (
| ^
747| module:
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:267:37:
266|
267| merged = mergeModules prefix (reverseList (doCollect { }).modules);
| ^
268|
… while calling 'reverseList'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/lists.nix:1105:5:
1104| reverseList =
1105| xs:
| ^
1106| let
… while calling the 'genList' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/lists.nix:1109:5:
1108| in
1109| genList (n: elemAt xs (l - n - 1)) l;
| ^
1110|
… while evaluating the second argument passed to builtins.genList
… while calling the 'length' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/lists.nix:1107:11:
1106| let
1107| l = length xs;
| ^
1108| in
… while evaluating the attribute 'modules'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:550:7:
549| modulesPath: initialModules: args: {
550| modules = filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
| ^
551| graph = toGraph modulesPath (collectStructuredModules unknownModule "" initialModules args);
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:550:17:
549| modulesPath: initialModules: args: {
550| modules = filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
| ^
551| graph = toGraph modulesPath (collectStructuredModules unknownModule "" initialModules args);
… while calling 'filterModules'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:525:9:
524| modulesPath:
525| { disabled, modules }:
| ^
526| let
… while calling the 'map' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:529:9:
528| in
529| map (attrs: attrs.module) (genericClosure {
| ^
530| startSet = keyFilter modules;
… while calling the 'genericClosure' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:529:36:
528| in
529| map (attrs: attrs.module) (genericClosure {
| ^
530| startSet = keyFilter modules;
… while calling the 'filter' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:530:22:
529| map (attrs: attrs.module) (genericClosure {
530| startSet = keyFilter modules;
| ^
531| operator = attrs: keyFilter attrs.modules;
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:527:31:
526| let
527| keyFilter = filter (attrs: !isDisabled modulesPath disabled attrs);
| ^
528| in
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:527:39:
526| let
527| keyFilter = filter (attrs: !isDisabled modulesPath disabled attrs);
| ^
528| in
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:456:9:
455| in
456| structuredModule: elem structuredModule.key disabledKeys;
| ^
457|
… while calling the 'elem' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:456:27:
455| in
456| structuredModule: elem structuredModule.key disabledKeys;
| ^
457|
… while calling the 'concatMap' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:454:26:
453|
454| disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabledList;
| ^
455| in
… while calling the 'concatLists' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:486:24:
485| collectResults = modules: {
486| disabled = concatLists (catAttrs "disabled" modules);
| ^
487| inherit modules;
… while evaluating the attribute 'disabled'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:486:13:
485| collectResults = modules: {
486| disabled = concatLists (catAttrs "disabled" modules);
| ^
487| inherit modules;
… while calling the 'concatLists' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:486:24:
485| collectResults = modules: {
486| disabled = concatLists (catAttrs "disabled" modules);
| ^
487| inherit modules;
… while evaluating the attribute 'disabled'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:486:13:
485| collectResults = modules: {
486| disabled = concatLists (catAttrs "disabled" modules);
| ^
487| inherit modules;
… while calling the 'concatLists' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:486:24:
485| collectResults = modules: {
486| disabled = concatLists (catAttrs "disabled" modules);
| ^
487| inherit modules;
… while calling the 'catAttrs' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:486:37:
485| collectResults = modules: {
486| disabled = concatLists (catAttrs "disabled" modules);
| ^
487| inherit modules;
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:492:11:
491| collectResults (
492| imap1 (
| ^
493| n: x:
… while calling 'imap1'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/lists.nix:347:14:
346| */
347| imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
| ^
348|
… while calling the 'genList' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/lists.nix:347:20:
346| */
347| imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
| ^
348|
… while evaluating the second argument passed to builtins.genList
… while calling the 'length' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/lists.nix:347:60:
346| */
347| imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
| ^
348|
… while evaluating the attribute 'imports'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:645:9:
644| disabledModules = m.disabledModules or [ ];
645| imports = m.require or [ ] ++ m.imports or [ ];
| ^
646| options = { };
… while evaluating the attribute 'imports'
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:318:19:
317| ({ ... }: {
318| imports = submodule.modules ++ defaults ++ [ ./base.nix ];
| ^
319| _module.args.pkgs = pkgs;
… while evaluating an expression to select 'modules' on it
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:318:29:
317| ({ ... }: {
318| imports = submodule.modules ++ defaults ++ [ ./base.nix ];
| ^
319| _module.args.pkgs = pkgs;
… while evaluating submodule
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:318:29:
317| ({ ... }: {
318| imports = submodule.modules ++ defaults ++ [ ./base.nix ];
| ^
319| _module.args.pkgs = pkgs;
… from call site
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:269:23:
268| # submodule associated with
269| submodule = findSubmodule {
| ^
270| name = config.submodule;
… while calling 'findSubmodule'
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:34:19:
33|
34| findSubmodule = { name, version ? null, latest ? true }:
| ^
35| let
… while evaluating matchingModule
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:62:5:
61| in
62| matchingModule;
| ^
63|
… while calling the 'length' builtin
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:53:12:
52| matchingModule =
53| if length versionSortedSubmodules == 0
| ^
54| then
… while calling the 'sort' builtin
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:44:33:
43|
44| versionSortedSubmodules = sort
| ^
45| (s1: s2:
… while calling the 'filter' builtin
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:36:28:
35| let
36| matchingSubmodules = filter
| ^
37| (el:
… while calling anonymous lambda
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:37:10:
36| matchingSubmodules = filter
37| (el:
| ^
38| el.definition.name
… while evaluating the attribute 'definition.name'
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:252:64:
251| definition = {
252| inherit (evaledSubmodule.config.submodule) name description version tags exports;
| ^
253| };
… while evaluating an expression to select 'name' on it
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:252:64:
251| definition = {
252| inherit (evaledSubmodule.config.submodule) name description version tags exports;
| ^
253| };
… while evaluating an expression to select 'config.submodule' on it
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:252:30:
251| definition = {
252| inherit (evaledSubmodule.config.submodule) name description version tags exports;
| ^
253| };
… while evaluating evaledSubmodule
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:252:30:
251| definition = {
252| inherit (evaledSubmodule.config.submodule) name description version tags exports;
| ^
253| };
… while calling the 'elem' builtin
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:215:25:
214| evaledSubmodule =
215| if (!(elem "submodule" evaledSubmodule'.config._m.features))
| ^
216| then throw "no submodule defined"
… while evaluating the attribute 'config._m.features'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:361:9:
360| options = checked options;
361| config = checked (removeAttrs config [ "_module" ]);
| ^
362| _module = checked (config._module);
… while evaluating an expression to select '_m' on it
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodules.nix:215:66:
214| evaledSubmodule =
215| if (!(elem "submodule" evaledSubmodule'.config._m.features))
| ^
216| then throw "no submodule defined"
(17 duplicate frames omitted)
… while evaluating an expression to select 'kubernetes' on it
at /nix/store/f68rm3gsa1ffllyz4m35jvrck4db2f7i-source/experiments/3-submodules/submodule-generic-args.nix:56:7:
55| }
56| args.kubernetes
| ^
57| ];
… while evaluating args
at /nix/store/f68rm3gsa1ffllyz4m35jvrck4db2f7i-source/experiments/3-submodules/submodule-generic-args.nix:56:7:
55| }
56| args.kubernetes
| ^
57| ];
… from call site
at /nix/store/f68rm3gsa1ffllyz4m35jvrck4db2f7i-source/experiments/3-submodules/submodule-generic-args.nix:56:7:
55| }
56| args.kubernetes
| ^
57| ];
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:681:15:
680| extraArgs = mapAttrs (
681| name: _:
| ^
682| addErrorContext (context name) (
… while calling the 'addErrorContext' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:682:9:
681| name: _:
682| addErrorContext (context name) (
| ^
683| args.${name} or (addErrorContext
… while evaluating the module argument `args' in "/nix/store/f68rm3gsa1ffllyz4m35jvrck4db2f7i-source/experiments/3-submodules/submodule-generic-args.nix":
… while calling the 'addErrorContext' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:683:28:
682| addErrorContext (context name) (
683| args.${name} or (addErrorContext
| ^
684| "noting that argument `${name}` is not externally provided, so querying `_module.args` instead, requiring `config`"
… noting that argument `args` is not externally provided, so querying `_module.args` instead, requiring `config`
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:685:33:
684| "noting that argument `${name}` is not externally provided, so querying `_module.args` instead, requiring `config`"
685| config._module.args.${name}
| ^
686| )
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/types.nix:879:22:
878| value = mapAttrs (
879| n: v:
| ^
880| if lazy then
… while evaluating the attribute 'optionalValue.value'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1256:5:
1255|
1256| optionalValue = if isDefined then { value = mergedValue; } else { };
| ^
1257| };
… while evaluating an expression to select 'value' on it
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/types.nix:881:37:
880| if lazy then
881| v.optionalValue.value or elemType.emptyValue.value or v.mergedValue
| ^
882| else
… while evaluating isDefined
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1256:24:
1255|
1256| optionalValue = if isDefined then { value = mergedValue; } else { };
| ^
1257| };
… while evaluating defsFinal
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1254:17:
1253|
1254| isDefined = defsFinal != [ ];
| ^
1255|
… while evaluating the attribute 'values'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1186:9:
1185| {
1186| values = defsSorted;
| ^
1187| inherit (defsFiltered) highestPrio;
… while calling the 'any' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1180:14:
1179| # Avoid sorting if we don't have to.
1180| if any (def: def.value._type or "" == "order") defsFiltered.values then
| ^
1181| sortProperties defsFiltered.values
… while evaluating the attribute 'values'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1360:7:
1359| {
1360| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1361| inherit highestPrio;
… while calling the 'concatMap' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1360:16:
1359| {
1360| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1361| inherit highestPrio;
… while calling the 'concatMap' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1160:26:
1159| # Process mkMerge and mkIf properties.
1160| defsNormalized = concatMap (
| ^
1161| m:
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1161:11:
1160| defsNormalized = concatMap (
1161| m:
| ^
1162| map (
… while calling the 'map' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1162:11:
1161| m:
1162| map (
| ^
1163| value:
… while calling the 'addErrorContext' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1171:14:
1170| }
1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
| ^
1172| ) defs;
… while evaluating definitions from `/nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodule.nix':
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1171:80:
1170| }
1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
| ^
1172| ) defs;
… while calling 'dischargeProperties'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1311:5:
1310| dischargeProperties =
1311| def:
| ^
1312| if def._type or "" == "merge" then
… while evaluating an expression to select '_type' on it
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1312:8:
1311| def:
1312| if def._type or "" == "merge" then
| ^
1313| concatMap dischargeProperties def.contents
… while evaluating def
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1312:8:
1311| def:
1312| if def._type or "" == "merge" then
| ^
1313| concatMap dischargeProperties def.contents
… while evaluating the attribute 'value'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/types.nix:819:15:
818| inherit (def) file;
819| value = v;
| ^
820| }) def.value
… from call site
at /nix/store/jy9fxccigmgkdiby446l5bjdvirwa2hn-source/modules/submodule.nix:54:47:
53|
54| config._module.args.args = config.submodule.args;
| ^
55| config._m.features = [ "submodule" ];
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/attrsets.nix:1188:17:
1187| mapAttrs (
1188| name: value:
| ^
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/attrsets.nix:1189:85:
1188| name: value:
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^
1190| );
… while calling anonymous lambda
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:275:71:
274| # For definitions that have an associated option
275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
276|
… while evaluating the attribute 'value'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1118:7:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while calling the 'addErrorContext' builtin
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1118:15:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while evaluating the option `submodule.args':
… while evaluating the attribute 'mergedValue'
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1192:5:
1191| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
1192| mergedValue =
| ^
1193| if isDefined then
… caused by explicit throw
at /nix/store/0lc6kbmhkqk8vmgflpn2n1d1qb3vl2f5-source/lib/modules.nix:1211:9:
1210| # handling. If changed here, please change it there too.)
1211| throw
| ^
1212| "The option `${showOption loc}' was accessed but has no value defined. Try setting the option.";
error: The option `submodule.args' was accessed but has no value defined. Try setting the option.
```
</p>
</details>
```
error: The option `submodule.args' was accessed but has no value defined. Try setting the option.
```
It seems to be cause by this https://github.com/hall/kubenix/pull/89. When I just revert the change in `modules/submodule.nix` it works again.
关闭于 2026-01-03 2 条评论