Skip to content

Commit 7af6329

Browse files
authored
Merge pull request #12326 from NixOS/release-notes
Nix 2.26 release notes
2 parents 069ca2a + 21f2e29 commit 7af6329

File tree

9 files changed

+197
-83
lines changed

9 files changed

+197
-83
lines changed

doc/manual/rl-next/ignore-local-registries.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

doc/manual/rl-next/nix-copy-flags.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

doc/manual/rl-next/nix-instantiate-raw.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

doc/manual/rl-next/nix-sshopts-parsing.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

doc/manual/rl-next/relative-path-flakes.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

doc/manual/source/SUMMARY.md.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
- [Contributing](development/contributing.md)
131131
- [Releases](release-notes/index.md)
132132
{{#include ./SUMMARY-rl-next.md}}
133+
- [Release 2.26 (2025-01-22)](release-notes/rl-2.26.md)
133134
- [Release 2.25 (2024-11-07)](release-notes/rl-2.25.md)
134135
- [Release 2.24 (2024-07-31)](release-notes/rl-2.24.md)
135136
- [Release 2.23 (2024-06-03)](release-notes/rl-2.23.md)
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Release 2.26.0 (2025-01-22)
2+
3+
- Support for relative path inputs [#10089](https://github.com/NixOS/nix/pull/10089)
4+
5+
Flakes can now refer to other flakes in the same repository using relative paths, e.g.
6+
```nix
7+
inputs.foo.url = "path:./foo";
8+
```
9+
uses the flake in the `foo` subdirectory of the referring flake. For more information, see the documentation on [the `path` flake input type](@docroot@/command-ref/new-cli/nix3-flake.md#path-fetcher).
10+
11+
This feature required a change to the lock file format. Previous Nix versions will not be able to use lock files that have locks for relative path inputs in them.
12+
13+
- Flake lock file generation now ignores local registries [#12019](https://github.com/NixOS/nix/pull/12019)
14+
15+
When resolving indirect flake references like `nixpkgs` in `flake.nix` files, Nix will no longer use the system and user flake registries. It will only use the global flake registry and overrides given on the command line via `--override-flake`.
16+
17+
This avoids accidents where users have local registry overrides that map `nixpkgs` to a `path:` flake in the local file system, which then end up in committed lock files pushed to other users.
18+
19+
In the future, we may remove the use of the registry during lock file generation altogether. It's better to explicitly specify the URL of a flake input. For example, instead of
20+
```nix
21+
{
22+
outputs = { self, nixpkgs }: { ... };
23+
}
24+
```
25+
write
26+
```nix
27+
{
28+
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
29+
outputs = { self, nixpkgs }: { ... };
30+
}
31+
```
32+
33+
- `nix copy` supports `--profile` and `--out-link` [#11657](https://github.com/NixOS/nix/pull/11657)
34+
35+
The `nix copy` command now has flags `--profile` and `--out-link`, similar to `nix build`. `--profile` makes a profile point to the
36+
top-level store path, while `--out-link` create symlinks to the top-level store paths.
37+
38+
For example, when updating the local NixOS system profile from a NixOS system closure on a remote machine, instead of
39+
```
40+
# nix copy --from ssh://server $path
41+
# nix build --profile /nix/var/nix/profiles/system $path
42+
```
43+
you can now do
44+
```
45+
# nix copy --from ssh://server --profile /nix/var/nix/profiles/system $path
46+
```
47+
The advantage is that this avoids a time window where *path* is not a garbage collector root, and so could be deleted by a concurrent `nix store gc` process.
48+
49+
- `nix-instantiate --eval` now supports `--raw` [#12119](https://github.com/NixOS/nix/pull/12119)
50+
51+
The `nix-instantiate --eval` command now supports a `--raw` flag, when used
52+
the evaluation result must be a string, which is printed verbatim without
53+
quotation marks or escaping.
54+
55+
- Improved `NIX_SSHOPTS` parsing for better SSH option handling [#5181](https://github.com/NixOS/nix/issues/5181) [#12020](https://github.com/NixOS/nix/pull/12020)
56+
57+
The parsing of the `NIX_SSHOPTS` environment variable has been improved to handle spaces and quotes correctly.
58+
Previously, incorrectly split SSH options could cause failures in commands like `nix-copy-closure`,
59+
especially when using complex SSH invocations such as `-o ProxyCommand="ssh -W %h:%p ..."`.
60+
61+
This change introduces a `shellSplitString` function to ensure
62+
that `NIX_SSHOPTS` is parsed in a manner consistent with shell
63+
behavior, addressing common parsing errors.
64+
65+
For example, the following now works as expected:
66+
67+
```bash
68+
export NIX_SSHOPTS='-o ProxyCommand="ssh -W %h:%p ..."'
69+
```
70+
71+
This update improves the reliability of SSH-related operations using `NIX_SSHOPTS` across Nix CLIs.
72+
73+
- Nix is now built using Meson
74+
75+
As proposed in [RFC 132](https://github.com/NixOS/rfcs/pull/132), Nix's build system now uses Meson/Ninja. The old Make-based build system has been removed.
76+
77+
- Evaluation caching now works for dirty Git workdirs [#11992](https://github.com/NixOS/nix/pull/11992)
78+
79+
# Contributors
80+
81+
This release was made possible by the following 45 contributors:
82+
83+
- Anatoli Babenia [**(@abitrolly)**](https://github.com/abitrolly)
84+
- Domagoj Mišković [**(@allrealmsoflife)**](https://github.com/allrealmsoflife)
85+
- Yaroslav Bolyukin [**(@CertainLach)**](https://github.com/CertainLach)
86+
- bryango [**(@bryango)**](https://github.com/bryango)
87+
- tomberek [**(@tomberek)**](https://github.com/tomberek)
88+
- Matej Urbas [**(@mupdt)**](https://github.com/mupdt)
89+
- elikoga [**(@elikoga)**](https://github.com/elikoga)
90+
- wh0 [**(@wh0)**](https://github.com/wh0)
91+
- Félix [**(@picnoir)**](https://github.com/picnoir)
92+
- Valentin Gagarin [**(@fricklerhandwerk)**](https://github.com/fricklerhandwerk)
93+
- Gavin John [**(@Pandapip1)**](https://github.com/Pandapip1)
94+
- Travis A. Everett [**(@abathur)**](https://github.com/abathur)
95+
- Vladimir Panteleev [**(@CyberShadow)**](https://github.com/CyberShadow)
96+
- Ilja [**(@suruaku)**](https://github.com/suruaku)
97+
- Jason Yundt [**(@Jayman2000)**](https://github.com/Jayman2000)
98+
- Mike Kusold [**(@kusold)**](https://github.com/kusold)
99+
- Andy Hamon [**(@andrewhamon)**](https://github.com/andrewhamon)
100+
- Brian McKenna [**(@puffnfresh)**](https://github.com/puffnfresh)
101+
- Greg Curtis [**(@gcurtis)**](https://github.com/gcurtis)
102+
- Andrew Poelstra [**(@apoelstra)**](https://github.com/apoelstra)
103+
- Linus Heckemann [**(@lheckemann)**](https://github.com/lheckemann)
104+
- Tristan Ross [**(@RossComputerGuy)**](https://github.com/RossComputerGuy)
105+
- Dominique Martinet [**(@martinetd)**](https://github.com/martinetd)
106+
- h0nIg [**(@h0nIg)**](https://github.com/h0nIg)
107+
- Eelco Dolstra [**(@edolstra)**](https://github.com/edolstra)
108+
- Shahar "Dawn" Or [**(@mightyiam)**](https://github.com/mightyiam)
109+
- NAHO [**(@trueNAHO)**](https://github.com/trueNAHO)
110+
- Ryan Hendrickson [**(@rhendric)**](https://github.com/rhendric)
111+
- the-sun-will-rise-tomorrow [**(@the-sun-will-rise-tomorrow)**](https://github.com/the-sun-will-rise-tomorrow)
112+
- Connor Baker [**(@ConnorBaker)**](https://github.com/ConnorBaker)
113+
- Cole Helbling [**(@cole-h)**](https://github.com/cole-h)
114+
- Jack Wilsdon [**(@jackwilsdon)**](https://github.com/jackwilsdon)
115+
- ‮rekcäH nitraM‮ [**(@dwt)**](https://github.com/dwt)
116+
- Martin Fischer [**(@not-my-profile)**](https://github.com/not-my-profile)
117+
- John Ericson [**(@Ericson2314)**](https://github.com/Ericson2314)
118+
- Graham Christensen [**(@grahamc)**](https://github.com/grahamc)
119+
- Sergei Zimmerman [**(@xokdvium)**](https://github.com/xokdvium)
120+
- Siddarth Kumar [**(@siddarthkay)**](https://github.com/siddarthkay)
121+
- Sergei Trofimovich [**(@trofi)**](https://github.com/trofi)
122+
- Robert Hensing [**(@roberth)**](https://github.com/roberth)
123+
- Mutsuha Asada [**(@momeemt)**](https://github.com/momeemt)
124+
- Parker Jones [**(@knotapun)**](https://github.com/knotapun)
125+
- Jörg Thalheim [**(@Mic92)**](https://github.com/Mic92)
126+
- dbdr [**(@dbdr)**](https://github.com/dbdr)
127+
- myclevorname [**(@myclevorname)**](https://github.com/myclevorname)
128+
- Philipp Otterbein

maintainers/data/release-credits-email-to-handle.json

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,39 @@
9898
"[email protected]": "a-kenji",
9999
"[email protected]": "0x5a4",
100100
"[email protected]": "brianmcgee",
101-
"[email protected]": "squalus"
101+
"[email protected]": "squalus",
102+
"[email protected]": "kusold",
103+
"37929162+mergify[bot]@users.noreply.github.com": "mergify[bot]",
104+
"[email protected]": "suruaku",
105+
"[email protected]": "andrewhamon",
106+
"[email protected]": "andrewhamon",
107+
"[email protected]": "siddarthkay",
108+
"[email protected]": "apoelstra",
109+
"[email protected]": "martinetd",
110+
"[email protected]": "RossComputerGuy",
111+
"[email protected]": "bryango",
112+
"[email protected]": "allrealmsoflife",
113+
"[email protected]": "ConnorBaker",
114+
"[email protected]": "momeemt",
115+
"[email protected]": "not-my-profile",
116+
"[email protected]": "trueNAHO",
117+
"[email protected]": "knotapun",
118+
"[email protected]": "CertainLach",
119+
"[email protected]": "elikoga",
120+
"[email protected]": "gcurtis",
121+
"[email protected]": "lheckemann",
122+
"[email protected]": "mightyiam",
123+
124+
"[email protected]": "grahamc",
125+
126+
"[email protected]": "mupdt",
127+
"[email protected]": "abitrolly",
128+
"[email protected]": "h0nIg",
129+
"[email protected]": "CyberShadow",
130+
"[email protected]": "Pandapip1",
131+
"[email protected]": "picnoir",
132+
"[email protected]": "myclevorname",
133+
"[email protected]": "dbdr",
134+
"[email protected]": "jackwilsdon",
135+
"[email protected]": "the-sun-will-rise-tomorrow"
102136
}

maintainers/data/release-credits-handle-to-name.json

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,37 @@
8686
"Aleksanaa": "Aleksana",
8787
"YorikSar": "Yuriy Taraday",
8888
"kjeremy": "Jeremy Kolb",
89-
"artemist": "Artemis Tosini"
89+
"artemist": "Artemis Tosini",
90+
"the-sun-will-rise-tomorrow": null,
91+
"gcurtis": "Greg Curtis",
92+
"ConnorBaker": "Connor Baker",
93+
"abitrolly": "Anatoli Babenia",
94+
"allrealmsoflife": "Domagoj Mi\u0161kovi\u0107",
95+
"andrewhamon": "Andy Hamon",
96+
"picnoir": "F\u00e9lix",
97+
"dbdr": null,
98+
"suruaku": "Ilja",
99+
"jackwilsdon": "Jack Wilsdon",
100+
"mergify[bot]": null,
101+
"kusold": "Mike Kusold",
102+
"lheckemann": "Linus Heckemann",
103+
"h0nIg": null,
104+
"grahamc": "Graham Christensen",
105+
"not-my-profile": "Martin Fischer",
106+
"CyberShadow": "Vladimir Panteleev",
107+
"Pandapip1": "Gavin John",
108+
"RossComputerGuy": "Tristan Ross",
109+
"elikoga": null,
110+
"martinetd": "Dominique Martinet",
111+
"knotapun": "Parker Jones",
112+
"mightyiam": "Shahar \"Dawn\" Or",
113+
"siddarthkay": "Siddarth Kumar",
114+
"apoelstra": "Andrew Poelstra",
115+
"myclevorname": null,
116+
"CertainLach": "Yaroslav Bolyukin",
117+
"trueNAHO": "NAHO",
118+
"wh0": null,
119+
"mupdt": "Matej Urbas",
120+
"momeemt": "Mutsuha Asada",
121+
"dwt": "\u202erekc\u00e4H nitraM\u202e"
90122
}

0 commit comments

Comments
 (0)