diff --git a/doc/manual/rl-next/build-cores-auto-detect.md b/doc/manual/rl-next/build-cores-auto-detect.md deleted file mode 100644 index 67ab6995b..000000000 --- a/doc/manual/rl-next/build-cores-auto-detect.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -synopsis: "`build-cores = 0` now auto-detects CPU cores" -prs: [13402] ---- - -When `build-cores` is set to `0`, nix now automatically detects the number of available CPU cores and passes this value via `NIX_BUILD_CORES`, instead of passing `0` directly. This matches the behavior when `build-cores` is unset. This prevents the builder from having to detect the number of cores. diff --git a/doc/manual/rl-next/git-lfs-ssh.md b/doc/manual/rl-next/git-lfs-ssh.md deleted file mode 100644 index c49addf13..000000000 --- a/doc/manual/rl-next/git-lfs-ssh.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -synopsis: "Fix Git LFS SSH issues" -prs: [13743] -issues: [13337] ---- - -Fixed some outstanding issues with Git LFS and SSH. - -* Added support for `NIX_SSHOPTS`. -* Properly use the parsed port from URL. -* Better use of the response of `git-lfs-authenticate` to determine API endpoint when the API is not exposed on port 443. diff --git a/doc/manual/rl-next/port-in-store-uris.md b/doc/manual/rl-next/port-in-store-uris.md deleted file mode 100644 index 8291c0fd1..000000000 --- a/doc/manual/rl-next/port-in-store-uris.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -synopsis: "Add support for user@address:port syntax in store URIs" -prs: [3425] -issues: [7044] ---- - -It's now possible to specify the port used for the SSH stores directly in the store URL in accordance with [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986). Previously the only way to specify custom ports was via `ssh_config` or `NIX_SSHOPTS` environment variable, because Nix incorrectly passed the port number together with the host name to the SSH executable. This has now been fixed. - -This change affects [store references](@docroot@/store/types/index.md#store-url-format) passed via the `--store` and similar flags in CLI as well as in the configuration for [remote builders](@docroot@/command-ref/conf-file.md#conf-builders). For example, the following store URIs now work: - -- `ssh://127.0.0.1:2222` -- `ssh://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22` -- `ssh-ng://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22` diff --git a/doc/manual/rl-next/rfc4007-zone-id-in-uri-rfc6874.md b/doc/manual/rl-next/rfc4007-zone-id-in-uri-rfc6874.md deleted file mode 100644 index d5bc4736f..000000000 --- a/doc/manual/rl-next/rfc4007-zone-id-in-uri-rfc6874.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -synopsis: "Represent IPv6 RFC4007 ZoneId literals in conformance with RFC6874" -prs: [13445] ---- - -Prior versions of Nix since [#4646](https://github.com/NixOS/nix/pull/4646) accepted [IPv6 scoped addresses](https://datatracker.ietf.org/doc/html/rfc4007) in URIs like [store references](@docroot@/store/types/index.md#store-url-format) in the textual representation with a literal percent character: `[fe80::1%18]`. This was ambiguous, because the the percent literal `%` is reserved by [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986), since it's used to indicate percent encoding. Nix now requires that the percent `%` symbol is percent-encoded as `%25`. This implements [RFC6874](https://datatracker.ietf.org/doc/html/rfc6874), which defines the representation of zone identifiers in URIs. The example from above now has to be specified as `[fe80::1%2518]`. diff --git a/doc/manual/source/SUMMARY.md.in b/doc/manual/source/SUMMARY.md.in index cc4748f56..8fed98c2c 100644 --- a/doc/manual/source/SUMMARY.md.in +++ b/doc/manual/source/SUMMARY.md.in @@ -138,6 +138,7 @@ - [Contributing](development/contributing.md) - [Releases](release-notes/index.md) {{#include ./SUMMARY-rl-next.md}} + - [Release 2.31 (2025-08-21)](release-notes/rl-2.31.md) - [Release 2.30 (2025-07-07)](release-notes/rl-2.30.md) - [Release 2.29 (2025-05-14)](release-notes/rl-2.29.md) - [Release 2.28 (2025-04-02)](release-notes/rl-2.28.md) diff --git a/doc/manual/source/release-notes/rl-2.31.md b/doc/manual/source/release-notes/rl-2.31.md new file mode 100644 index 000000000..44f76052e --- /dev/null +++ b/doc/manual/source/release-notes/rl-2.31.md @@ -0,0 +1,69 @@ +# Release 2.31.0 (2025-08-21) + +- `build-cores = 0` now auto-detects CPU cores [#13402](https://github.com/NixOS/nix/pull/13402) + + When `build-cores` is set to `0`, nix now automatically detects the number of available CPU cores and passes this value via `NIX_BUILD_CORES`, instead of passing `0` directly. This matches the behavior when `build-cores` is unset. This prevents the builder from having to detect the number of cores. + +- Fix Git LFS SSH issues [#13337](https://github.com/NixOS/nix/issues/13337) [#13743](https://github.com/NixOS/nix/pull/13743) + + Fixed some outstanding issues with Git LFS and SSH. + + * Added support for `NIX_SSHOPTS`. + * Properly use the parsed port from URL. + * Better use of the response of `git-lfs-authenticate` to determine API endpoint when the API is not exposed on port 443. + +- Add support for user@address:port syntax in store URIs [#7044](https://github.com/NixOS/nix/issues/7044) [#3425](https://github.com/NixOS/nix/pull/3425) + + It's now possible to specify the port used for the SSH stores directly in the store URL in accordance with [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986). Previously the only way to specify custom ports was via `ssh_config` or `NIX_SSHOPTS` environment variable, because Nix incorrectly passed the port number together with the host name to the SSH executable. This has now been fixed. + + This change affects [store references](@docroot@/store/types/index.md#store-url-format) passed via the `--store` and similar flags in CLI as well as in the configuration for [remote builders](@docroot@/command-ref/conf-file.md#conf-builders). For example, the following store URIs now work: + + - `ssh://127.0.0.1:2222` + - `ssh://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22` + - `ssh-ng://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22` + +- Represent IPv6 RFC4007 ZoneId literals in conformance with RFC6874 [#13445](https://github.com/NixOS/nix/pull/13445) + + Prior versions of Nix since [#4646](https://github.com/NixOS/nix/pull/4646) accepted [IPv6 scoped addresses](https://datatracker.ietf.org/doc/html/rfc4007) in URIs like [store references](@docroot@/store/types/index.md#store-url-format) in the textual representation with a literal percent character: `[fe80::1%18]`. This was ambiguous, because the the percent literal `%` is reserved by [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986), since it's used to indicate percent encoding. Nix now requires that the percent `%` symbol is percent-encoded as `%25`. This implements [RFC6874](https://datatracker.ietf.org/doc/html/rfc6874), which defines the representation of zone identifiers in URIs. The example from above now has to be specified as `[fe80::1%2518]`. + + +## Contributors + + +This release was made possible by the following 34 contributors: + +- John Soo [**(@jsoo1)**](https://github.com/jsoo1) +- Alan Urmancheev [**(@alurm)**](https://github.com/alurm) +- Manse [**(@PedroManse)**](https://github.com/PedroManse) +- Pol Dellaiera [**(@drupol)**](https://github.com/drupol) +- DavHau [**(@DavHau)**](https://github.com/DavHau) +- Leandro Emmanuel Reina Kiperman [**(@kip93)**](https://github.com/kip93) +- h0nIg [**(@h0nIg)**](https://github.com/h0nIg) +- Philip Taron [**(@philiptaron)**](https://github.com/philiptaron) +- Eelco Dolstra [**(@edolstra)**](https://github.com/edolstra) +- Connor Baker [**(@ConnorBaker)**](https://github.com/ConnorBaker) +- kenji [**(@a-kenji)**](https://github.com/a-kenji) +- Oleksandr Knyshuk [**(@k1gen)**](https://github.com/k1gen) +- Maciej Krüger [**(@mkg20001)**](https://github.com/mkg20001) +- Justin Bailey [**(@jgbailey-well)**](https://github.com/jgbailey-well) +- Emily [**(@emilazy)**](https://github.com/emilazy) +- Volker Diels-Grabsch [**(@vog)**](https://github.com/vog) +- gustavderdrache [**(@gustavderdrache)**](https://github.com/gustavderdrache) +- Elliot Cameron [**(@de11n)**](https://github.com/de11n) +- Alexander V. Nikolaev [**(@avnik)**](https://github.com/avnik) +- tomberek [**(@tomberek)**](https://github.com/tomberek) +- Matthew Kenigsberg [**(@mkenigs)**](https://github.com/mkenigs) +- Sergei Zimmerman [**(@xokdvium)**](https://github.com/xokdvium) +- Cosima Neidahl [**(@OPNA2608)**](https://github.com/OPNA2608) +- John Ericson [**(@Ericson2314)**](https://github.com/Ericson2314) +- m4dc4p [**(@m4dc4p)**](https://github.com/m4dc4p) +- Graham Christensen [**(@grahamc)**](https://github.com/grahamc) +- Jason Yundt [**(@Jayman2000)**](https://github.com/Jayman2000) +- Jens Petersen [**(@juhp)**](https://github.com/juhp) +- the-sun-will-rise-tomorrow [**(@the-sun-will-rise-tomorrow)**](https://github.com/the-sun-will-rise-tomorrow) +- Farid Zakaria [**(@fzakaria)**](https://github.com/fzakaria) +- AGawas [**(@aln730)**](https://github.com/aln730) +- Robert Hensing [**(@roberth)**](https://github.com/roberth) +- Dmitry Bogatov [**(@KAction)**](https://github.com/KAction) +- Jörg Thalheim [**(@Mic92)**](https://github.com/Mic92) +- Philipp Otterbein