Changes between Nix and Determinate Nix
This section lists the differences between upstream Nix 2.33 and Determinate Nix 3.15.1.
-
In Determinate Nix, flakes are stable. You no longer need to enable the
flakesexperimental feature. -
In Determinate Nix, the new Nix CLI (i.e. the
nixcommand) is stable. You no longer need to enable thenix-commandexperimental feature. -
Determinate Nix has a setting
json-log-pathto send a copy of all Nix log messages (in JSON format) to a file or Unix domain socket. -
Determinate Nix has made
nix profile installan alias tonix profile add, a more symmetrical antonym ofnix profile remove. -
nix-channelandchannel:url syntax (likechannel:nixos-24.11) is deprecated, see: https://github.com/DeterminateSystems/nix-src/issues/34 -
Using indirect flake references and implicit inputs is deprecated, see: https://github.com/DeterminateSystems/nix-src/issues/37
-
Warnings around "dirty trees" are updated to reduce "dirty" jargon, and now refers to "uncommitted changes".
-
nix upgrade-nixis now inert, and suggests usingdeterminate-nixd upgrade. DeterminateSystems/nix-src#55 -
Determinate Nix has Lazy Trees, avoiding expensive copying of flake inputs to the Nix store. (DeterminateSystems/nix-src#27, DeterminateSystems/nix-src#56)
-
Documentation on how to replicate
nix-store --query --deriverwith the newnixcli. DeterminateSystems/nix-src#82 -
In
nix profile, the symbolsεand∅have been replaced with descriptive English words. DeterminateSystems/nix-src#81
-
When remote building with
--keep-failed, Determinate Nix shows "you can rerun" message if the derivation's platform is supported on this machine. DeterminateSystems/nix-src#87 -
Improved error message when
sandbox-pathsspecifies a missing file. DeterminateSystems/nix-src#88
nix store deletenow explains why deletion fails. DeterminateSystems/nix-src#130
-
Tab completing arguments to Nix avoids network access. DeterminateSystems/nix-src#161
-
Importing Nixpkgs and other tarballs to the cache is 2-4x faster. DeterminateSystems/nix-src#149
-
Adding paths to the store is significantly faster. DeterminateSystems/nix-src#162
- Determinate Nix allows flake inputs to be fetched at build time. DeterminateSystems/nix-src#49
- The default
nix flake inittemplate is much more useful. DeterminateSystems/nix-src#180
- Multithreaded evaluation support. DeterminateSystems/nix-src#125
- Determinate Nix only tries to substitute inputs if fetching from its original location fails.DeterminateSystems/nix-src#202
-
A new command
nix nariothat replacesnix-store --export|--export. It also has a new file format (--format 2) that supports store path attributes such as signatures, and that can be imported more efficiently. DeterminateSystems/nix-src#215 -
Determinate Nix prints the Nix version when using
-vvor higher verbosity. DeterminateSystems/nix-src#237
- During evaluation, you can read or import from the result of
builtins.fetchClosure. DeterminateSystems/nix-src#241
- Flakerefs in error messages and lockfile diffs are abbreviated for readability. DeterminateSystems/nix-src#243, DeterminateSystems/nix-src#264
-
The Git fetcher doesn't compute
revCountorlastModifiedif they're already specified DeterminateSystems./nix-src#269 -
The Git fetcher avoids doing a shallow Git fetch if it previously did a non-shallow fetch of the same repository. DeterminateSystems/nix-src#270
-
Determinate Nix has a builtin copy of the flake registry, making it more resilient to network outages. DeterminateSystems/nix-src#271
-
nix buildandnix profilereport failing or succeeding installables. DeterminateSystems/nix-src#281 -
nix flake checkshows which outputs failed or succeeded. DeterminateSystems/nix-src#285 -
Determinate Nix has a
nix pscommand to show active builds. DeterminateSystems/nix-src#282 -
Determinate Nix has improved backward compatibility with lock files created by Nix < 2.20. DeterminateSystems/nix-src#278
-
Determinate Nix has a builtin function
builtins.filterAttrs. DeterminateSystems/nix-src#291 -
builtins.fetchTreeimplicitly sets__final = truewhen anarHashis supplied. This allows the tree to be substituted. DeterminateSystems/nix-src#297
-
Bring back the free alpha by @grahamc in DeterminateSystems/nix-src#305
-
Replace substitutable hashes with unlilkey to substitute hashes by @grahamc in DeterminateSystems/nix-src#306