Skip to content

Commit 15d6091

Browse files
Merge pull request #300 from DeterminateSystems/release-v3.15.0/4d39722c-4c50-44a7-b6ee-7c381e27662b
Release v3.15.0
2 parents 8a4f12e + 7f80517 commit 15d6091

File tree

4 files changed

+58
-49
lines changed

4 files changed

+58
-49
lines changed

.version-determinate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.14.0
1+
3.15.0

doc/manual/source/SUMMARY.md.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@
144144
- [Contributing](development/contributing.md)
145145
- [Determinate Nix Release Notes](release-notes-determinate/index.md)
146146
- [Changes between Nix and Determinate Nix](release-notes-determinate/changes.md)<!-- next -->
147+
- [Release 3.15.0 (2025-12-19)](release-notes-determinate/v3.15.0.md)
147148
- [Release 3.14.0 (2025-12-08)](release-notes-determinate/v3.14.0.md)
148149
- [Release 3.13.2 (2025-11-19)](release-notes-determinate/v3.13.2.md)
149150
- [Release 3.13.1 (2025-11-12)](release-notes-determinate/v3.13.1.md)
Lines changed: 28 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changes between Nix and Determinate Nix
22

3-
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 -->
44

55
* In Determinate Nix, flakes are stable. You no longer need to enable the `flakes` experimental feature.
66

@@ -22,9 +22,9 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
2222

2323
<!-- Determinate Nix version 3.5.1 -->
2424

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)
2626

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))
2828

2929
<!-- Determinate Nix version 3.5.2 -->
3030

@@ -34,40 +34,29 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
3434

3535
<!-- Determinate Nix version 3.6.2 -->
3636

37-
* Faster `nix store 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)
3838

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)
4040

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)
4441
<!-- Determinate Nix version 3.6.3 revoked -->
4542

4643
<!-- Determinate Nix version 3.6.4 revoked -->
4744

4845
<!-- Determinate Nix version 3.6.5 -->
4946

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)
5548

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)
5950

6051
<!-- Determinate Nix version 3.6.6 -->
6152

6253
<!-- Determinate Nix version 3.6.7 -->
6354

6455
<!-- Determinate Nix version 3.6.8 -->
6556

66-
* Add lazy-locks setting by @edolstra in [DeterminateSystems/nix-src#113](https://github.com/DeterminateSystems/nix-src/pull/113)
67-
6857
<!-- Determinate Nix version 3.7.0 -->
6958

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)
7160

7261
<!-- Determinate Nix version 3.8.0 -->
7362

@@ -81,21 +70,21 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
8170

8271
<!-- Determinate Nix version 3.8.5 -->
8372

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)
8574

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)
8776

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)
8978

9079
<!-- Determinate Nix version 3.8.6 -->
9180

9281
<!-- Determinate Nix version 3.9.0 -->
9382

94-
* Build-time flake inputs [DeterminateSystems/nix-src#49](https://github.com/DeterminateSystems/nix-src/pull/49)
83+
* Determinate Nix allows flake inputs to be fetched at build time. [DeterminateSystems/nix-src#49](https://github.com/DeterminateSystems/nix-src/pull/49)
9584

9685
<!-- Determinate Nix version 3.9.1 -->
9786

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)
9988

10089
<!-- Determinate Nix version 3.10.0 -->
10190

@@ -104,26 +93,21 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
10493

10594
<!-- Determinate Nix version 3.11.0 -->
10695

107-
* Multithreaded evaluation support [DeterminateSystems/nix-src#125](https://github.com/DeterminateSystems/nix-src/pull/125)
96+
* Multithreaded evaluation support. [DeterminateSystems/nix-src#125](https://github.com/DeterminateSystems/nix-src/pull/125)
10897

10998
<!-- Determinate Nix version 3.11.1 -->
11099

111100

112101
<!-- Determinate Nix version 3.11.2 -->
113102

114-
* 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)
117104

118105
<!-- Determinate Nix version 3.11.3 -->
119106

120107

121108
<!-- Determinate Nix version 3.12.0 -->
122109

123-
* `nix flake clone` supports arbitrary input types. [DeterminateSystems/nix-src#229](https://github.com/DeterminateSystems/nix-src/pull/229)
124-
125-
* 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.
126-
[DeterminateSystems/nix-src#215](https://github.com/DeterminateSystems/nix-src/pull/215)
110+
* 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)
127111

128112
* Determinate Nix prints the Nix version when using `-vv` or higher verbosity. [DeterminateSystems/nix-src#237](https://github.com/DeterminateSystems/nix-src/pull/237)
129113

@@ -134,37 +118,33 @@ This section lists the differences between upstream Nix 2.32 and Determinate Nix
134118

135119
<!-- Determinate Nix version 3.12.2 -->
136120

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)
140122

141123
<!-- Determinate Nix version 3.13.0 -->
142124

143-
* Git fetching has a progress indication [DeterminateSystems/nix-src#250](https://github.com/DeterminateSystems/nix-src/pull/250)
144-
145125
<!-- Determinate Nix version 3.13.1 -->
146126

147127

148128
<!-- Determinate Nix version 3.13.2 -->
149129

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)
151131

152-
* nix flake prefetch-inputs: Skip build-time inputs [DeterminateSystems/nix-src#263](https://github.com/DeterminateSystems/nix-src/pull/263)
132+
* 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)
153133

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)
155135

156-
* Avoid unnecessary Git refetches [DeterminateSystems/nix-src#270](https://github.com/DeterminateSystems/nix-src/pull/270)
136+
<!-- Determinate Nix version 3.14.0 -->
157137

158-
* Use mirrored flake registry [DeterminateSystems/nix-src#271](https://github.com/DeterminateSystems/nix-src/pull/271)
138+
* `nix build` and `nix profile` report failing or succeeding installables. [DeterminateSystems/nix-src#281](https://github.com/DeterminateSystems/nix-src/pull/281)
159139

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)
161141

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)
163143

164-
* nix build, nix profile: Report failing/succeeding installables [DeterminateSystems/nix-src#281](https://github.com/DeterminateSystems/nix-src/pull/281)
144+
* 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)
165145

166-
* nix flake check: Show which outputs failed or succeeded [DeterminateSystems/nix-src#285](https://github.com/DeterminateSystems/nix-src/pull/285)
146+
<!-- Determinate Nix version 3.15.0 -->
167147

168-
* Add `nix ps` command [DeterminateSystems/nix-src#282](https://github.com/DeterminateSystems/nix-src/pull/282)
148+
* Determinate Nix has a builtin function `builtins.filterAttrs`. [DeterminateSystems/nix-src#291](https://github.com/DeterminateSystems/nix-src/pull/291)
169149

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)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Release 3.15.0 (2025-12-19)
2+
3+
* 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.
10+
11+
PR: [DeterminateSystems/nix-src#297](https://github.com/DeterminateSystems/nix-src/pull/297)
12+
13+
## New builtin function `builtins.filterAttrs`
14+
15+
Nixpkgs heavily relies on this function to select attributes from an attribute set:
16+
17+
```nix
18+
filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
19+
```
20+
21+
Determinate Nix now has this function built-in, which makes it much faster.
22+
23+
PR: [DeterminateSystems/nix-src#291](https://github.com/DeterminateSystems/nix-src/pull/291)
24+
25+
## New Contributors
26+
* @not-ronjinger made their first contribution in [DeterminateSystems/nix-src#291](https://github.com/DeterminateSystems/nix-src/pull/291)
27+
28+
**Full Changelog**: [v3.14.0...v3.15.0](https://github.com/DeterminateSystems/nix-src/compare/v3.14.0...v3.15.0)

0 commit comments

Comments
 (0)