Commit graph

17 commits

Author SHA1 Message Date
Zhaofeng Li
23f4dfdc24 Add support for passing a Nix expression on the command line
Fixes #38.
2022-08-17 10:59:44 -06:00
83773704be Add Python Black formatter 2022-04-26 21:40:31 +12:00
516fdc8f6c Add treefmt
And use it in place of editorconfig/nixpkgs-fmt checks
2022-04-26 21:20:24 +12:00
61c9f4cfcc Replace internal attr string representation with an array
This ensures correct handling of attrnames with a dot in them and will
not throw errors about illegal attrnames.

Additionally this escapes any attributes containing dots in the JSON
output and adds another field called `attrPath` which contains the
attribute path as a list.

Example output:
```
{
  "attr": "hello",
  "attrPath": [
    "hello"
  ],
  "drvPath": "/nix/store/n204jib73z55cp9s0rmw1c5v5q528j7v-hello-2.12.drv",
  "name": "hello-2.12",
  "outputs": {
    "out": "/nix/store/h59dfk7dwrn7d2csykh9z9xm2miqmrnz-hello-2.12"
  },
  "system": "x86_64-linux"
}
```
2022-04-26 19:43:56 +12:00
c1bbb11c5d Add support for recurseForDerivations
This will respect `recurseForDerivations` when iterating over attrsets.

Example expression:
``` nix
{ system ? builtins.currentSystem }:
{
  recurseForDerivations = true;

  # This should build as it's in the top-level attrset
  drvA = derivation {
    inherit system;
    name = "drvA";
    builder = ":";
  };

  dontRecurse = {
    # This shouldn't build as `recurseForDerivations = true;` is not set
    # recurseForDerivations = true;

    # This should not build
    drvB = derivation {
      inherit system;
      name = "drvA";
      builder = ":";
    };
  };

  recurse = {
    # This should build
    recurseForDerivations = true;

    # This should not build
    drvC = derivation {
      inherit system;
      name = "drvC";
      builder = ":";
    };
  };

}
```
2022-04-25 22:11:53 +12:00
813c5d7aae Add test for a job with a nested attrset 2022-04-22 20:36:52 +12:00
3268f3a6af Add flag to enable meta
I removed meta from the output in 434376f8e1 with the intention of adding it back gated by a flag, but that never happened.

Adding meta is quite a substantial increase in output size and has some non-trivial performance impact at scale, so it's best to leave it as opt-in.
2022-01-06 13:40:21 +13:00
Tom Bereknyei
d36d77c873 use outPath 2022-01-04 14:16:36 -05:00
26948992b3 also expose store path in json 2021-12-31 12:00:04 +01:00
0d3e7c2240
Add nixpkgs-fmt + associated checks 2021-09-24 22:18:46 -05:00
0648bc0cb8
Select flake output by the flake fragment 2021-08-26 18:48:56 -05:00
434376f8e1
Remove outputs from JSON output
The output of the evaluator should only include either the full
derivation (not yet implemented) or fields not directly accessible
from the drv such as meta.

Right now the output is a fairly arbitrary selection of fields.
2021-08-26 18:48:56 -05:00
a6171c9a62
Switch to streaming output (using line delimited JSON) 2021-08-25 13:58:42 -05:00
0c93e00635
Fix pytest tests 2021-08-25 03:36:32 -05:00
174e735183
Rename project to nix-eval-jobs
We are getting rid of Hydra specific hacks and making this a more
generically useful component for any projects that need to run
large evaluations.
2021-08-24 14:06:27 -05:00
76c3e68ccd
run tests in CI 2021-03-21 19:31:57 +01:00
71cbe4eab4
output missing/substitutable derivations in eval output 2021-03-21 19:05:11 +01:00