Nix 2.13.0 released

Hi,

I’m pleased to announce the availability of Nix 2.13.0. It will be available from Download Nix / NixOS | Nix & NixOS and http://releases.nixos.org/?prefix=nix/nix-2.13.0/.

Here are the release notes:

  • 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.

    # 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 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,

    # nix-build /nix/store/gzaflydcr6sb3567hap9q6srzx8ggdgg-glibc-2.33-78.drv^dev
    

    now works just as

    # nix-build glibc^dev
    

    does already.

  • On Linux, nix develop now sets the personality 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.

19 Likes

Unfortunately, this release has a serious regression in the evaluator. We’ll follow it up with a point release.

Cause of the regression ^

5 Likes

Is it now also possible to disable the global registry by setting flake-registry to empty (#5420).

For example using the cli:
nix --flake-registry "" registry list
will show you only your user entries.

1 Like

With “flake capabilites” leaking into regular old-style expressions as well, can’t we make the experimental feature flakes available without also having to enable nix-command?

I do not really see a reason for nix-command being enabled for nix-build -I nixpkgs=github:nixos/nixpkgs/nixos-unstable '<nixpkgs>' -A hello or builtins.getFlake being used in a regular “old school” shell.nix.

7 Likes

I made a 2.13.1 release that fixes this and a few smaller regressions.

3 Likes

This does not require the nix-command feature. For instance, nix-build --experimental-features 'flakes' -I nixpkgs=github:nixos/nixpkgs/nixos-unstable '<nixpkgs>' -A hello works.

7 Likes

Did something break?

❯ nix-build '/nix/store/xz5yya8qjcj0fv0nfcvxyj7hzcy54vfg-blockscout-0.0.0.drv'
/nix/store/97099b8shhy6vm31yc9184sr9q03496w-blockscout-0.0.0
❯ nix-build '/nix/store/xz5yya8qjcj0fv0nfcvxyj7hzcy54vfg-blockscout-0.0.0.drv^out'
error: getting status of '/nix/store/xz5yya8qjcj0fv0nfcvxyj7hzcy54vfg-blockscout-0.0.0.drv^out': No such file or directory
❯ nix --version
nix (Nix) 2.13.2
1 Like

@nrdxp Looks like it. Can you make an issue for that?

1 Like

:+1: nix-build: caret (`^`) doesn't work as advertised · Issue #7682 · NixOS/nix · GitHub

1 Like