Releases: DeterminateSystems/nix-src
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 search
nix flake check
nix flake show
nix 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 cores
Further, 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-eval
Please 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
v3.10.1
Release 3.10.1 (2025-09-02)
- Based on upstream Nix 2.31.1.
What's Changed
This release rebases Determinate Nix on upstream Nix 2.31.1.
Full Changelog: v3.10.0...v3.10.1
v3.10.0
Release 3.10.0 (2025-09-02)
- Based on upstream Nix 2.31.0.
What's Changed
This release rebases Determinate Nix on upstream Nix 2.31.0.
Full Changelog: v3.9.1...v3.10.0
v3.9.1
Release 3.9.1 (2025-08-28)
- Based on upstream Nix 2.30.2.
A useful nix flake init
template default
Nix's default flake template is extremely bare bones, and not a useful starting point.
Deteminate Nix now uses a more fleshed out default template, including targeting multiple systems.
PR: DeterminateSystems/nix-src#180
Build cancellation is repaired on macOS
A recent macOS update changed how signals are handled by Nix and broke using Ctrl-C to stop a build.
Determinate Nix on macOS correctly handles these signals and stops the build.
PR: DeterminateSystems/nix-src#184
Full Changelog: v3.9.0...v3.9.1
v3.9.0
Release 3.9.0 (2025-08-26)
- Based on upstream Nix 2.30.2.
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
v3.8.6
What's Changed
- Auto update release notes by @grahamc in #170
- Use WAL mode for SQLite cache databases (2nd attempt) by @edolstra in #167
- Enable parallel marking in boehm-gc by @edolstra in #168
- BasicClientConnection::queryPathInfo(): Don't throw exception for invalid paths by @edolstra in #172
- Fix queryPathInfo() negative caching by @edolstra in #173
- forceDerivation(): Wait for async path write after forcing value by @edolstra in #176
- Release v3.8.6 by @github-actions[bot] in #177
Full Changelog: v3.8.5...v3.8.6
v3.8.5
What's Changed
Less time "unpacking into the Git cache"
Unpacking sources into the user's cache is now takes 1/2 to 1/4 of the time it used to.
Previously, Nix serially unpacked sources into the cache.
This change takes better advantage of our users' hardware by parallelizing the import.
Real life testing shows an initial Nixpkgs import takes 3.6s on Linux, when it used to take 11.7s.
PR: DeterminateSystems/nix-src#149
Copy paths to the daemon in parallel
Determinate Nix's evaluator no longer blocks evaluation when copying paths to the store.
Previously, Nix would pause evaluation when it needed to add files to the store.
Now, the copying is performed in the background allowing evaluation to proceed.
PR: DeterminateSystems/nix-src#162
Faster Nix evaluation by reducing duplicate Nix daemon queries
Determinate Nix more effectively caches store path validity data within a single evaluation.
Previously, the Nix client would perform many thousands of exra Nix daemon requests.
Each extra request takes real time, and this change reduced a sample evaluation by over 12,000 requests.
PR: DeterminateSystems/nix-src#157
More responsive tab completion
Tab completion now implies the "--offline" flag, which disables most network requests.
Previously, tab completing Nix arguments would attempt to fetch sources and access binary caches.
Operating in offline mode improves the interactive experience of Nix when tab completing.
PR: DeterminateSystems/nix-src#161
ZFS users: we fixed the mysterious stall.
Opening the Nix database is usually instantaneous but sometimes has a several second latency.
Determinate Nix works around this issue, eliminating the frustrating random stall when running Nix commands.
PR: DeterminateSystems/nix-src#158
Other changes
- Determinate Nix is now fully formatted by clang-format, making it easier than ever to contribute to the project.
PR: DeterminateSystems/nix-src#159
- Determinate Nix is now based on upstream Nix 2.30.2.
PR: DeterminateSystems/nix-src#160
- Determinate Nix now uses
main
as our development branch, moving away fromdetsys-main
.
PRs:
v3.8.4
What's Changed
- Only build the manual on x86_64-linux by @edolstra in #148
- Add an
external-builders
experimental feature by @cole-h in #141 - Use WAL mode for SQLite cache databases by @edolstra in #150
- external-derivation-builder: run under build user by @cole-h in #152
- Add support for external builders by @edolstra in #78
- Release v3.8.3 by @github-actions[bot] in #153
- Revert "Use WAL mode for SQLite cache databases" by @grahamc in #155
- Release v3.8.4 by @github-actions[bot] in #156
Full Changelog: v3.8.2...v3.8.4