Nix 2.8.0 released

We’re pleased to announce the availability of Nix 2.8.0. It will be available from NixOS - Getting Nix / NixOS.

Here are the release notes:

  • New experimental command: nix fmt, which applies a formatter defined by the formatter.<system> flake output to the Nix expressions in a flake.

  • Various Nix commands can now read expressions from standard input using --file -.

  • New experimental builtin function builtins.fetchClosure that copies a closure from a binary cache at evaluation time and rewrites it to content-addressed form (if it isn’t already). Like builtins.storePath, this allows importing pre-built store paths; the difference is that it doesn’t require the user to configure binary caches and trusted public keys.

    This function is only available if you enable the experimental feature fetch-closure.

  • New experimental feature: impure derivations. These are derivations that can produce a different result every time they’re built. Here is an example:

    stdenv.mkDerivation { name = “impure”; __impure = true; # marks this derivation as impure buildCommand = “date > $out”; }

    Running nix build twice on this expression will build the derivation twice, producing two different content-addressed store paths. Like fixed-output derivations, impure derivations have access to the network. Only fixed-output derivations and impure derivations can depend on an impure derivation.

  • nix store make-content-addressable has been renamed to nix store make-content-addressed.

  • The nixosModule flake output attribute has been renamed consistent with the .default renames in Nix 2.7.

    • nixosModulenixosModules.default

    As before, the old output will continue to work, but nix flake check will issue a warning about it.

  • nix run is now stricter in what it accepts: members of the apps flake output are now required to be apps (as defined in the manual), and members of packages or legacyPackages must be derivations (not apps).

The next release is scheduled for 2022-05-30.

Thank you to all the contributors!