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
|
# Changes
## Unreleased
- Drawing an input from a source that isn't a directory stops populate,
instead of locking the flake with an empty URL, which Nix takes for the
current directory, copying it into the store: on a remote target, the
login directory.
- Git can't take a `git` source's `url` or `ref`, or a `pass` source's
`name`, for an option.
- `git` sources also refuse work trees whose `.git` directory contains
hooks, or in which a submodule's `.git` isn't a file naming a repository
in `.git/modules`, unless `reclone` is set.
- Drawing inputs refers to a source in a Git work tree as `git+file:` only
if a `git` source would use its `.git` directory, and else as `path:`.
- `git` sources with a branch or tag as `ref` follow it: populate fetches
the branch or tag on every run, and resets the work tree to what it
fetched.
- `writeDeploy`'s new `allocateTTY` runs `nixos-rebuild` with a terminal.
## 1.31.0
- New source types `flake` and `flake-input` deliver a flake, or one input
of a flake as its lock file pins it, as a link into the store, with
garbage collector roots for its inputs. With `fetchOnTarget`, the target
fetches them itself, which also works with `sudo`.
- `inputs` draws inputs of the flake in a source from other sources, by
rewriting its lock file, or through a generated flake. `flake` and
`flake-input` sources can also get `patches` applied, and be
`materialize`d as writable copies.
- `writeDeploy` deploys a flake from a source with its new `flake`
parameter.
- `prune` removes everything from the target directory that isn't a
configured source.
- Populate never changes or removes anything outside the target directory:
a symlink at the target path of a source gets replaced instead of written
through, source names must be portable file names, target paths must be
absolute and not `/`, and `git` sources refuse work trees whose `.git`
directory names places elsewhere, unless `reclone` is set.
- With rsync 3.5.0 or later, populating a `file` source fails if rsync
can't read `.rsync-filter` files that apply to it; `insecureLinks`
decides what to do instead.
- `writeDeploy` passes `--use-remote-sudo` only with a separate
`buildTarget`, and `--no-flake` if `/etc/nixos/flake.nix` exists and no
flake gets deployed.
- krops' flake provides krops' functions, and NixOS VM tests in `tests/`
cover populate.
|