1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-24 22:11:15 +02:00

release notes: 2.29.0

This commit is contained in:
John Ericson 2025-05-14 18:43:53 -04:00
parent 18894c934f
commit d5e7359155
18 changed files with 156 additions and 155 deletions

View file

@ -1,19 +0,0 @@
---
synopsis: "C API: functions for locking and loading a flake"
issues: 10435
prs: [12877, 13098]
---
This release adds functions to the C API for handling the loading of flakes. Previously, this had to be worked around by using `builtins.getFlake`.
C API consumers and language bindings now have access to basic locking functionality.
It does not expose the full locking API, so that the implementation can evolve more freely.
Locking is controlled with the functions, which cover the common use cases for consuming a flake:
- `nix_flake_lock_flags_set_mode_check`
- `nix_flake_lock_flags_set_mode_virtual`
- `nix_flake_lock_flags_set_mode_write_as_needed`
- `nix_flake_lock_flags_add_input_override`, which also enables `virtual`
This change also introduces the new `nix-fetchers-c` library, whose single purpose for now is to manage the (`nix.conf`) settings for the built-in fetchers.
More details can be found in the [C API documentation](@docroot@/c-api.md).

View file

@ -1,8 +0,0 @@
---
synopsis: "No longer copy flakes that are in the nix store"
issues: 10435
prs: [12877, 13098]
---
Previously, we would duplicate entries like `path:/nix/store/*` back into the Nix store.
This was prominently visible for pinned system flake registry entries in NixOS, e.g., when running `nix run nixpkgs#hello`.

View file

@ -1,9 +0,0 @@
---
synopsis: "Consistently preserve error messages from cached evaluation"
issues: [12762]
prs: [12809]
---
In one code path, we are not returning the errors cached from prior evaluation, but instead throwing generic errors stemming from the lack of value (due to the error).
These generic error messages were far less informative.
Now we consistently return the original error message.

View file

@ -1,8 +0,0 @@
---
synopsis: "Faster blake3 hashing"
issues:
prs: [12676]
---
The implementation for blake3 hashing is now multi-threaded and used memory-mapped IO.
Benchmark results can be found the [pull request](https://github.com/NixOS/nix/pull/12676).

View file

@ -1,7 +0,0 @@
---
synopsis: "Fix progress bar for S3 binary caches and make file transfers interruptible"
issues: [12877, 13098]
prs: [12538]
---
The progress bar now correctly display upload/download progress for S3 up/downloads. S3 uploads are now interruptible.

View file

@ -1,7 +0,0 @@
---
synopsis: "Add host attribute of github/gitlab flakerefs to URL serialization"
issues:
prs: [12580]
---
Resolved an issue where `github:` or `gitlab:` URLs lost their `host` attribute when written to a lockfile, resulting in invalid URLs.

View file

@ -1,15 +0,0 @@
---
synopsis: "Multiple signatures support in store urls"
issues:
prs: [12976]
---
Added support for a `secretKeyFiles` URI parameter in Nix store URIs, allowing multiple signing key files to be specified as a comma-separated list.
This enables signing paths with multiple keys. This helps with [RFC #149](https://github.com/NixOS/rfcs/pull/149) to enable binary cache key rotation in the NixOS infra.
Example usage:
```bash
nix copy --to "file:///tmp/store?secret-keys=/tmp/key1,/tmp/key2" \
"$(nix build --print-out-paths nixpkgs#hello)"
```

View file

@ -1,8 +0,0 @@
---
synopsis: "nix flake show now skips over import-from-derivation"
issues: 4265
prs: [12583]
---
Previously, if a flake contained outputs relying on [import from derivation](@docroot@/language/import-from-derivation.md) during evaluation, `nix flake show` would fail to display the rest of the flake. The updated behavior skips such outputs, allowing the rest of the flake to be shown.

View file

@ -1,16 +0,0 @@
---
synopsis: "Add `nix formatter build` and `nix formatter run` commands"
issues:
prs: [13063]
---
`nix formatter run` is an alias for `nix fmt`. Nothing new there.
`nix formatter build` is sort of like `nix build`: it builds, links, and prints a path to the formatter program:
```
$ nix formatter build
/nix/store/cb9w44vkhk2x4adfxwgdkkf5gjmm856j-treefmt/bin/treefmt
```
Note that unlike `nix build`, this prints the full path to the program, not just the store path (in the example above that would be `/nix/store/cb9w44vkhk2x4adfxwgdkkf5gjmm856j-treefmt`).

View file

@ -1,8 +0,0 @@
---
synopsis: "Amend OSC 8 escape stripping for xterm-style separator"
issues:
prs: [13109]
---
Improve terminal escape code filtering to understand a second type of hyperlink escape codes.
This in particular prevents parts of GCC 14's diagnostics from being improperly filtered away.

View file

@ -1,12 +0,0 @@
---
synopsis: "Prettified JSON output on the terminal"
issues: 12555
prs: [12652]
---
This makes the output easier to read.
Scripts are mostly unaffected because for those, stdout will be a file or a pipe, not a terminal, and for those, the old single-line behavior applies.
`--json --pretty` can be passed to enable it even if the output is not a terminal.
If your script creates a pseudoterminal for Nix's stdout, you can pass `--no-pretty` to disable the new behavior.

View file

@ -1,7 +0,0 @@
---
synopsis: "Repl: improve continuation prompt for incomplete expressions"
issues:
prs: [12846]
---
Improved REPL user experience by updating the continuation prompt from invisible blank spaces to a visible `" > "`, enhancing clarity when entering multi-line expressions.

View file

@ -1,9 +0,0 @@
---
synopsis: "REPL `:load-flake` and `:reload` now work together"
issues: [8753]
prs: [13180]
---
Previously, `:reload` only reloaded the files specified with `:load` (or on the command line).
Now, it also works with the flakes specified with `:load-flake` (or on the command line).
This makes it correctly reload everything that was previously loaded, regardless of what sort of thing (plain file or flake) each item is.

View file

@ -1,8 +0,0 @@
---
synopsis: "Increase retry delays on HTTP 429 Too Many Requests"
issues:
prs: [13052]
---
When downloading Nix, the retry delay was previously set to 0.25 seconds. It has now been increased to 1 minute to better handle transient CI errors, particularly on GitHub.

View file

@ -1,7 +0,0 @@
---
synopsis: "S3: opt-in the STSProfileCredentialsProvider"
issues:
prs: [12646]
---
Added support for STS-based authentication for S3-based binary caches, i.e. enabling seamless integration with `aws sso login`.

View file

@ -1,7 +0,0 @@
---
synopsis: "Reduce connect timeout for http substituter"
issues:
prs: [12876]
---
Previously, the Nix setting `connect-timeout` had no limit. It is now set to `5s`, offering a more practical default for users self-hosting binary caches, which may occasionally become unavailable, such as during updates.