Flakes
Flakes are a (currently) experimental feature replacing the
channel
mechanism along with a few other Nix interfaces
(default.nix, shell.nix).
Reproducibility is achieved by declaring inputs in
flake.nix whose resolved versions are pinned in
flake.lock, like the package managers for many
programming languages, enabling easy updates of dependencies. In
addition, the project's interface is also declared in
flake.nix, creating a unified experience for
interacting with any Flake project.