4.8 KiB
Release 2.31.0 (2025-08-21)
-
build-cores = 0now auto-detects CPU cores #13402When
build-coresis set to0, nix now automatically detects the number of available CPU cores and passes this value viaNIX_BUILD_CORES, instead of passing0directly. This matches the behavior whenbuild-coresis unset. This prevents the builder from having to detect the number of cores. -
Fix Git LFS SSH issues #13337 #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-authenticateto determine API endpoint when the API is not exposed on port 443.
- Added support for
-
Add support for user@address:port syntax in store URIs #7044 #3425
It's now possible to specify the port used for the SSH stores directly in the store URL in accordance with RFC3986. Previously the only way to specify custom ports was via
ssh_configorNIX_SSHOPTSenvironment 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 passed via the
--storeand similar flags in CLI as well as in the configuration for remote builders. For example, the following store URIs now work:ssh://127.0.0.1:2222ssh://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22ssh-ng://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22
-
Represent IPv6 RFC4007 ZoneId literals in conformance with RFC6874 #13445
Prior versions of Nix since #4646 accepted IPv6 scoped addresses in URIs like store references in the textual representation with a literal percent character:
[fe80::1%18]. This was ambiguous, because the the percent literal%is reserved by RFC3986, since it's used to indicate percent encoding. Nix now requires that the percent%symbol is percent-encoded as%25. This implements 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)
- Alan Urmancheev (@alurm)
- Manse (@PedroManse)
- Pol Dellaiera (@drupol)
- DavHau (@DavHau)
- Leandro Emmanuel Reina Kiperman (@kip93)
- h0nIg (@h0nIg)
- Philip Taron (@philiptaron)
- Eelco Dolstra (@edolstra)
- Connor Baker (@ConnorBaker)
- kenji (@a-kenji)
- Oleksandr Knyshuk (@k1gen)
- Maciej Krüger (@mkg20001)
- Justin Bailey (@jgbailey-well)
- Emily (@emilazy)
- Volker Diels-Grabsch (@vog)
- gustavderdrache (@gustavderdrache)
- Elliot Cameron (@de11n)
- Alexander V. Nikolaev (@avnik)
- tomberek (@tomberek)
- Matthew Kenigsberg (@mkenigs)
- Sergei Zimmerman (@xokdvium)
- Cosima Neidahl (@OPNA2608)
- John Ericson (@Ericson2314)
- m4dc4p (@m4dc4p)
- Graham Christensen (@grahamc)
- Jason Yundt (@Jayman2000)
- Jens Petersen (@juhp)
- the-sun-will-rise-tomorrow (@the-sun-will-rise-tomorrow)
- Farid Zakaria (@fzakaria)
- AGawas (@aln730)
- Robert Hensing (@roberth)
- Dmitry Bogatov (@KAction)
- Jörg Thalheim (@Mic92)
- Philipp Otterbein