You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This section lists the differences between upstream Nix 2.32 and Determinate Nix 3.14.0.<!-- differences -->
3
+
This section lists the differences between upstream Nix 2.33 and Determinate Nix 3.15.0.<!-- differences -->
4
4
5
5
* In Determinate Nix, flakes are stable. You no longer need to enable the `flakes` experimental feature.
6
6
@@ -22,9 +22,9 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
22
22
23
23
<!-- Determinate Nix version 3.5.1 -->
24
24
25
-
*`nix upgrade-nix` is now inert, and suggests using `determinate-nixd upgrade` --[DeterminateSystems/nix-src#55](https://github.com/DeterminateSystems/nix-src/pull/55)
25
+
*`nix upgrade-nix` is now inert, and suggests using `determinate-nixd upgrade`.[DeterminateSystems/nix-src#55](https://github.com/DeterminateSystems/nix-src/pull/55)
26
26
27
-
* Lazy Trees support has been merged. ([DeterminateSystems/nix-src#27](https://github.com/DeterminateSystems/nix-src/pull/27), [DeterminateSystems/nix-src#56](https://github.com/DeterminateSystems/nix-src/pull/56))
27
+
*Determinate Nix has Lazy Trees, avoiding expensive copying of flake inputs to the Nix store. ([DeterminateSystems/nix-src#27](https://github.com/DeterminateSystems/nix-src/pull/27), [DeterminateSystems/nix-src#56](https://github.com/DeterminateSystems/nix-src/pull/56))
28
28
29
29
<!-- Determinate Nix version 3.5.2 -->
30
30
@@ -34,40 +34,29 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
34
34
35
35
<!-- Determinate Nix version 3.6.2 -->
36
36
37
-
*Faster `nixstore copy-sigs` by @edolstra in [DeterminateSystems/nix-src#80](https://github.com/DeterminateSystems/nix-src/pull/80)
37
+
*Documentation on how to replicate `nix-store --query --deriver` with the new `nix` cli. [DeterminateSystems/nix-src#82](https://github.com/DeterminateSystems/nix-src/pull/82)
38
38
39
-
*Document how to replicate nix-store --query --deriver with the nix cli by @grahamc in [DeterminateSystems/nix-src#82](https://github.com/DeterminateSystems/nix-src/pull/82)
39
+
*In `nix profile`, the symbols `ε` and `∅` have been replaced with descriptive English words. [DeterminateSystems/nix-src#81](https://github.com/DeterminateSystems/nix-src/pull/81)
40
40
41
-
* nix profile: Replace ε and ∅ with descriptive English words by @grahamc in [DeterminateSystems/nix-src#81](https://github.com/DeterminateSystems/nix-src/pull/81)
42
-
43
-
* Call out that `--keep-failed` with remote builders will keep the failed build directory on that builder by @cole-h in [DeterminateSystems/nix-src#85](https://github.com/DeterminateSystems/nix-src/pull/85)
44
41
<!-- Determinate Nix version 3.6.3 revoked -->
45
42
46
43
<!-- Determinate Nix version 3.6.4 revoked -->
47
44
48
45
<!-- Determinate Nix version 3.6.5 -->
49
46
50
-
* When remote building with --keep-failed, only show "you can rerun" message if the derivation's platform is supported on this machine by @cole-h in [DeterminateSystems/nix-src#87](https://github.com/DeterminateSystems/nix-src/pull/87)
51
-
52
-
* Indicate that sandbox-paths specifies a missing file in the corresponding error message. by @cole-h in [DeterminateSystems/nix-src#88](https://github.com/DeterminateSystems/nix-src/pull/88)
53
-
54
-
* Use FlakeHub inputs by @lucperkins in [DeterminateSystems/nix-src#89](https://github.com/DeterminateSystems/nix-src/pull/89)
47
+
* 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](https://github.com/DeterminateSystems/nix-src/pull/87)
55
48
56
-
* Proactively cache more flake inputs and fetches by @edolstra in [DeterminateSystems/nix-src#93](https://github.com/DeterminateSystems/nix-src/pull/93)
57
-
58
-
* Improve caching of inputs in dry-run mode by @edolstra in [DeterminateSystems/nix-src#98](https://github.com/DeterminateSystems/nix-src/pull/98)
49
+
* Improved error message when `sandbox-paths` specifies a missing file. [DeterminateSystems/nix-src#88](https://github.com/DeterminateSystems/nix-src/pull/88)
59
50
60
51
<!-- Determinate Nix version 3.6.6 -->
61
52
62
53
<!-- Determinate Nix version 3.6.7 -->
63
54
64
55
<!-- Determinate Nix version 3.6.8 -->
65
56
66
-
* Add lazy-locks setting by @edolstra in [DeterminateSystems/nix-src#113](https://github.com/DeterminateSystems/nix-src/pull/113)
67
-
68
57
<!-- Determinate Nix version 3.7.0 -->
69
58
70
-
*`nix store delete` now explains why deletion fails by @edolstra in[DeterminateSystems/nix-src#130](https://github.com/DeterminateSystems/nix-src/pull/130)
59
+
*`nix store delete` now explains why deletion fails.[DeterminateSystems/nix-src#130](https://github.com/DeterminateSystems/nix-src/pull/130)
71
60
72
61
<!-- Determinate Nix version 3.8.0 -->
73
62
@@ -81,21 +70,21 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
81
70
82
71
<!-- Determinate Nix version 3.8.5 -->
83
72
84
-
* Tab completing arguments to Nix avoids network access [DeterminateSystems/nix-src#161](https://github.com/DeterminateSystems/nix-src/pull/161)
73
+
* Tab completing arguments to Nix avoids network access.[DeterminateSystems/nix-src#161](https://github.com/DeterminateSystems/nix-src/pull/161)
85
74
86
-
* Importing Nixpkgs and other tarballs to the cache is 2-4x faster [DeterminateSystems/nix-src#149](https://github.com/DeterminateSystems/nix-src/pull/149)
75
+
* Importing Nixpkgs and other tarballs to the cache is 2-4x faster.[DeterminateSystems/nix-src#149](https://github.com/DeterminateSystems/nix-src/pull/149)
87
76
88
-
* Adding paths to the store is significantly faster [DeterminateSystems/nix-src#162](https://github.com/DeterminateSystems/nix-src/pull/162)
77
+
* Adding paths to the store is significantly faster.[DeterminateSystems/nix-src#162](https://github.com/DeterminateSystems/nix-src/pull/162)
*Determinate Nix allows flake inputs to be fetched at build time.[DeterminateSystems/nix-src#49](https://github.com/DeterminateSystems/nix-src/pull/49)
95
84
96
85
<!-- Determinate Nix version 3.9.1 -->
97
86
98
-
* The default `nix flake init` template is much more useful [DeterminateSystems/nix-src#180](https://github.com/DeterminateSystems/nix-src/pull/180)
87
+
* The default `nix flake init` template is much more useful.[DeterminateSystems/nix-src#180](https://github.com/DeterminateSystems/nix-src/pull/180)
99
88
100
89
<!-- Determinate Nix version 3.10.0 -->
101
90
@@ -104,26 +93,21 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
104
93
105
94
<!-- Determinate Nix version 3.11.0 -->
106
95
107
-
* Multithreaded evaluation support [DeterminateSystems/nix-src#125](https://github.com/DeterminateSystems/nix-src/pull/125)
* Fix some interactions with the registry and flakes that include a `?dir=` parameter [DeterminateSystems/nix-src#196](https://github.com/DeterminateSystems/nix-src/pull/196), [DeterminateSystems/nix-src#199](https://github.com/DeterminateSystems/nix-src/pull/199)
115
-
116
-
* Only try to substitute input if fetching from its original location fails [DeterminateSystems/nix-src#202](https://github.com/DeterminateSystems/nix-src/pull/202)
103
+
* Determinate Nix only tries to substitute inputs if fetching from its original location fails.[DeterminateSystems/nix-src#202](https://github.com/DeterminateSystems/nix-src/pull/202)
* A new command `nix nario` that replaces `nix-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.
* A new command `nix nario` that replaces `nix-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](https://github.com/DeterminateSystems/nix-src/pull/215)
127
111
128
112
* Determinate Nix prints the Nix version when using `-vv` or higher verbosity. [DeterminateSystems/nix-src#237](https://github.com/DeterminateSystems/nix-src/pull/237)
129
113
@@ -134,37 +118,33 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
134
118
135
119
<!-- Determinate Nix version 3.12.2 -->
136
120
137
-
* Computing the `revCount` attribute is multi-threaded, making it much faster for repositories like Nixpkgs. [DeterminateSystems/nix-src#245](https://github.com/DeterminateSystems/nix-src/pull/245)
138
-
139
-
* Flakerefs in error messages are abbreviated for readability. [DeterminateSystems/nix-src#243](https://github.com/DeterminateSystems/nix-src/pull/243)
121
+
* Flakerefs in error messages and lockfile diffs are abbreviated for readability. [DeterminateSystems/nix-src#243](https://github.com/DeterminateSystems/nix-src/pull/243), [DeterminateSystems/nix-src#264](https://github.com/DeterminateSystems/nix-src/pull/264)
140
122
141
123
<!-- Determinate Nix version 3.13.0 -->
142
124
143
-
* Git fetching has a progress indication [DeterminateSystems/nix-src#250](https://github.com/DeterminateSystems/nix-src/pull/250)
144
-
145
125
<!-- Determinate Nix version 3.13.1 -->
146
126
147
127
148
128
<!-- Determinate Nix version 3.13.2 -->
149
129
150
-
*Abbreviate flakerefs in lockfile diffs and `nix flake metadata`[DeterminateSystems/nix-src#264](https://github.com/DeterminateSystems/nix-src/pull/264)
130
+
*The Git fetcher doesn't compute `revCount` or `lastModified` if they're already specified [DeterminateSystems./nix-src#269](https://github.com/DeterminateSystems/nix-src/pull/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](https://github.com/DeterminateSystems/nix-src/pull/270)
153
133
154
-
*Git fetcher: Don't compute revCount/lastModified if they're already specified [DeterminateSystems/nix-src#269](https://github.com/DeterminateSystems/nix-src/pull/269)
134
+
*Determinate Nix has a builtin copy of the flake registry, making it more resilient to network outages. [DeterminateSystems/nix-src#271](https://github.com/DeterminateSystems/nix-src/pull/271)
*`nix build` and `nix profile` report failing or succeeding installables. [DeterminateSystems/nix-src#281](https://github.com/DeterminateSystems/nix-src/pull/281)
159
139
160
-
<!-- Determinate Nix version 3.14.0 -->
140
+
*`nix flake check` shows which outputs failed or succeeded. [DeterminateSystems/nix-src#285](https://github.com/DeterminateSystems/nix-src/pull/285)
161
141
162
-
*Fixed a builtins.path regression: Propagate references from derivation outputs[DeterminateSystems/nix-src#283](https://github.com/DeterminateSystems/nix-src/pull/283)
142
+
*Determinate Nix has a `nix ps` command to show active builds.[DeterminateSystems/nix-src#282](https://github.com/DeterminateSystems/nix-src/pull/282)
*Determinate Nix has improved backward compatibility with lock files created by Nix < 2.20. [DeterminateSystems/nix-src#278](https://github.com/DeterminateSystems/nix-src/pull/278)
165
145
166
-
* nix flake check: Show which outputs failed or succeeded [DeterminateSystems/nix-src#285](https://github.com/DeterminateSystems/nix-src/pull/285)
*Determinate Nix has a builtin function `builtins.filterAttrs`. [DeterminateSystems/nix-src#291](https://github.com/DeterminateSystems/nix-src/pull/291)
169
149
170
-
*Backward compatibility for Nix < 2.20: Git inputs using git-archive [DeterminateSystems/nix-src#278](https://github.com/DeterminateSystems/nix-src/pull/278)
150
+
*`builtins.fetchTree` implicitly sets `__final = true` when a `narHash` is supplied. This allows the tree to be substituted. [DeterminateSystems/nix-src#297](https://github.com/DeterminateSystems/nix-src/pull/297)
* Based on [upstream Nix 2.33.0](../release-notes/rl-2.33.md).
4
+
5
+
## `fetchTree` improvement
6
+
7
+
`builtins.fetchTree` now implicitly treats the fetched tree as "final" when a `narHash` is supplied, meaning that it will not return attributes like `lastModified` or `revCount` unless they were specified by the caller. This makes it possible to substitute the tree from a binary cache, which is often more efficient. Furthermore, for Git inputs, it allows Nix to perform a shallow fetch, which is much faster.
8
+
9
+
This is primarily useful for users of `flake-compat`, since it uses `builtins.fetchTree` internally.
0 commit comments