Release 2.18 (2023-09-20)
-
Two new builtin functions,
builtins.parseFlakeRef
andbuiltins.flakeRefToString
, have been added. These functions are useful for converting between flake references encoded as attribute sets and URLs. -
builtins.toJSON
now prints --show-trace items for the path in which it finds an evaluation error. -
Error messages regarding malformed input to
nix derivation add
are now clearer and more detailed. -
The
discard-references
feature has been stabilized. This means that the unsafeDiscardReferences attribute is no longer guarded by an experimental flag and can be used freely. -
The JSON output for derived paths which are store paths is now a string, not an object with a single
path
field. This only affectsnix-build --json
when "building" non-derivation things like fetched sources, which is a no-op. -
A new builtin
outputOf
has been added. It is part of thedynamic-derivations
experimental feature. -
Flake follow paths at depths greater than 2 are now handled correctly, preventing "follows a non-existent input" errors.
-
nix-store --query
gained a new type of query:--valid-derivers
. It returns all.drv
files in the local store that can be used to build the output passed in argument. This is in contrast to--deriver
, which returns the single.drv
file that was actually used to build the output passed in argument. In case the output was substituted from a binary cache, this.drv
file may only exist on said binary cache and not locally.