Release 3.16.0 (2026-02-12)
- Based on upstream Nix 2.33.3.
Support .gitattributes in subdirectories
For performance, the Git backwards compatibility hack was only applied to repositories that had a .gitattributes in the root directory.
However, it is possible to have a .gitattributes file in a subdirectory, and there are real-world repos that do this, so we have dropped that restriction.
PR: DeterminateSystems/nix-src#335
Fix hung downloads when http-connections = 0
When we started limiting the number of active cURL handles in DeterminateSystems/nix-src#315, we did not take into account that http-connections = 0 is a special value that means, roughly "as many connections as possible" (the exact behavior is up to cURL).
This should now be fixed.
PR: DeterminateSystems/nix-src#327
builtins.getFlake now supports relative paths
builtins.getFlake now supports using relative paths, like:
builtins.getFlake ./..
instead of the hacky
builtins.getFlake (builtins.flakeRefToString { type = "path"; path = self.sourceInfo.outPath; narHash = self.narHash; });
Note that allowing builtins.getFlake to fetch from store paths is probably a bad idea, since it's ambiguous when using chroot stores, so a warning will be printed when this is encountered.
PRs:
Fixed a bug with too many open files
Recently, some users have reported seeing errors like:
error: creating git packfile indexer: failed to create temporary file '/Users/anon/.cache/nix/tarball-cache-v2/objects/pack/pack_git2_56d617039ac17c2b': Too many open files
This should now be fixed.
PR: DeterminateSystems/nix-src#347
Full Changelog: v3.15.2...v3.16.0