Home Explore Blog Models CI



nix

1st chunk of `doc/manual/source/release-notes/rl-2.14.md`
2d0ca9d6382d7eced241e18e35e6ca5ac3cc46c60c5de93100000001000003d0
# Release 2.14 (2023-02-28)

* A new function `builtins.readFileType` is available. It is similar to
  `builtins.readDir` but acts on a single file or directory.

* In flakes, the `.outPath` attribute of a flake now always refers to
  the directory containing the `flake.nix`. This was not the case for
  when `flake.nix` was in a subdirectory of e.g. a Git repository.
  The root of the source of a flake in a subdirectory is still
  available in `.sourceInfo.outPath`.

* In derivations that use structured attributes, you can now use `unsafeDiscardReferences`
  to disable scanning a given output for runtime dependencies:
  ```nix
  __structuredAttrs = true;
  unsafeDiscardReferences.out = true;
  ```
  This is useful e.g. when generating self-contained filesystem images with
  their own embedded Nix store: hashes found inside such an image refer
  to the embedded store and not to the host's Nix store.

  This requires the `discard-references` experimental feature.

Title: Nix Release 2.14 Notes
Summary
Release 2.14 introduces several new features and changes. A new function, `builtins.readFileType`, is now available, similar to `builtins.readDir` but for single files or directories. For flakes, the `.outPath` attribute consistently points to the directory containing `flake.nix`, even if it's in a subdirectory; the original root source path is still accessible via `.sourceInfo.outPath`. Additionally, derivations using structured attributes can now employ `unsafeDiscardReferences` to disable runtime dependency scanning for specific outputs, which is useful for creating self-contained filesystem images, provided the `discard-references` experimental feature is enabled.