Since we haven't released v2 yet (2.32 has v1) we can just update this in-place and avoid version churn. Note that as a nice side effect of using the standard `Hash` JSON impl, we don't neeed this `hashFormat` parameter anymore.
1.8 KiB
| synopsis | prs | issues |
|---|---|---|
| JSON format changes for store path info and derivations |
JSON formats for store path info and derivations have been updated with new versions and structured fields.
Store Path Info JSON (Version 2)
The store path info JSON format has been updated from version 1 to version 2:
-
Added
versionfield:All store path info JSON now includes
"version": 2. -
Structured
cafield:Content address is now a structured JSON object instead of a string:
- Old:
"ca": "fixed:r:sha256:1abc..." - New:
"ca": {"method": "nar", "hash": {"algorithm": "sha256", "format": "base64", "hash": "EMIJ+giQ..."}} - Still
nullvalues for input-addressed store objects
- Old:
-
Structured hash fields:
Hash values (
narHashanddownloadHash) are now structured JSON objects instead of strings:- Old:
"narHash": "sha256:FePFYIlMuycIXPZbWi7LGEiMmZSX9FMbaQenWBzm1Sc=" - New:
"narHash": {"algorithm": "sha256", "format": "base64", "hash": "FePFYIlM..."} - Same structure applies to
downloadHashin NAR info contexts
- Old:
Nix currently only produces, and doesn't consume this format.
Affected command: nix path-info --json
Derivation JSON (Version 4)
The derivation JSON format has been updated from version 3 to version 4:
-
Restructured inputs:
Inputs are now nested under an
inputsobject:- Old:
"inputSrcs": [...], "inputDrvs": {...} - New:
"inputs": {"srcs": [...], "drvs": {...}}
- Old:
-
Consistent content addresses:
Floating content-addressed outputs now use structured JSON format. This is the same format as
cain in store path info (after the new version).
Version 3 and earlier formats are not accepted when reading.
Affected command: nix derivation, namely it's show and add sub-commands.