Releases: DeterminateSystems/nix-src
v3.13.2
Release 3.13.2 (2025-11-19)
- Based on upstream Nix 2.32.4.
What's Changed
Abbreviate flakerefs in lockfile diffs and nix flake metadata
Flake refs are now abbreviated when possible, to reduce visual clutter.
For example, this changes
• Updated input 'blender-bin':
'https://api.flakehub.com/f/pinned/edolstra/blender-bin/1.0.19/01993ca7-2aa8-746f-96f5-ca8d2c2b962d/source.tar.gz?narHash=sha256-ZqVhVl9UYVErF8HW8lcvqss005VWYjuX//rZ%2BOmXyHg%3D' (2025-09-12)
→ 'https://api.flakehub.com/f/pinned/edolstra/blender-bin/1.0.20/019a8772-b044-7738-8c03-109bdc9f0a01/source.tar.gz?narHash=sha256-sVj9Gmx0kwTDQPJ5kgQYszE3Hdjevu0zx0b/bL2fyUc%3D' (2025-11-15)
• Updated input 'nix':
'github:DeterminateSystems/nix-src/236ebef6514f3a2a9765c8a1d80dd503b8e672be?narHash=sha256-s6/Err0yqOp5fM3OdCF1vhmEYpeElbPOWX88YrW2qj4%3D' (2025-10-23)
→ 'github:DeterminateSystems/nix-src/ef054dc06e9701597bce0b0572af18cb4c7e7277?narHash=sha256-uqYmH0KA8caQqX5u4BMarZsuDlC%2B71HRsH3h4f3DPCA%3D' (2025-11-12)
to
• Updated input 'blender-bin':
'https://api.flakehub.com/f/pinned/edolstra/blender-bin/1.0.19/01993ca7-2aa8-746f-96f5-ca8d2c2b962d/source.tar.gz' (2025-09-12)
→ 'https://api.flakehub.com/f/pinned/edolstra/blender-bin/1.0.20/019a8772-b044-7738-8c03-109bdc9f0a01/source.tar.gz' (2025-11-15)
• Updated input 'nix':
'github:DeterminateSystems/nix-src/236ebef' (2025-10-23)
→ 'github:DeterminateSystems/nix-src/ef054dc' (2025-11-12)
PR: DeterminateSystems/nix-src#264
nix flake prefetch-inputs now skips build-time inputs
Build-time inputs can already be fetched in parallel, so prefetching them is usually not what you want.
This can be especially noticeable in projects that make extensive use of build-time flake inputs.
PR: DeterminateSystems/nix-src#263
Don't compute revCount/lastModified if they're already specified
We don't care if the user (or more likely the lock file) specifies an incorrect value for these attributes, since it doesn't matter for security (unlike content hashes like narHash).
This can save time when operating on large repos -- having to recalculate these attributes could slow things down greatly.
PR: DeterminateSystems/nix-src#269
Avoid unnecessary Git refetches
This fixes the issue where updating a Git input does a non-shallow fetch, and then a subsequent eval does a shallow refetch because the revCount is already known.
Now the subsequent eval will reuse the repo used in the first fetch.
PR: DeterminateSystems/nix-src#270
Use our mirrored flake registry
The flake registry is security-critical and thus should have high availability.
By mirroring the upstream Nix flake registry, we can make it less likely that a GitHub outage affects being able to resolve from the registry.
PR: DeterminateSystems/nix-src#271
Full Changelog: v3.13.1...v3.13.2
v3.13.1
Release 3.13.1 (2025-11-12)
- Based on upstream Nix 2.32.4.
What's Changed
- nix bundle: Wait for async path writer by @edolstra in DeterminateSystems/nix-src#260
- Sync with upstream 2.32.4 by @edolstra in DeterminateSystems/nix-src#261
Full Changelog: v3.13.0...v3.13.1
v3.13.0
Release 3.13.0 (2025-11-09)
- Based on upstream Nix 2.32.3.
What's Changed
Git sources have a progress indicator again
Nix used to feel "stuck" while it was cloning large repositories.
Determinate Nix now shows git's native progress indicator while fetching.
PR: DeterminateSystems/nix-src#250
C API improvements
We've invested in the C API to support our work on closure analysis for SBOM generation, and made a couple of changes:
- C API: add nix_locked_flake_read_path for flake file reading
- C API: make nix_store_get_fs_closure compatible with upstream
PRs:
Dropping support for Intel Macs
Determinate Nix no longer supports being installed on Intel Macs.
Determinate Nix will continue to support building for Intel macOS targets, but only from an Apple Silicon host.
From our intent-to-ship:
Over the past year, we’ve watched usage of Determinate on Intel macOS hosts dwindle to a minuscule fraction of total usage.
It currently stands at approximately 0.02% of all installations.
The vast majority are run in managed CI environments that, we anticipate, will be able to easily convert to using Apple Silicon runners.
For more information: #224
PR: DeterminateSystems/nix-src#257
Bugs fixed
- IPv6 Store URLs now handles zone ID references like it did in previous releases NixOS/nix#14434
Full Changelog: v3.12.2...v3.13.0
v3.12.2
Release 3.12.2 (2025-11-05)
- Based on upstream Nix 2.32.2.
What's Changed
Faster revCount computation
When using Git repositories with a long history, calculating the revCount attribute can take a long time. Determinate Nix now computes revCount using multiple threads, making it much faster.
Note that if you don't need revCount, you can disable it altogether by setting the flake input attribute shallow = false.
PR: DeterminateSystems/nix-src#245
More readable error messages
Previously, Nix showed full flakerefs in error messages such as stack traces, e.g.
… from call site
at «github:NixOS/nixpkgs/3bea86e918d8b54aa49780505d2d4cd9261413be?narHash=sha256-Ica%2B%2BSXFuLyxX9Q7YxhfZulUif6/gwM8AEQYlUxqSgE%3D»/lib/customisation.nix:69:16:
68| let
69| result = f origArgs;
| ^
70|
It now abbreviates these by leaving out narHash and shortening Git revisions:
… from call site
at «github:NixOS/nixpkgs/3bea86e»/lib/customisation.nix:69:16:
68| let
69| result = f origArgs;
| ^
70|
PR: DeterminateSystems/nix-src#243
Other changes
This release fixes an assertion failure in nix flake check. PR: DeterminateSystems/nix-src#252
Full Changelog: v3.12.1...v3.12.2
v3.12.1
Release 3.12.1 (2025-11-04)
- Based on upstream Nix 2.32.1.
What's Changed
- Allow access to the result of fetchClosure by @edolstra in DeterminateSystems/nix-src#241
- libstore/build: fixup JSON logger missing the resBuildResult result event by @cole-h in DeterminateSystems/nix-src#246
Full Changelog: v3.12.0...v3.12.1
v3.12.0
Release 3.12.0 (2025-10-23)
- Based on upstream Nix 2.32.1.
What's Changed
nix nario
Determinate Nix has a new command, nix nario, that replaces the commands nix-store --export and nix-store --import from the old CLI. nix nario allows you to serialize store paths to a file that can be imported into another Nix store. It is backwards compatible with the file format generated by nix-store --export. It also provides a new format (selected by passing --format 2) that supports store path attributes such as signatures, and allows store paths to be imported more efficiently.
Other changes
nix flake clone now supports arbitrary input types. In particular, this allows you to clone tarball flakes, such as flakes on FlakeHub.
When using -vv, Determinate Nix now prints the Nix version. This is useful when diagnosing Nix problems from the debug output of a Nix run.
Full Changelog: v3.11.3...v3.12.0
v3.11.3
Release 3.11.3 (2025-10-09)
- Based on upstream Nix 2.31.2.
What's Changed
Fix some bugs and interactions with parallel eval
We received some reports of parallel eval having issues, such as not being able to be interrupted, infinite recursion hanging forever, and segfaults when using the experimental builtins.parallel.
Those have now been fixed.
Additionally, the debugger now disables parallel eval, because the two features are incompatible.
PRs: DeterminateSystems/nix-src#206, DeterminateSystems/nix-src#213, DeterminateSystems/nix-src#218, DeterminateSystems/nix-src#205
NIX_SSHOPTS + ssh-ng://root@localhost fix
We noticed that specifying NIX_SSHOPTS=-p2222 when using a command that uses SSH (such as nix copy --to ssh-ng://root@localhost) stopped respecting the NIX_SSHOPTS setting because of an incorrect comparison.
This has been fixed, so NIX_SSHOPTS and SSH stores that are accessed like user@localhost work again.
PR: DeterminateSystems/nix-src#219
Fix error: [json.exception.type_error.302] type must be string, but is array when using exportReferencesGraph
We received a report of a nix build failing on a specific flake due to its expression using exportReferencesGraph with a heterogeneous array of dependencies, causing this inscrutable error.
This specific case has been broken since Nix 2.29.0, and is now fixed.
PRs: DeterminateSystems/nix-src#221, DeterminateSystems/nix-src#225
Full Changelog: v3.11.2...v3.11.3
v3.11.2
Release 3.11.2 (2025-09-12)
- Based on upstream Nix 2.31.1.
What's Changed
Fix some interactions with the registry and flakes that include a ?dir= parameter
Some users were experiencing issues when their flake registry contained a flake that included a ?dir= parameter, causing commands like nix eval registry-with-flake-in-subdir#output and those that used --inputs-from` to fail or behave incorrectly.
This is now fixed, so use your flakes inside subdirs without fear!
PRs: DeterminateSystems/nix-src#196, DeterminateSystems/nix-src#199
Only substitute inputs if they haven't already been fetched
When using lazy-trees, you might have noticed Nix fetching some source inputs from a cache, even though you could have sworn it already fetched those inputs!
This fixes that behavior such that Nix will try to fetch inputs from their original location, and only if that fails fall back to fetching from a substituter.
PR: DeterminateSystems/nix-src#202
Full Changelog: v3.11.1...v3.11.2
v3.11.1
Release 3.11.1 (2025-09-04)
- Based on upstream Nix 2.31.1.
What's Changed
- Fix race condition in Value::isTrivial() by @edolstra in DeterminateSystems/nix-src#192
Full Changelog: v3.11.0...v3.11.1
v3.11.0
Release 3.11.0 (2025-09-03)
- Based on upstream Nix 2.31.1.
What's Changed
Parallel evaluation
The following commands are now able to evaluate Nix expressions in parallel:
nix searchnix flake checknix flake shownix eval --json
This is currently in developer preview, and we'll be turning it on for more users in the coming weeks.
If you would like to try it right away, specify eval-cores in your /etc/nix/nix.custom.conf:
eval-cores = 0 # Evaluate across all coresFurther, we introduced a new builtin: builtins.parallel.
This new builtin allows users to explicitly parallelize evaluation within a Nix expression.
Using this new builtin requires turning on an additional experimental feature:
extra-experimental-features = parallel-evalPlease note that this new builtin is subject to change semantics or even go away during the developer preview.
PR: DeterminateSystems/nix-src#125
Full Changelog: v3.10.1...v3.11.0