1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-10 20:46:01 +01:00

Merge pull request #133 from DeterminateSystems/release-v3.7.0/e7308877-4039-4616-be6c-4613680cf30f

Release v3.7.0
This commit is contained in:
detsys-spaghetti[bot] 2025-07-03 18:45:15 +00:00 committed by GitHub
commit 81672fee2a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 74 additions and 2 deletions

View file

@ -1 +1 @@
3.6.8
3.7.0

View file

@ -129,6 +129,7 @@
- [Contributing](development/contributing.md)
- [Determinate Nix Release Notes](release-notes-determinate/index.md)
- [Changes between Nix and Determinate Nix](release-notes-determinate/changes.md)<!-- next -->
- [Release 3.7.0 (2025-07-03)](release-notes-determinate/rl-3.7.0.md)
- [Release 3.6.8 (2025-06-25)](release-notes-determinate/rl-3.6.8.md)
- [Release 3.6.7 (2025-06-24)](release-notes-determinate/rl-3.6.7.md)
- [Release 3.6.6 (2025-06-17)](release-notes-determinate/rl-3.6.6.md)

View file

@ -1,6 +1,6 @@
# Changes between Nix and Determinate Nix
This section lists the differences between upstream Nix 2.29 and Determinate Nix 3.6.8.<!-- differences -->
This section lists the differences between upstream Nix 2.29 and Determinate Nix 3.7.0.<!-- differences -->
* In Determinate Nix, flakes are stable. You no longer need to enable the `flakes` experimental feature.
@ -86,3 +86,11 @@ This section lists the differences between upstream Nix 2.29 and Determinate Nix
* Sync 2.29.1 by @edolstra in [DeterminateSystems/nix-src#124](https://github.com/DeterminateSystems/nix-src/pull/124)
* Release v3.6.7 by @github-actions in [DeterminateSystems/nix-src#126](https://github.com/DeterminateSystems/nix-src/pull/126)
<!-- Determinate Nix version 3.7.0 -->
* Overriding deeply-nested transitive flake inputs now works, by @edolstra in [DeterminateSystems/nix-src#108](https://github.com/DeterminateSystems/nix-src/pull/108)
* `nix store delete` now explains why deletion fails by @edolstra in [DeterminateSystems/nix-src#130](https://github.com/DeterminateSystems/nix-src/pull/130)
* New command: `nix flake prefetch-inputs` for improved CI performance, by @edolstra in [DeterminateSystems/nix-src#127](https://github.com/DeterminateSystems/nix-src/pull/127)

View file

@ -0,0 +1,63 @@
# Release 3.7.0 (2025-07-03)
- Based on [upstream Nix 2.29.1](../release-notes/rl-2.29.md).
## What's Changed
### Prefetch flake inputs in parallel
By @edolstra in [DeterminateSystems/nix-src#127](https://github.com/DeterminateSystems/nix-src/pull/127)
This release brings the command `nix flake prefetch-inputs`.
Flake inputs are typically fetched "just in time."
That means Nix fetches a flake input when the evaluator needs it, and not before.
When the evaluator needs an input, evaluation is paused until the source is available.
This causes a significant slow-down on projects with lots of flake inputs.
The new command `nix flake prefetch-inputs` fetches all flake inputs in parallel.
We expect running this new command before building will dramatically improve evaluation performance for most projects, especially in CI.
Note that projects which with many unused flake inputs may not benefit from this change, since the new command fetches every input whether they're used or not.
### Deep flake input overrides now work as expected
By @edolstra in [DeterminateSystems/nix-src#108](https://github.com/DeterminateSystems/nix-src/pull/108)
An override like:
```
inputs.foo.inputs.bar.inputs.nixpkgs.follows = "nixpkgs";
```
implicitly set `inputs.foo.inputs.bar` to `flake:bar`, which led to an unexpected error like:
```
error: cannot find flake 'flake:bar' in the flake registries
```
We now no longer create a parent override (like for `foo.bar` in the example above) if it doesn't set an explicit ref or follows attribute.
We only recursively apply its child overrides.
### `nix store delete` now shows you why deletion was not possible
By @edolstra in [DeterminateSystems/nix-src#130](https://github.com/DeterminateSystems/nix-src/pull/130)
For example:
```
error: Cannot delete path '/nix/store/6fcrjgfjip2ww3sx51rrmmghfsf60jvi-patchelf-0.14.3'
because it's referenced by the GC root '/home/eelco/Dev/nix-master/build/result'.
error: Cannot delete path '/nix/store/rn0qyn3kmky26xgpr2n10vr787g57lff-cowsay-3.8.4'
because it's referenced by the GC root '/proc/3600568/environ'.
error: Cannot delete path '/nix/store/klyng5rpdkwi5kbxkncy4gjwb490dlhb-foo.drv'
because it's in use by '{nix-process:3605324}'.
```
### Lazy-tree improvements
- Improved lazy-tree evaluation caching for flakes accessed with a `path` flakeref by @edolstra in [DeterminateSystems/nix-src#131](https://github.com/DeterminateSystems/nix-src/pull/131)
**Full Changelog**: [v3.6.8...v3.7.0](https://github.com/DeterminateSystems/nix-src/compare/v3.6.8...v3.7.0)