Release 3.9.0 (2025-08-26)

What's Changed

Build-time flake inputs

Some of our users have hundreds or thousands of flake inputs. In those cases, it is painfully slow for Nix to fetch all the inputs during evaluation of the flake.

Determinate Nix has an experimental feature for deferring the fetching to build time of the dependent derivations.

This is currently in developer preview. If you would like to try it, add the experimental feature to your /etc/nix/nix.custom.conf:

extra-experimental-features = build-time-fetch-tree

Then, mark an input to be fetched at build time:

inputs.example = {
  type = "github";
  owner = "DeterminateSystems";
  repo = "example";
  flake = false; # <-- currently required
  buildTime = true;
};

Let us know what you think!

PR: DeterminateSystems/nix-src#49

Corrected inconsistent behavior of nix flake check

Users reported that nix flake check would not consistently validate the entire flake.

We've fixed this issue and improved our testing around nix flake check.

PR: DeterminateSystems/nix-src#182

Full Changelog: v3.8.6...v3.9.0