aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/release-notes
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/src/release-notes')
-rw-r--r--doc/manual/src/release-notes/rl-2.12.md43
-rw-r--r--doc/manual/src/release-notes/rl-2.13.md44
-rw-r--r--doc/manual/src/release-notes/rl-next.md62
3 files changed, 105 insertions, 44 deletions
diff --git a/doc/manual/src/release-notes/rl-2.12.md b/doc/manual/src/release-notes/rl-2.12.md
new file mode 100644
index 000000000..e2045d7bf
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.12.md
@@ -0,0 +1,43 @@
+# Release 2.12 (2022-12-06)
+
+* On Linux, Nix can now run builds in a user namespace where they run
+ as root (UID 0) and have 65,536 UIDs available.
+ <!-- FIXME: move this to its own section about system features -->
+ This is primarily useful for running containers such as `systemd-nspawn`
+ inside a Nix build. For an example, see [`tests/systemd-nspawn/nix`][nspawn].
+
+ [nspawn]: https://github.com/NixOS/nix/blob/67bcb99700a0da1395fa063d7c6586740b304598/tests/systemd-nspawn.nix.
+
+ A build can enable this by setting the derivation attribute:
+
+ ```
+ requiredSystemFeatures = [ "uid-range" ];
+ ```
+
+ The `uid-range` [system feature] requires the [`auto-allocate-uids`]
+ setting to be enabled.
+
+ [system feature]: ../command-ref/conf-file.md#conf-system-features
+
+* Nix can now automatically pick UIDs for builds, removing the need to
+ create `nixbld*` user accounts. See [`auto-allocate-uids`].
+
+ [`auto-allocate-uids`]: ../command-ref/conf-file.md#conf-auto-allocate-uids
+
+* On Linux, Nix has experimental support for running builds inside a
+ cgroup. See
+ [`use-cgroups`](../command-ref/conf-file.md#conf-use-cgroups).
+
+* `<nix/fetchurl.nix>` now accepts an additional argument `impure` which
+ defaults to `false`. If it is set to `true`, the `hash` and `sha256`
+ arguments will be ignored and the resulting derivation will have
+ `__impure` set to `true`, making it an impure derivation.
+
+* If `builtins.readFile` is called on a file with context, then only
+ the parts of the context that appear in the content of the file are
+ retained. This avoids a lot of spurious errors where strings end up
+ having a context just because they are read from a store path
+ ([#7260](https://github.com/NixOS/nix/pull/7260)).
+
+* `nix build --json` now prints some statistics about top-level
+ derivations, such as CPU statistics when cgroups are enabled.
diff --git a/doc/manual/src/release-notes/rl-2.13.md b/doc/manual/src/release-notes/rl-2.13.md
new file mode 100644
index 000000000..168708113
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.13.md
@@ -0,0 +1,44 @@
+# Release 2.13 (2023-01-17)
+
+* The `repeat` and `enforce-determinism` options have been removed
+ since they had been broken under many circumstances for a long time.
+
+* You can now use [flake references] in the [old command line interface], e.g.
+
+ [flake references]: ../command-ref/new-cli/nix3-flake.md#flake-references
+ [old command line interface]: ../command-ref/main-commands.md
+
+ ```shell-session
+ # nix-build flake:nixpkgs -A hello
+ # nix-build -I nixpkgs=flake:github:NixOS/nixpkgs/nixos-22.05 \
+ '<nixpkgs>' -A hello
+ # NIX_PATH=nixpkgs=flake:nixpkgs nix-build '<nixpkgs>' -A hello
+ ```
+
+* Instead of "antiquotation", the more common term [string interpolation](../language/string-interpolation.md) is now used consistently.
+ Historical release notes were not changed.
+
+* Error traces have been reworked to provide detailed explanations and more
+ accurate error locations. A short excerpt of the trace is now shown by
+ default when an error occurs.
+
+* Allow explicitly selecting outputs in a store derivation installable, just like we can do with other sorts of installables.
+ For example,
+ ```shell-session
+ # nix build /nix/store/gzaflydcr6sb3567hap9q6srzx8ggdgg-glibc-2.33-78.drv^dev
+ ```
+ now works just as
+ ```shell-session
+ # nix build nixpkgs#glibc^dev
+ ```
+ does already.
+
+* On Linux, `nix develop` now sets the
+ [*personality*](https://man7.org/linux/man-pages/man2/personality.2.html)
+ for the development shell in the same way as the actual build of the
+ derivation. This makes shells for `i686-linux` derivations work
+ correctly on `x86_64-linux`.
+
+* You can now disable the global flake registry by setting the `flake-registry`
+ configuration option to an empty string. The same can be achieved at runtime with
+ `--flake-registry ""`.
diff --git a/doc/manual/src/release-notes/rl-next.md b/doc/manual/src/release-notes/rl-next.md
index bf51aa1f7..7e8344e63 100644
--- a/doc/manual/src/release-notes/rl-next.md
+++ b/doc/manual/src/release-notes/rl-next.md
@@ -1,48 +1,22 @@
# Release X.Y (202?-??-??)
-* `<nix/fetchurl.nix>` now accepts an additional argument `impure` which
- defaults to `false`. If it is set to `true`, the `hash` and `sha256`
- arguments will be ignored and the resulting derivation will have
- `__impure` set to `true`, making it an impure derivation.
-
-* If `builtins.readFile` is called on a file with context, then only the parts
- of that context that appear in the content of the file are retained.
- This avoids a lot of spurious errors where some benign strings end-up having
- a context just because they are read from a store path
- ([#7260](https://github.com/NixOS/nix/pull/7260)).
-
-* Nix can now automatically pick UIDs for builds, removing the need to
- create `nixbld*` user accounts.
-
- See [`auto-allocate-uids`].
-
- [`auto-allocate-uids`]: (../command-ref/conf-file.md#conf-auto-allocate-uids)
-
-* On Linux, Nix can now run builds in a user namespace where the build
- runs as root (UID 0) and has 65,536 UIDs available.
-
- <!-- FIXME: move this to its own section about system features -->
-
- This is primarily useful for running containers such as `systemd-nspawn`
- inside a Nix build. For an example, see [`tests/systemd-nspawn/nix`][nspawn].
-
- [nspawn]: https://github.com/NixOS/nix/blob/67bcb99700a0da1395fa063d7c6586740b304598/tests/systemd-nspawn.nix.
-
- A build can enable this by by setting the derivation attribute:
-
+* A new function `builtins.readFileType` is available. It is similar to
+ `builtins.readDir` but acts on a single file or directory.
+
+* The `builtins.readDir` function has been optimized when encountering not-yet-known
+ file types from POSIX's `readdir`. In such cases the type of each file is/was
+ discovered by making multiple syscalls. This change makes these operations
+ lazy such that these lookups will only be performed if the attribute is used.
+ This optimization affects a minority of filesystems and operating systems.
+
+* In derivations that use structured attributes, you can now use `unsafeDiscardReferences`
+ to disable scanning a given output for runtime dependencies:
+ ```nix
+ __structuredAttrs = true;
+ unsafeDiscardReferences.out = true;
```
- requiredSystemFeatures = [ "uid-range" ];
- ```
-
- The `uid-range` [system feature] requires the [`auto-allocate-uids`]
- setting to be enabled.
-
- [system feature]: (../command-ref/conf-file.md#conf-system-features),
-
-* On Linux, Nix has experimental support for running builds inside a
- cgroup.
-
- See [`use-cgroups`](../command-ref/conf-file.md#conf-use-cgroups).
+ This is useful e.g. when generating self-contained filesystem images with
+ their own embedded Nix store: hashes found inside such an image refer
+ to the embedded store and not to the host's Nix store.
-* `nix build --json` now prints some statistics about top-level
- derivations, such as CPU statistics when cgroups are enabled.
+ This requires the `discard-references` experimental feature.