Skip to content

Releases: DeterminateSystems/nix-src

v3.11.2

12 Sep 17:03
766f43a
Compare
Choose a tag to compare

Release 3.11.2 (2025-09-12)

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

05 Sep 00:04
7143558
Compare
Choose a tag to compare

Release 3.11.1 (2025-09-04)

What's Changed

Full Changelog: v3.11.0...v3.11.1

v3.11.0

03 Sep 20:48
869a589
Compare
Choose a tag to compare

Release 3.11.0 (2025-09-03)

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

02 Sep 19:25
088770b
Compare
Choose a tag to compare

Release 3.10.1 (2025-09-02)

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

02 Sep 01:15
33d2b50
Compare
Choose a tag to compare

Release 3.10.0 (2025-09-02)

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

28 Aug 03:06
28b2472
Compare
Choose a tag to compare

Release 3.9.1 (2025-08-28)

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

26 Aug 21:25
387ed61
Compare
Choose a tag to compare

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

v3.8.6

20 Aug 10:39
1dd83fd
Compare
Choose a tag to compare

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

04 Aug 22:14
55219f9
Compare
Choose a tag to compare

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 from detsys-main.

PRs:

v3.8.4

21 Jul 03:12
4728153
Compare
Choose a tag to compare

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