Skip to content

Commit 264ea5a

Browse files
Ericson2314xokdvium
andcommitted
Parse deriving paths in DerivationOptions
This is an example of "parse not validate". We should not have strings / placeholders in our AST for `DerivationOptions` because they introduce laxity. We should up-front parse everything to the single derived paths that is actually meant. Co-authored-by: Sergei Zimmerman <sergei@zimmerman.foo>
1 parent 5b15544 commit 264ea5a

22 files changed

Lines changed: 717 additions & 257 deletions

src/libstore-tests/data/derivation/ca/all_set.json

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
"allowSubstitutes": false,
55
"exportReferencesGraph": {
66
"refs1": [
7-
"/164j69y6zir9z0339n8pjigg3rckinlr77bxsavzizdaaljb7nh9"
7+
{
8+
"drvPath": "j56sf12rxpcv5swr14vsjn5cwm6bj03h-foo.drv",
9+
"output": "out"
10+
}
811
],
912
"refs2": [
10-
"/nix/store/qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv"
13+
"qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv"
1114
]
1215
},
1316
"impureEnvVars": [
@@ -20,16 +23,28 @@
2023
"outputChecks": {
2124
"forAllOutputs": {
2225
"allowedReferences": [
23-
"/164j69y6zir9z0339n8pjigg3rckinlr77bxsavzizdaaljb7nh9"
26+
{
27+
"drvPath": "j56sf12rxpcv5swr14vsjn5cwm6bj03h-foo.drv",
28+
"output": "out"
29+
}
2430
],
2531
"allowedRequisites": [
26-
"/0nr45p69vn6izw9446wsh9bng9nndhvn19kpsm4n96a5mycw0s4z"
32+
{
33+
"drvPath": "j56sf12rxpcv5swr14vsjn5cwm6bj03h-foo.drv",
34+
"output": "dev"
35+
}
2736
],
2837
"disallowedReferences": [
29-
"/0nyw57wm2iicnm9rglvjmbci3ikmcp823czdqdzdcgsnnwqps71g"
38+
{
39+
"drvPath": "qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv",
40+
"output": "out"
41+
}
3042
],
3143
"disallowedRequisites": [
32-
"/07f301yqyz8c6wf6bbbavb2q39j4n8kmcly1s09xadyhgy6x2wr8"
44+
{
45+
"drvPath": "qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv",
46+
"output": "dev"
47+
}
3348
],
3449
"ignoreSelfRefs": true,
3550
"maxClosureSize": null,

src/libstore-tests/data/derivation/ca/structuredAttrs_all_set.json

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
"allowSubstitutes": false,
55
"exportReferencesGraph": {
66
"refs1": [
7-
"/164j69y6zir9z0339n8pjigg3rckinlr77bxsavzizdaaljb7nh9"
7+
{
8+
"drvPath": "j56sf12rxpcv5swr14vsjn5cwm6bj03h-foo.drv",
9+
"output": "out"
10+
}
811
],
912
"refs2": [
10-
"/nix/store/qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv"
13+
"qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv"
1114
]
1215
},
1316
"impureEnvVars": [
@@ -23,10 +26,16 @@
2326
"allowedReferences": null,
2427
"allowedRequisites": null,
2528
"disallowedReferences": [
26-
"/0nyw57wm2iicnm9rglvjmbci3ikmcp823czdqdzdcgsnnwqps71g"
29+
{
30+
"drvPath": "qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv",
31+
"output": "out"
32+
}
2733
],
2834
"disallowedRequisites": [
29-
"/07f301yqyz8c6wf6bbbavb2q39j4n8kmcly1s09xadyhgy6x2wr8"
35+
{
36+
"drvPath": "qnml92yh97a6fbrs2m5qg5cqlc8vni58-bar.drv",
37+
"output": "dev"
38+
}
3039
],
3140
"ignoreSelfRefs": false,
3241
"maxClosureSize": null,
@@ -43,10 +52,16 @@
4352
},
4453
"out": {
4554
"allowedReferences": [
46-
"/164j69y6zir9z0339n8pjigg3rckinlr77bxsavzizdaaljb7nh9"
55+
{
56+
"drvPath": "j56sf12rxpcv5swr14vsjn5cwm6bj03h-foo.drv",
57+
"output": "out"
58+
}
4759
],
4860
"allowedRequisites": [
49-
"/0nr45p69vn6izw9446wsh9bng9nndhvn19kpsm4n96a5mycw0s4z"
61+
{
62+
"drvPath": "j56sf12rxpcv5swr14vsjn5cwm6bj03h-foo.drv",
63+
"output": "dev"
64+
}
5065
],
5166
"disallowedReferences": [],
5267
"disallowedRequisites": [],

src/libstore-tests/data/derivation/ia/all_set.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
"allowSubstitutes": false,
55
"exportReferencesGraph": {
66
"refs1": [
7-
"/nix/store/p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
7+
"p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
88
],
99
"refs2": [
10-
"/nix/store/vj2i49jm2868j2fmqvxm70vlzmzvgv14-bar.drv"
10+
"vj2i49jm2868j2fmqvxm70vlzmzvgv14-bar.drv"
1111
]
1212
},
1313
"impureEnvVars": [
@@ -20,16 +20,16 @@
2020
"outputChecks": {
2121
"forAllOutputs": {
2222
"allowedReferences": [
23-
"/nix/store/p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
23+
"p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
2424
],
2525
"allowedRequisites": [
26-
"/nix/store/z0rjzy29v9k5qa4nqpykrbzirj7sd43v-foo-dev"
26+
"z0rjzy29v9k5qa4nqpykrbzirj7sd43v-foo-dev"
2727
],
2828
"disallowedReferences": [
29-
"/nix/store/r5cff30838majxk5mp3ip2diffi8vpaj-bar"
29+
"r5cff30838majxk5mp3ip2diffi8vpaj-bar"
3030
],
3131
"disallowedRequisites": [
32-
"/nix/store/9b61w26b4avv870dw0ymb6rw4r1hzpws-bar-dev"
32+
"9b61w26b4avv870dw0ymb6rw4r1hzpws-bar-dev"
3333
],
3434
"ignoreSelfRefs": true,
3535
"maxClosureSize": null,

src/libstore-tests/data/derivation/ia/structuredAttrs_all_set.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
"allowSubstitutes": false,
55
"exportReferencesGraph": {
66
"refs1": [
7-
"/nix/store/p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
7+
"p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
88
],
99
"refs2": [
10-
"/nix/store/vj2i49jm2868j2fmqvxm70vlzmzvgv14-bar.drv"
10+
"vj2i49jm2868j2fmqvxm70vlzmzvgv14-bar.drv"
1111
]
1212
},
1313
"impureEnvVars": [
@@ -23,10 +23,10 @@
2323
"allowedReferences": null,
2424
"allowedRequisites": null,
2525
"disallowedReferences": [
26-
"/nix/store/r5cff30838majxk5mp3ip2diffi8vpaj-bar"
26+
"r5cff30838majxk5mp3ip2diffi8vpaj-bar"
2727
],
2828
"disallowedRequisites": [
29-
"/nix/store/9b61w26b4avv870dw0ymb6rw4r1hzpws-bar-dev"
29+
"9b61w26b4avv870dw0ymb6rw4r1hzpws-bar-dev"
3030
],
3131
"ignoreSelfRefs": false,
3232
"maxClosureSize": null,
@@ -43,10 +43,10 @@
4343
},
4444
"out": {
4545
"allowedReferences": [
46-
"/nix/store/p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
46+
"p0hax2lzvjpfc2gwkk62xdglz0fcqfzn-foo"
4747
],
4848
"allowedRequisites": [
49-
"/nix/store/z0rjzy29v9k5qa4nqpykrbzirj7sd43v-foo-dev"
49+
"z0rjzy29v9k5qa4nqpykrbzirj7sd43v-foo-dev"
5050
],
5151
"disallowedReferences": [],
5252
"disallowedRequisites": [],

0 commit comments

Comments
 (0)