locally trying to evaluate pipelines appears to fail at cheddar evaluation

#166
Opened by zseri at 2021-12-28T01·12+00

$ nix-build --arg nixpkgsConfig "import $(realpath ~/.config/nixpkgs/config.nix)" -A ops.pip elines.depot -o pipeline --show-trace error: attribute 'package' missing

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/attrsets.nix:259:23:

      258|   mapAttrsToList = f: attrs:
      259|     map (name: f name attrs.${name}) (attrNames attrs);
         |                       ^
      260|

   … while evaluating the attribute 'v'

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:130:44:

      129|         )
      130|         {} (mapAttrsToList (k: v: { inherit k v; }) attrs);
         |                                            ^
      131|     in

   … while evaluating 'tomlTy'

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:102:12:

      101|
      102|   tomlTy = x:
         |            ^
      103|     if typeOf x == "string" then "string" else

   … from call site

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:126:20:

      125|             let
      126|               ty = tomlTy x.v;
         |                    ^
      127|             in

   … while evaluating anonymous lambda

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:124:16:

      123|         (
      124|           acc: x:
         |                ^
      125|             let

   … from call site

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:85:14:

       84|         then nul
       85|         else op (foldl' (n - 1)) (elemAt list n);
         |              ^
       86|     in foldl' (length list - 1);

   … while evaluating 'foldl''

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:82:16:

       81|     let
       82|       foldl' = n:
         |                ^
       83|         if n == -1

   … from call site

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:85:18:

       84|         then nul
       85|         else op (foldl' (n - 1)) (elemAt list n);
         |                  ^
       86|     in foldl' (length list - 1);

   … while evaluating anonymous lambda

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:124:16:

      123|         (
      124|           acc: x:
         |                ^
      125|             let

   … from call site

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:85:14:

       84|         then nul
       85|         else op (foldl' (n - 1)) (elemAt list n);
         |              ^
       86|     in foldl' (length list - 1);

   … while evaluating 'foldl''

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:82:16:

       81|     let
       82|       foldl' = n:
         |                ^
       83|         if n == -1

   … from call site

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:86:8:

       85|         else op (foldl' (n - 1)) (elemAt list n);
       86|     in foldl' (length list - 1);
         |        ^
       87|

   … while evaluating 'foldl'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:80:20:

       79|   */
       80|   foldl = op: nul: list:
         |                    ^
       81|     let

   … from call site

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:122:14:

      121|     let
      122|       byTy = lib.foldl
         |              ^
      123|         (

   … while evaluating 'concatMapStringsSep'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/strings.nix:110:5:

      109|     # List of input strings
      110|     list: concatStringsSep sep (map f list);
         |     ^
      111|

   … from call site

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:132:7:

      131|     in
      132|       concatMapStringsSep "\n"
         |       ^
      133|         (kv: concatStringsSep "\n" (outputKeyVal kv.k kv.v))

   … while evaluating 'toTOML'

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/to-toml.nix:119:12:

      118|
      119|   toTOML = attrs:
         |            ^
      120|     assert (typeOf attrs == "set");

   … from call site

   at /nix/store/xvaxaf40sssgv1v2vd6s1r7z2r95i412-source/builtins/default.nix:11:44:

       10|   toTOML = import ./to-toml.nix { inherit lib; };
       11|   writeTOML = name: attrs: writeText name (toTOML attrs);
         |                                            ^
       12|

   … while evaluating the attribute 'text' of the derivation 'Cargo.lock'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/pkgs/stdenv/generic/make-derivation.nix:205:7:

      204|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
      205|       name =
         |       ^
      206|         let

   … while evaluating the attribute 'buildCommand' of the derivation 'dummy-src'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/pkgs/stdenv/generic/make-derivation.nix:205:7:

      204|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
      205|       name =
         |       ^
      206|         let

   … while evaluating the attribute 'src' of the derivation 'rust-package-deps-unknown'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/pkgs/stdenv/generic/make-derivation.nix:205:7:

      204|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
      205|       name =
         |       ^
      206|         let

   … while evaluating the attribute 'builtDependencies' of the derivation 'rust-package-unknown'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/pkgs/stdenv/generic/make-derivation.nix:205:7:

      204|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
      205|       name =
         |       ^
      206|         let

   … while evaluating the attribute 'tools.cheddar.outPath'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/customisation.nix:164:7:

      163|       drvPath = assert condition; drv.drvPath;
      164|       outPath = assert condition; drv.outPath;
         |       ^
      165|     };

   … while evaluating 'isDerivation'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/attrsets.nix:330:18:

      329|   */
      330|   isDerivation = x: isAttrs x && x ? type && x.type == "derivation";
         |                  ^
      331|

   … from call site

   at /home/zseri/devel/depot/nix/utils/default.nix:20:8:

       19|   storePathName = p:
       20|     if lib.isDerivation p
         |        ^
       21|     then p.name

   … while evaluating 'storePathName'

   at /home/zseri/devel/depot/nix/utils/default.nix:19:19:

       18|   */
       19|   storePathName = p:
         |                   ^
       20|     if lib.isDerivation p

   … from call site

   at /home/zseri/devel/depot/nix/utils/tests/default.nix:94:8:

       93|     (assertEq "base name of a store path string"
       94|       (storePathName cheddarStorePath) depot.tools.cheddar.name)
         |        ^
       95|     (assertEq "base name of a path within a store path"

   … while evaluating '__functor'

[... yants stuff omitted ...]

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/attrsets.nix:356:25:

      355|   */
      356|   optionalAttrs = cond: as: if cond then as else {};
         |                         ^
      357|

   … from call site

[... yants stuff omitted ...]

   … while evaluating anonymous lambda

   at /home/zseri/devel/depot/nix/runTestsuite/default.nix:99:21:

       98|   assertBoolContext = defun [ AssertErrorContext string bool AssertResult ]
       99|     (context: desc: res:
         |                     ^
      100|       if res

   … from call site

[... yants stuff omitted ...]

   at /home/zseri/devel/depot/nix/runTestsuite/default.nix:114:9:

      113|       in
      114|         assertBoolContext context desc (left == right));
         |         ^
      115|

   … while evaluating anonymous lambda

   at /home/zseri/devel/depot/nix/runTestsuite/default.nix:110:18:

      109|   assertEq = defun [ string any any AssertResult ]
      110|     (desc: left: right:
         |                  ^
      111|       let

   … from call site

[... yants stuff omitted ...]

   at /home/zseri/devel/depot/nix/utils/tests/default.nix:93:6:

       92|       (storePathName depot.tools.cheddar) depot.tools.cheddar.name)
       93|     (assertEq "base name of a store path string"
         |      ^
       94|       (storePathName cheddarStorePath) depot.tools.cheddar.name)

   … while evaluating 'checkType'

[... yants stuff omitted ...]

   at /home/zseri/devel/depot/nix/runTestsuite/default.nix:53:7:

       52|       ok = res.right;
       53|       err = res.wrong;
         |       ^
       54|     };

   … while evaluating anonymous lambda

   at /home/zseri/devel/depot/nix/runTestsuite/default.nix:141:12:

      140|   runTestsuite = defun [ string (list ItResult) drv ]
      141|     (name: itResults:
         |            ^
      142|       let

   … from call site

[... yants stuff omitted ...]

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/attrsets.nix:356:25:

      355|   */
      356|   optionalAttrs = cond: as: if cond then as else {};
         |                         ^
      357|

   … from call site

[... yants stuff omitted ...]

   at /home/zseri/devel/depot/nix/utils/tests/default.nix:104:1:

      103|
      104| runTestsuite "nix.utils" [
         | ^
      105|   pathPredicates

   … while evaluating anonymous lambda

   at /home/zseri/devel/depot/nix/utils/tests/default.nix:1:1:

        1| { depot, lib, ... }:
         | ^
        2|

   … from call site

   at /home/zseri/devel/depot/nix/readTree/default.nix:68:10:

       67|     then builtins.throw "readTree: trying to import ${toString path}, but it’s a ${pathType}, you need to make it a function like { depot, pkgs, ... }"
       68|     else importedFile (filter parts (argsWithPath args parts));
         |          ^
       69|

   … while evaluating 'importFile'

   at /home/zseri/devel/depot/nix/readTree/default.nix:59:47:

       58|   # Import a file and enforce our calling convention
       59|   importFile = args: scopedArgs: path: parts: filter:
         |                                               ^
       60|   let

   … from call site

   at /home/zseri/devel/depot/nix/readTree/default.nix:81:14:

       80|         then { __readTree = []; }
       81|         else importFile args scopedArgs initPath parts argsFilter;
         |              ^
       82|

   … while evaluating 'readTree'

   at /home/zseri/devel/depot/nix/readTree/default.nix:74:14:

       73|
       74|   readTree = { args, initPath, rootDir, parts, argsFilter, scopedArgs }:
         |              ^
       75|     let

   … from call site

   at /home/zseri/devel/depot/nix/readTree/default.nix:93:17:

       92|         name = c;
       93|         value = readTree {
         |                 ^
       94|           inherit argsFilter scopedArgs;

   … while evaluating the attribute 'tests'

   at /home/zseri/devel/depot/nix/readTree/default.nix:93:9:

       92|         name = c;
       93|         value = readTree {
         |         ^
       94|           inherit argsFilter scopedArgs;

   … while evaluating anonymous lambda

   at /home/zseri/devel/depot/nix/readTree/default.nix:149:44:

      148|       # Include eligible children of the node
      149|       ++ concatMap (gather eligible) (map (attr: node."${attr}") node.__readTreeChildren)
         |                                            ^
      150|       # Include specified sub-targets of the node

   … from call site

   … while evaluating 'gather'

   at /home/zseri/devel/depot/nix/readTree/default.nix:144:22:

      143|   #             should be included in the build.
      144|   gather = eligible: node:
         |                      ^
      145|     if node ? __readTree then

   … from call site

   at /home/zseri/devel/depot/nix/readTree/default.nix:149:10:

      148|       # Include eligible children of the node
      149|       ++ concatMap (gather eligible) (map (attr: node."${attr}") node.__readTreeChildren)
         |          ^
      150|       # Include specified sub-targets of the node

   … while evaluating 'gather'

[... repeating readTree snippets omitted ...]

   at /home/zseri/devel/depot/nix/readTree/default.nix:144:22:

      143|   #             should be included in the build.
      144|   gather = eligible: node:
         |                      ^
      145|     if node ? __readTree then

   … from call site

   at /home/zseri/devel/depot/default.nix:100:16:

       99|   # attribute set (which does not have a __readTree attribute).
      100|   ci.targets = readTree.gather eligible (self // {
         |                ^
      101|     # remove the pipelines themselves from the set over which to

   … while evaluating the attribute 'ci.targets'

   at /home/zseri/devel/depot/default.nix:100:3:

       99|   # attribute set (which does not have a __readTree attribute).
      100|   ci.targets = readTree.gather eligible (self // {
         |   ^
      101|     # remove the pipelines themselves from the set over which to

   … while evaluating 'imap1'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:116:14:

      115|   */
      116|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
         |              ^
      117|

   … from call site

   at /home/zseri/devel/depot/ops/pipelines/depot.nix:103:16:

      102|     chunkId = idx: toString (idx / n + 1);
      103|     assigned = lib.imap1 (idx: value: { inherit value ; chunk = chunkId idx; }) list;
         |                ^
      104|     unchunk = mapAttrs (_: elements: map (e: e.value) elements);

   … while evaluating 'groupBy''

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/lib/lists.nix:343:29:

      342|   */
      343|   groupBy' = op: nul: pred: lst:
         |                             ^
      344|     foldl' (r: e:

   … from call site

   at /home/zseri/devel/depot/ops/pipelines/depot.nix:105:15:

      104|     unchunk = mapAttrs (_: elements: map (e: e.value) elements);
      105|   in unchunk (lib.groupBy (e: e.chunk) assigned);
         |               ^
      106|

   … while evaluating 'chunksOf'

   at /home/zseri/devel/depot/ops/pipelines/depot.nix:101:17:

      100|   # index, and then grouping all elements by their chunk ID.
      101|   chunksOf = n: list: let
         |                 ^
      102|     chunkId = idx: toString (idx / n + 1);

   … from call site

   at /home/zseri/devel/depot/ops/pipelines/depot.nix:117:60:

      116|
      117|   pipelineChunks = attrValues (mapAttrs makePipelineChunk (chunksOf 256 allSteps));
         |                                                            ^
      118|

   … while evaluating the attribute 'buildCommand' of the derivation 'depot-pipeline'

   at /nix/store/m6p4m1rs0xi67kaa25bm1rqkm4633qjr-source/pkgs/stdenv/generic/make-derivation.nix:205:7:

      204|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
      205|       name =
         |       ^
      206|         let

  1. Eval of the pipeline works fine in general, so I guess it would be relevant to post your nixpkgs config as well?

    sterni at 2021-12-28T11·43+00

  2. FWIW this seems like an issue in naersk.

    sterni at 2021-12-28T11·44+00

  3. config: { contentAddressedByDefault = true; }

    I could rerun it after the initial run without the config (it was only necessary for me to benefit from already fetched deps of the FOD of naersk). Yes, seems like an issue in naersk.

    zseri at 2021-12-28T18·04+00