aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/release-notes
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2022-11-03 17:43:40 +0100
committerEelco Dolstra <edolstra@gmail.com>2022-11-03 17:43:40 +0100
commitb95faccf03e5213b6087626ab8d46e0704aad6b5 (patch)
treef9d560f2004f951d8efbf1024292a88366d8efd7 /doc/manual/src/release-notes
parent47dec825c5daeeb9d615eb4d1eead3dbaa06c7c9 (diff)
parentdd1970c233a82328445b69e903574e14115ee933 (diff)
Merge remote-tracking branch 'origin/master' into auto-uid-allocation
Diffstat (limited to 'doc/manual/src/release-notes')
-rw-r--r--doc/manual/src/release-notes/rl-2.10.md31
-rw-r--r--doc/manual/src/release-notes/rl-2.11.md5
-rw-r--r--doc/manual/src/release-notes/rl-2.7.md33
-rw-r--r--doc/manual/src/release-notes/rl-2.8.md53
-rw-r--r--doc/manual/src/release-notes/rl-2.9.md47
-rw-r--r--doc/manual/src/release-notes/rl-next.md29
6 files changed, 173 insertions, 25 deletions
diff --git a/doc/manual/src/release-notes/rl-2.10.md b/doc/manual/src/release-notes/rl-2.10.md
new file mode 100644
index 000000000..b99dbeef0
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.10.md
@@ -0,0 +1,31 @@
+# Release 2.10 (2022-07-11)
+
+* `nix repl` now takes installables on the command line, unifying the usage
+ with other commands that use `--file` and `--expr`. Primary breaking change
+ is for the common usage of `nix repl '<nixpkgs>'` which can be recovered with
+ `nix repl --file '<nixpkgs>'` or `nix repl --expr 'import <nixpkgs>{}'`.
+
+ This is currently guarded by the `repl-flake` experimental feature.
+
+* A new function `builtins.traceVerbose` is available. It is similar
+ to `builtins.trace` if the `trace-verbose` setting is set to true,
+ and it is a no-op otherwise.
+
+* `nix search` has a new flag `--exclude` to filter out packages.
+
+* On Linux, if `/nix` doesn't exist and cannot be created and you're
+ not running as root, Nix will automatically use
+ `~/.local/share/nix/root` as a chroot store. This enables non-root
+ users to download the statically linked Nix binary and have it work
+ out of the box, e.g.
+
+ ```
+ # ~/nix run nixpkgs#hello
+ warning: '/nix' does not exists, so Nix will use '/home/ubuntu/.local/share/nix/root' as a chroot store
+ Hello, world!
+ ```
+
+* `flake-registry.json` is now fetched from `channels.nixos.org`.
+
+* Nix can now be built with LTO by passing `--enable-lto` to `configure`.
+ LTO is currently only supported when building with GCC.
diff --git a/doc/manual/src/release-notes/rl-2.11.md b/doc/manual/src/release-notes/rl-2.11.md
new file mode 100644
index 000000000..b322a4e5e
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.11.md
@@ -0,0 +1,5 @@
+# Release 2.11 (2022-08-24)
+
+* `nix copy` now copies the store paths in parallel as much as possible (again).
+ This doesn't apply for the `daemon` and `ssh-ng` stores which copy everything
+ in one batch to avoid latencies issues.
diff --git a/doc/manual/src/release-notes/rl-2.7.md b/doc/manual/src/release-notes/rl-2.7.md
new file mode 100644
index 000000000..2f3879422
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.7.md
@@ -0,0 +1,33 @@
+# Release 2.7 (2022-03-07)
+
+* Nix will now make some helpful suggestions when you mistype
+ something on the command line. For instance, if you type `nix build
+ nixpkgs#thunderbrd`, it will suggest `thunderbird`.
+
+* A number of "default" flake output attributes have been
+ renamed. These are:
+
+ * `defaultPackage.<system>` → `packages.<system>.default`
+ * `defaultApps.<system>` → `apps.<system>.default`
+ * `defaultTemplate` → `templates.default`
+ * `defaultBundler.<system>` → `bundlers.<system>.default`
+ * `overlay` → `overlays.default`
+ * `devShell.<system>` → `devShells.<system>.default`
+
+ The old flake output attributes still work, but `nix flake check`
+ will warn about them.
+
+* Breaking API change: `nix bundle` now supports bundlers of the form
+ `bundler.<system>.<name>= derivation: another-derivation;`. This
+ supports additional functionality to inspect evaluation information
+ during bundling. A new
+ [repository](https://github.com/NixOS/bundlers) has various bundlers
+ implemented.
+
+* `nix store ping` now reports the version of the remote Nix daemon.
+
+* `nix flake {init,new}` now display information about which files have been
+ created.
+
+* Templates can now define a `welcomeText` attribute, which is printed out by
+ `nix flake {init,new} --template <template>`.
diff --git a/doc/manual/src/release-notes/rl-2.8.md b/doc/manual/src/release-notes/rl-2.8.md
new file mode 100644
index 000000000..9778e8c3a
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.8.md
@@ -0,0 +1,53 @@
+# Release 2.8 (2022-04-19)
+
+* New experimental command: `nix fmt`, which applies a formatter
+ defined by the `formatter.<system>` flake output to the Nix
+ expressions in a flake.
+
+* Various Nix commands can now read expressions from standard input
+ using `--file -`.
+
+* New experimental builtin function `builtins.fetchClosure` that
+ copies a closure from a binary cache at evaluation time and rewrites
+ it to content-addressed form (if it isn't already). Like
+ `builtins.storePath`, this allows importing pre-built store paths;
+ the difference is that it doesn't require the user to configure
+ binary caches and trusted public keys.
+
+ This function is only available if you enable the experimental
+ feature `fetch-closure`.
+
+* New experimental feature: *impure derivations*. These are
+ derivations that can produce a different result every time they're
+ built. Here is an example:
+
+ ```nix
+ stdenv.mkDerivation {
+ name = "impure";
+ __impure = true; # marks this derivation as impure
+ buildCommand = "date > $out";
+ }
+ ```
+
+ Running `nix build` twice on this expression will build the
+ derivation twice, producing two different content-addressed store
+ paths. Like fixed-output derivations, impure derivations have access
+ to the network. Only fixed-output derivations and impure derivations
+ can depend on an impure derivation.
+
+* `nix store make-content-addressable` has been renamed to `nix store
+ make-content-addressed`.
+
+* The `nixosModule` flake output attribute has been renamed consistent
+ with the `.default` renames in Nix 2.7.
+
+ * `nixosModule` → `nixosModules.default`
+
+ As before, the old output will continue to work, but `nix flake check` will
+ issue a warning about it.
+
+* `nix run` is now stricter in what it accepts: members of the `apps`
+ flake output are now required to be apps (as defined in [the
+ manual](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run.html#apps)),
+ and members of `packages` or `legacyPackages` must be derivations
+ (not apps).
diff --git a/doc/manual/src/release-notes/rl-2.9.md b/doc/manual/src/release-notes/rl-2.9.md
new file mode 100644
index 000000000..98cc4235d
--- /dev/null
+++ b/doc/manual/src/release-notes/rl-2.9.md
@@ -0,0 +1,47 @@
+# Release 2.9 (2022-05-30)
+
+* Running Nix with the new `--debugger` flag will cause it to start a
+ repl session if an exception is thrown during evaluation, or if
+ `builtins.break` is called. From there you can inspect the values
+ of variables and evaluate Nix expressions. In debug mode, the
+ following new repl commands are available:
+
+ ```
+ :env Show env stack
+ :bt Show trace stack
+ :st Show current trace
+ :st <idx> Change to another trace in the stack
+ :c Go until end of program, exception, or builtins.break().
+ :s Go one step
+ ```
+
+ Read more about the debugger
+ [here](https://www.zknotes.com/note/5970).
+
+* Nix now provides better integration with zsh's `run-help`
+ feature. It is now included in the Nix installation in the form of
+ an autoloadable shell function, `run-help-nix`. It picks up Nix
+ subcommands from the currently typed in command and directs the user
+ to the associated man pages.
+
+* `nix repl` has a new build-and-link (`:bl`) command that builds a
+ derivation while creating GC root symlinks.
+
+* The path produced by `builtins.toFile` is now allowed to be imported
+ or read even with restricted evaluation. Note that this will not
+ work with a read-only store.
+
+* `nix build` has a new `--print-out-paths` flag to print the
+ resulting output paths. This matches the default behaviour of
+ `nix-build`.
+
+* You can now specify which outputs of a derivation `nix` should
+ operate on using the syntax `installable^outputs`,
+ e.g. `nixpkgs#glibc^dev,static` or `nixpkgs#glibc^*`. By default,
+ `nix` will use the outputs specified by the derivation's
+ `meta.outputsToInstall` attribute if it exists, or all outputs
+ otherwise.
+
+* `builtins.fetchTree` (and flake inputs) can now be used to fetch
+ plain files over the `http(s)` and `file` protocols in addition to
+ directory tarballs.
diff --git a/doc/manual/src/release-notes/rl-next.md b/doc/manual/src/release-notes/rl-next.md
index 7dd8387d8..68f7d1a9d 100644
--- a/doc/manual/src/release-notes/rl-next.md
+++ b/doc/manual/src/release-notes/rl-next.md
@@ -1,28 +1,7 @@
# Release X.Y (202?-??-??)
-* A number of "default" flake output attributes have been
- renamed. These are:
+* `<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.
- * `defaultPackage.<system>` → `packages.<system>.default`
- * `defaultApps.<system>` → `apps.<system>.default`
- * `defaultTemplate` → `templates.default`
- * `defaultBundler.<system>` → `bundlers.<system>.default`
- * `overlay` → `overlays.default`
- * `devShell.<system>` → `devShells.<system>.default`
-
- The old flake output attributes still work, but `nix flake check`
- will warn about them.
-
-* `nix bundle` breaking API change now supports bundlers of the form
- `bundler.<system>.<name>= derivation: another-derivation;`. This supports
- additional functionality to inspect evaluation information during bundling. A
- new [repository](https://github.com/NixOS/bundlers) has various bundlers
- implemented.
-
-* `nix store ping` now reports the version of the remote Nix daemon.
-
-* `nix flake {init,new}` now display information about which files have been
- created.
-
-* Templates can now define a `welcomeText` attribute, which is printed out by
- `nix flake {init,new} --template <template>`.