Skip to content

Releases: DeterminateSystems/nix-src

v3.17.2

27 Mar 20:43
cb9989b

Choose a tag to compare

v3.17.2 Pre-release
Pre-release

Release 3.17.2 (2026-03-27)

What's Changed

Bug fixes

Full Changelog: v3.17.1...v3.17.2

v3.17.1

19 Mar 19:07
8483ea6

Choose a tag to compare

Release 3.17.1 (2026-03-18)

What's Changed

Provenance now supports "build-time" provenance tags

Users can now specify key/value tags to attach to a build's provenance.
For example, the nix-installer-action now attaches the following properties to each build:

  • github_workflow_ref
  • github_workflow_sha
  • github_sha
  • github_run_attempt
  • github_run_id
  • github_run_number
  • github_job
  • github_ref
  • github_repository
  • github_server_url

PR: DeterminateSystems/nix-src#374

Flake inputs are substituted when possible

Locked flake inputs will be fetched from a binary cache when possible, instead of preferring the authoritative flake source.
This is intended to reduce load on code forges, and also improves the user experience on large flake inputs.

PR: [#380](https://github.com/DeterminateSystems/nix-

nix profile upgrade and nix profile remove now support tab completion

PR: DeterminateSystems/nix-src#382

Flake schemas can now define an output as "legacy"

"Legacy" flakes are intended for legacyPackages on Nixpkgs.
The "legacy" mark is intended to reduce evaluation time due to the extreme size of legacyPackages.
Note: the name "legacy" is not intended as a value judgement, and at this point we're sort of stuck with the name.

Bug fixes

Full Changelog: v3.17.0...v3.17.1

v3.17.0

04 Mar 23:20
3a96d56

Choose a tag to compare

Release 3.17.0 (2026-03-04)

What's Changed

Determinate Nix 3.17.0 brings exciting improvements like Flake Schemas, provenance, and Wasm / WASI.
We'll be posting more details over the next week or so on our blog: https://determinate.systems/blog/.

Full Changelog: v3.16.3...v3.17.0

v3.16.3

24 Feb 05:07
628d55c

Choose a tag to compare

Release 3.16.3 (2026-02-24)

What's Changed

This release only includes changes in determinate-nixd.

v3.16.2

24 Feb 00:13
1ffadb0

Choose a tag to compare

v3.16.2 Pre-release
Pre-release

Release 3.16.2 (2026-02-23)

What's Changed

This release is exclusively improvements to determinate-nixd.

v3.16.1

22 Feb 22:00
358fb43

Choose a tag to compare

Release 3.16.1 (2026-02-22)

What's Changed

nix store info now correctly support --refresh and --offline

Previously, Nix had a hard-coded TTL of seven days.
Determinate Nix moved that TTL to a new setting narinfo-cache-meta-ttl and now nix store info respects the --refresh and --offline flags.

This change makes it possible to freshly validate authenticating to a remote store.

PR: DeterminateSystems/nix-src#355

Corrected builtins.hashString behavior under lazy trees

builtins.hashString now devirtualizes lazy paths, making the hash result stable.

PR: DeterminateSystems/nix-src#360

Full Changelog: v3.16.0...v3.16.1

v3.16.0

13 Feb 20:00
5c670e3

Choose a tag to compare

Release 3.16.0 (2026-02-12)

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

v3.15.2

21 Jan 02:43
45ce621

Choose a tag to compare

Release 3.15.2 (2026-01-20)

What's Changed

Improved performance for users with a lot of dependencies

If you even had the occasion to query your binary cache for over 110,000 store path simultaneously you might have found it rather slow.
Previously, Nix would enqueue all the downloads at once.
This appears to trigger quadratic behavior in curl.

Determinate Nix now enqueues a reasonable number of subtitutions once.
At the same time, we fixed a performance issue in the progress bar with so many dependencies.

PR: DeterminateSystems/nix-src#315

Lazy trees update: path inputs are now lazy

Previously inputs like path:///path/to/a/dependency were eagerly fetched when lazy-trees is enabled.
In Determinate Nix 3.15.2, path input types are also fetched lazily.
This change saves time and improves performance for users with path inputs.

PRs:

nix repl now reports the Determinate version

A small change, but now nix repl correctly reports the Determinate Nix version:

$ nix repl
Nix (Determinate Nix 3.15.1) 2.33.0
Type :? for help.
nix-repl>

PR: DeterminateSystems/nix-src#316

New Contributors

Full Changelog: v3.15.1...v3.15.2

v3.15.1

24 Dec 03:54
51dacdd

Choose a tag to compare

Release 3.15.1 (2025-12-24)

What's Changed

Users reported the v3.15.0 tarball could not be fetched in a fixed-output derivation due to current stdenv paths present in the documentation. This release eliminated those paths.

PR: DeterminateSystems/nix-src#306

Additionally, this change re-enables CodeRabbit's code review on our changes. CodeRabit was disabled by the upstream project, and we inadvertently included that change.

PR: DeterminateSystems/nix-src#305

Full Changelog: v3.15.0...v3.15.1

v3.15.0

19 Dec 20:27
15d6091

Choose a tag to compare

Release 3.15.0 (2025-12-19)

fetchTree improvement

builtins.fetchTree now implicitly treats the fetched tree as "final" when a narHash is supplied, meaning that it will not return attributes like lastModified or revCount unless they were specified by the caller. This makes it possible to substitute the tree from a binary cache, which is often more efficient. Furthermore, for Git inputs, it allows Nix to perform a shallow fetch, which is much faster.

This is primarily useful for users of flake-compat, since it uses builtins.fetchTree internally.

PR: DeterminateSystems/nix-src#297

New builtin function builtins.filterAttrs

Nixpkgs heavily relies on this function to select attributes from an attribute set:

filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));

Determinate Nix now has this function built-in, which makes it much faster.

PR: DeterminateSystems/nix-src#291

New Contributors

Full Changelog: v3.14.0...v3.15.0