A call for the Nix team to present a unified front on the outcome and strategy around Nix flakes

Incorrect. There is no --pure flag for nix build and friends or nix-build and (most) friends.
What you may be thinking of is either

  • --pure for nix-shell which only clears some envvars, and is only for development purposes obviously since nix-build doesn’t have this flag
  • the pure-eval setting which only disables the currentSystem and currentTime builtins, and restricts network access (the latter of which the build env already does anyway…) - note that it still provides getEnv builtin and therefore presumably allows using channels (I didn’t test this, but <> syntax reads from NIX_PATH so this is not really good enough IMO.)

If pure eval already existed I would’ve used it and never complained about flakes.
Unfortunately all the good features of nix are being bundled with the worst possible implementation of a lockfile spec.

EDIT: also, the nix team themselves are aware that pure-eval without flakes is a desirable feature, see these from over a year ago: 2023-09-25 Nix team meeting minutes #89 and Practical pure eval for paths in non-Flake CLIs · Issue #9329 · NixOS/nix · GitHub

Yes, you repeated what I said.

You wrote a whole essay about how I should not worry that they are unstable… when my points had nothing to do with that :laughing:
Flakes are slow and broken by design, I already laid out exactly the issues with them earlier in the reply that I linked.
I don’t care if they are “experimental” or not, I care that they suck. I want the nix team to break flakes and make them better.
Unfortunately Eelco and detsys are the ones who actively blocked any improvements and said “no we want flakes to be stable yesterday” and so we continue to see no progress.

5 Likes