aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/release-notes/rl-1.8.md
blob: 59af363e89d8098c79b0aeafaa42e7ed1ba2c8c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Release 1.8 (2014-12-14)

  - Breaking change: to address a race condition, the remote build hook
    mechanism now uses `nix-store
            --serve` on the remote machine. This requires build slaves to be
    updated to Nix 1.8.

  - Nix now uses HTTPS instead of HTTP to access the default binary
    cache, `cache.nixos.org`.

  - `nix-env` selectors are now regular expressions. For instance, you
    can do
    
        $ nix-env -qa '.*zip.*'
    
    to query all packages with a name containing `zip`.

  - `nix-store --read-log` can now fetch remote build logs. If a build
    log is not available locally, then ‘nix-store -l’ will now try to
    download it from the servers listed in the ‘log-servers’ option in
    nix.conf. For instance, if you have the configuration option
    
        log-servers = http://hydra.nixos.org/log
    
    then it will try to get logs from `http://hydra.nixos.org/log/base
    name of the
    store path`. This allows you to do things like:
    
        $ nix-store -l $(which xterm)
    
    and get a log even if `xterm` wasn't built locally.

  - New builtin functions: `attrValues`, `deepSeq`, `fromJSON`,
    `readDir`, `seq`.

  - `nix-instantiate --eval` now has a `--json` flag to print the
    resulting value in JSON format.

  - `nix-copy-closure` now uses `nix-store --serve` on the remote side
    to send or receive closures. This fixes a race condition between
    `nix-copy-closure` and the garbage collector.

  - Derivations can specify the new special attribute
    `allowedRequisites`, which has a similar meaning to
    `allowedReferences`. But instead of only enforcing to explicitly
    specify the immediate references, it requires the derivation to
    specify all the dependencies recursively (hence the name,
    requisites) that are used by the resulting output.

  - On Mac OS X, Nix now handles case collisions when importing closures
    from case-sensitive file systems. This is mostly useful for running
    NixOps on Mac OS X.

  - The Nix daemon has new configuration options `allowed-users`
    (specifying the users and groups that are allowed to connect to the
    daemon) and `trusted-users` (specifying the users and groups that
    can perform privileged operations like specifying untrusted binary
    caches).

  - The configuration option `build-cores` now defaults to the number of
    available CPU cores.

  - Build users are now used by default when Nix is invoked as root.
    This prevents builds from accidentally running as root.

  - Nix now includes systemd units and Upstart jobs.

  - Speed improvements to `nix-store
            --optimise`.

  - Language change: the `==` operator now ignores string contexts (the
    “dependencies” of a string).

  - Nix now filters out Nix-specific ANSI escape sequences on standard
    error. They are supposed to be invisible, but some terminals show
    them anyway.

  - Various commands now automatically pipe their output into the pager
    as specified by the `PAGER` environment variable.

  - Several improvements to reduce memory consumption in the evaluator.

This release has contributions from Adam Szkoda, Aristid Breitkreuz, Bob
van der Linden, Charles Strahan, darealshinji, Eelco Dolstra, Gergely
Risko, Joel Taylor, Ludovic Courtès, Marko Durkovic, Mikey Ariel, Paul
Colomiets, Ricardo M. Correia, Ricky Elrod, Robert Helgesson, Rob
Vermaas, Russell O'Connor, Shea Levy, Shell Turner, Sönke Hahn, Steve
Purcell, Vladimír Čunát and Wout Mertens.