Skip to content

Commit be2572e

Browse files
committed
Make inputDrvs JSON schema more precise
It now captures the stable non-recursive format (just an output set) and the unstable recursive form for dynamic derivations.
1 parent d4c69c7 commit be2572e

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

doc/manual/source/protocols/json/schema/derivation-v3.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@ properties:
103103
> ```
104104
>
105105
> specifies that this derivation depends on the `dev` output of `curl`, and the `out` output of `unzip`.
106+
additionalProperties:
107+
title: Store Path
108+
description: |
109+
A store path to a derivation, mapped to the outputs of that derivation.
110+
oneOf:
111+
- "$ref": "#/$defs/outputNames"
112+
- "$ref": "#/$defs/dynamicOutputs"
106113

107114
system:
108115
type: string
@@ -167,3 +174,28 @@ properties:
167174
title: Expected hash value
168175
description: |
169176
For fixed-output derivations, the expected content hash in base-16.
177+
178+
outputName:
179+
type: string
180+
title: Output name
181+
description: Name of the derivation output to depend on
182+
183+
outputNames:
184+
type: array
185+
title: Output Names
186+
description: Set of names of derivation outputs to depend on
187+
items:
188+
"$ref": "#/$defs/outputName"
189+
190+
dynamicOutputs:
191+
type: object
192+
title: Dynamic Outputs
193+
description: |
194+
**Experimental feature**: [`dynamic-derivations`](@docroot@/development/experimental-features.md#xp-feature-dynamic-derivations)
195+
196+
This recursive data type allows for depending on outputs of outputs.
197+
properties:
198+
outputs:
199+
"$ref": "#/$defs/outputNames"
200+
dynamicOutputs:
201+
"$ref": "#/$defs/dynamicOutputs"

0 commit comments

Comments
 (0)