We’re excited to announce the release of Determinate Nix version 3.6.6, based on version 2.29.0 of upstream Nix.
Update on macOS Tahoe
We’ve been testing our releases on macOS Tahoe internally since the first day of its release. All of our data shows that Determinate Nix works great on the current Tahoe beta. We’ll continue to monitor the situation. If you see something that we should take a look at, please leave a comment on this GitHub issue.
Update on lazy trees
We released lazy trees in Determinate Nix 3.5.2, about a month ago, and since then hundreds of users have activated them. Across the board, these users have reported much faster CI times and in some scenarios a speedup of 5x or more.
This 3.6.6 release includes additional performance and reliability improvements for lazy trees.
It’s easy to turn them on by adding this single line to your nix.custom.conf
:
lazy-trees = true
On NixOS, you can enable the NixOS option:
{ nix.settings.lazy-trees = true;}
For those keeping track, you may have noticed that we skipped 3.6.3 and 3.6.4. We canceled the release of 3.6.3 and 3.6.4 after we identified some regressions around FlakeHub authentication. We’ve since improved our test suite to avoid this in the future.
Even faster evaluation with lazy trees through improved input caching
Some users reported that flake inputs were not being cached as often as they expected. Eelco Dolstra landed several pull requests to make this better, which has cut CI times for some users from over two minutes to under 20 seconds.
Extended lazy trees test suite
We now run the full Nix test suite and the Nixpkgs library test suite with lazy trees enabled. This revealed two bugs that are now fixed.
Relevant pull requests
determinate-nixd status
now correctly checks the netrc-file
setting on NixOS
Running a determinate-nixd status
check examines Nix’s netrc-file
configuration setting.
We added this check to help users who accidentally changed the setting, which breaks FlakeHub access.
On NixOS, we unfortunately used the wrong path for Nix and the check didn’t work.
By the way: if you need to customize the netrc, use authentication.additionalNetrcSources
instead of changing the netrc file.
Missing sandbox paths now have a sensible error message
Users with a misconfigured sandbox-paths
configuration used to see a mysterious error about a missing file.
Users now get an error message that helps them solve the problem:
path '/etc/nix/some-missing-file' is configured as part of the `sandbox-paths` option, but is inaccessible
Relevant pull request
The Determinate package on macOS can upgrade more systems
This used to fail on systems that used nix profile
to manage the default profile.
We can now upgrade these systems as well.
Assorted improvements
- When remote building with
--keep-failed
, we only show the “you can rerun” message if the derivation’s platform is supported on the current machine: DeterminateSystems/nix-src#87 - Lazy tree paths in messages are rendered without the
/nix/store/...
prefix in substituted source trees: DeterminateSystems/nix-src#91 - We fixed built-in functions being registered twice: DeterminateSystems/nix-src#97
- We fixed the link to
builders-use-substitutes
documentation for thebuilders
option: DeterminateSystems/nix-src#102 - We updated error messages to remove what we call the “fake future tense:” DeterminateSystems/nix-src#92
- We added missing help text to some
determinate-nixd auth login
options.
How to get Determinate Nix
If you already have Determinate Nix installed, you can upgrade to 3.6.6 with one Determinate Nixd command:
sudo determinate-nixd upgrade
If you don’t yet have Determinate Nix installed, you can install it on macOS using our graphical installer:

Install Determinate Nix on macOS now
Apple Silicon and Intel
On Linux:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \ sh -s -- install --determinate
On NixOS, we recommend using our dedicated NixOS module or our NixOS ISO with Determinate Nix pre-installed.
On GitHub Actions:
on: pull_request: workflow_dispatch: push: branches: - main
jobs: nix-ci: runs-on: ubuntu-latest # Include this block to log in to FlakeHub and access private flakes permissions: id-token: write contents: read steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/determinate-nix-action@v3 - uses: DeterminateSystems/flakehub-cache-action@main - uses: DeterminateSystems/nix-flake-checker-action@main - run: nix flake check
In Amazon Web Services:
data "aws_ami" "detsys_nixos" { most_recent = true owners = ["535002876703"]
filter { name = "name" values = ["determinate/nixos/epoch-1/*"] }
filter { name = "architecture" values = ["x86_64"] }}