aboutsummaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
blob: d120e39fc4e1faaa37091eb85622d477f35afbfa (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
# Changes

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