Home Explore Blog Models CI



nix

3rd chunk of `doc/manual/source/release-notes/rl-2.29.md`
cd3bdb272ddf028fab23d0e210f5124d640ae1f0016e72f400000001000008f7
  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)"
  ```

- nix flake show now skips over import-from-derivation [#4265](https://github.com/NixOS/nix/issues/4265) [#12583](https://github.com/NixOS/nix/pull/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.

- Add `nix formatter build` and `nix formatter run` commands [#13063](https://github.com/NixOS/nix/pull/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`).

- Amend OSC 8 escape stripping for xterm-style separator [#13109](https://github.com/NixOS/nix/pull/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.


## Contributors


This release was made possible by the following 40 contributors:

- Farid Zakaria [**(@fzakaria)**](https://github.com/fzakaria)
- The Tumultuous Unicorn Of Darkness [**(@TheTumultuousUnicornOfDarkness)**](https://github.com/TheTumultuousUnicornOfDarkness)
- Robert Hensing [**(@roberth)**](https://github.com/roberth)
- Félix [**(@picnoir)**](https://github.com/picnoir)
- Valentin Gagarin [**(@fricklerhandwerk)**](https://github.com/fricklerhandwerk)

Title: Nix Feature Updates: Multi-Key Signing, Flake Display, and New Formatter Commands
Summary
This chunk details several updates to Nix. It introduces support for specifying multiple signing keys via a `secretKeyFiles` URI parameter in Nix store URIs, facilitating binary cache key rotation. The `nix flake show` command is enhanced to skip 'import-from-derivation' outputs, allowing the display of other flake details without error. New `nix formatter` commands are added, including `nix formatter build` for building and printing the full path to a formatter program, and `nix formatter run` as an alias for `nix fmt`. Additionally, terminal escape code filtering is improved to correctly handle xterm-style hyperlink escape codes, preventing issues with diagnostics like those from GCC 14. The section concludes by acknowledging the 40 contributors to this release.