background grid image
Image for post changelog-determinate-nix-366
Jun 18, 2025 by Graham Christensen

Changelog: macOS Tahoe, lazy trees, and docs in Determinate Nix 3.6.6

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:

/etc/nix/nix.custom.conf
lazy-trees = true

On NixOS, you can enable the NixOS option:

/etc/nixos/configuration.nix
{
nix.settings.lazy-trees = true;
}
Note on skipped versions

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.

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:

Terminal window
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

How to get Determinate Nix

If you already have Determinate Nix installed, you can upgrade to 3.6.6 with one Determinate Nixd command:

Upgrade command for version 3.6.6
sudo determinate-nixd upgrade

If you don’t yet have Determinate Nix installed, you can install it on macOS using our graphical installer:

Logo for graphical installer

Install Determinate Nix on macOS now

Apple Silicon and Intel

On Linux:

Install Determinate Nix 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:

.github/workflows/nix-ci.yaml
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:

aws.tf
data "aws_ami" "detsys_nixos" {
most_recent = true
owners = ["535002876703"]
filter {
name = "name"
values = ["determinate/nixos/epoch-1/*"]
}
filter {
name = "architecture"
values = ["x86_64"]
}
}

Share
Avatar for Graham Christensen
Written by Graham Christensen

Graham is a Nix and Rust developer, with a passion and focus on reliability in the lower levels of the stack. He founded Determinate Systems, Inc to support Nix adoption at your workplace.

Would you like access to private flakes and FlakeHub Cache?

Sign up for FlakeHub