Skip to main content

Changelog: FlakeHub Cache edge routing and reliability improvements

Changelog: FlakeHub Cache edge routing and reliability improvements

We at Determinate Systems are pleased to announce the release of Determinate Nix version 3.21.8, based on upstream Nix 2.34.8. This release is headlined by cache endpoint overrides from FlakeHub in Determinate Nixd, which should make FlakeHub Cache faster for most users, especially those outside the United States (US), alongside a handful of reliability improvements.

Cache endpoint overrides from FlakeHub

FlakeHub Cache now has an edge cache system that routes requests to the nearest available cache node instead of to a single central endpoint. For most users, this makes substituting from FlakeHub Cache substantially faster. The improvement should be especially noticeable outside the US, including in Australia, Asia, and Africa.

Determinate Nixd now picks up this cache endpoint automatically and applies it to your Determinate Nix configuration at runtime. It adds the override to extra-substituters and generated credentials without creating duplicate default cache entries. You don’t need to make any configuration changes yourself, as Determinate Nixd handles it for you.

Reliability improvements

This release also rolls up three fixes surfaced through Sentry crash reporting:

  • Fixed a crash caused by a worker thread leak in libgit2’s ll_find_delta, triggered when thread creation partially failed while indexing a git packfile.
  • Nix no longer reports SIGQUIT, a user-initiated signal, to Sentry.
  • Nix no longer aborts when NIX_GET_COMPLETIONS is set out of range, printing a clear usage error instead.

How to get Determinate Nix

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

Upgrade command for version 3.21.8
sudo determinate-nixd upgrade

If you don’t yet have Determinate Nix installed, you can upgrade or migrate to Determinate Nix on macOS using our graphical installer:

Logo for Determinate Systems graphical installer

Install Determinate Nix on macOS

With support for Apple Silicon (aarch64-darwin)

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 (NixOS installer for x86_64, NixOS installer for ARM) 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@v6
- uses: DeterminateSystems/flake-checker-action@main
- uses: DeterminateSystems/determinate-nix-action@v3
- uses: DeterminateSystems/flakehub-cache-action@v3
- run: nix flake check

In Amazon Web Services:

aws.tf
data "aws_ami" "detsys_nixos" {
most_recent = true
owners = ["535002876703"] # Commercial
# owners = ["579351485434"] # GovCloud
# owners = ["129194717446"] # European Sovereign Cloud
filter {
name = "name"
values = ["determinate/nixos/epoch-1/*"]
}
filter {
name = "architecture"
values = ["x86_64"]
}
}

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 is a co-founder of Determinate Systems, alongside Eelco Dolstra, as well as its Chief Technology Officer.