Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .version-determinate
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.5.0
3.5.1
3 changes: 2 additions & 1 deletion doc/manual/source/SUMMARY.md.in
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@
- [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.5.0 (2025-05-09)](release-notes-determinate/rl-3.5.0.md)
- [Release 3.5.1 (2025-05-09)](release-notes-determinate/rl-3.5.1.md)
- [~~Release 3.5.0 (2025-05-09)~~](release-notes-determinate/rl-3.5.0.md)
- [Release 3.4.2 (2025-05-05)](release-notes-determinate/rl-3.4.2.md)
- [Release 3.4.0 (2025-04-25)](release-notes-determinate/rl-3.4.0.md)
- [Release 3.3.0 (2025-04-11)](release-notes-determinate/rl-3.3.0.md)
Expand Down
8 changes: 7 additions & 1 deletion doc/manual/source/release-notes-determinate/changes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changes between Nix and Determinate Nix

This section lists the differences between upstream Nix 2.28 and Determinate Nix 3.5.0.<!-- differences -->
This section lists the differences between upstream Nix 2.28 and Determinate Nix 3.5.1.<!-- differences -->

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

Expand All @@ -19,3 +19,9 @@ This section lists the differences between upstream Nix 2.28 and Determinate Nix
<!-- Determinate Nix version 3.4.2 -->

<!-- Determinate Nix version 3.5.0 -->

<!-- Determinate Nix version 3.5.1 -->

* `nix upgrade-nix` is now inert, and suggests using `determinate-nixd upgrade` -- [DeterminateSystems/nix-src#55](https://github.com/DeterminateSystems/nix-src/pull/55)

* Initial Lazy Trees support has been merged, but remains off by default. ([DeterminateSystems/nix-src#27](https://github.com/DeterminateSystems/nix-src/pull/27), [DeterminateSystems/nix-src#56](https://github.com/DeterminateSystems/nix-src/pull/56))
57 changes: 57 additions & 0 deletions doc/manual/source/release-notes-determinate/rl-3.5.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Release 3.5.1 (2025-05-09)

* Based on [upstream Nix 2.28.3](../release-notes/rl-2.28.md).

## What's Changed

Most notably, Lazy Trees has merged in to Determinate Nix and is in Feature Preview status, but remains disabled by default.
Lazy trees massively improves performance in virtually all scenarios because it enables Nix to avoid making unnecessary copies of files into the Nix store.
In testing, we saw iteration times on Nixpkgs **drop from over 12 seconds to 3.5 seconds**.

After upgrading to Determinate Nix 3.5.1 with `sudo determinate-nixd upgrade`, enable lazy trees by adding this to `/etc/nix/nix.custom.conf`:

```
lazy-trees = true
```

Please note that our full flake regression test suite passes with no changes with lazy trees, and please report compatibility issues.

Read [this GitHub comment](https://github.com/DeterminateSystems/nix-src/pull/27#pullrequestreview-2822153088) for further details and next steps.
We'll be publishing an update on the [Determinate Systems blog](https://determinate.systems/posts/) in the next few days with more information as well.

Relevant PRs:
* Lazy trees v2 by @edolstra in [DeterminateSystems/nix-src#27](https://github.com/DeterminateSystems/nix-src/pull/27)
* Improve lazy trees backward compatibility by @edolstra in [DeterminateSystems/nix-src#56](https://github.com/DeterminateSystems/nix-src/pull/56)


### Additional changes in this release:
* Bug fix: Flake input URLs are canonicalized before checking flake.lock file staleness, avoiding needlessly regenerating flake.lock files with `dir` in URL-style flakerefs by @edolstra in [DeterminateSystems/nix-src#57](https://github.com/DeterminateSystems/nix-src/pull/57)
* `nix upgrade-nix` is deprecated in favor of `determinate-nixd upgrade`, by @gustavderdrache in [DeterminateSystems/nix-src#55](https://github.com/DeterminateSystems/nix-src/pull/55)
* UX: Improved build failure and dependency failure error messages to include needed output paths by @edolstra in [DeterminateSystems/nix-src#58](https://github.com/DeterminateSystems/nix-src/pull/58).

Previously:

```
error: builder for '/nix/store/[...]-nested-failure-bottom.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/[...]-nested-failure-middle.drv' failed to build
error: 1 dependencies of derivation '/nix/store/[...]-nested-failure-top.drv' failed to build
```

Now:

```
error: Cannot build '/nix/store/w37gflm9wz9dcnsgy3sfrmnlvm8qigaj-nested-failure-bottom.drv'.
Reason: builder failed with exit code 1.
Output paths:
/nix/store/yzybs8kp35dfipbzdlqcc6lxz62hax04-nested-failure-bottom
error: Cannot build '/nix/store/00gr5hlxfc03x2675w6nn3pwfrz2fr62-nested-failure-middle.drv'.
Reason: 1 dependency failed.
Output paths:
/nix/store/h781j5h4bdchmb4c2lvy8qzh8733azhz-nested-failure-middle
error: Cannot build '/nix/store/8am0ng1gyx8sbzyr0yx6jd5ix3yy5szc-nested-failure-top.drv'.
Reason: 1 dependency failed.
Output paths:
/nix/store/fh12637kgvp906s9yhi9w2dc7ghfwxs1-nested-failure-top
```

**Full Changelog**: [v3.4.2...v3.5.1](https://github.com/DeterminateSystems/nix-src/compare/v3.4.2...v3.5.1)