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

**URL:** https://discourse.nixos.org/t/a-call-for-the-nix-team-to-present-a-unified-front-on-the-outcome-and-strategy-around-nix-flakes/54959
**Category:** Nix
**Created:** [October 26, 2024, 12:18am UTC](https://discourse.nixos.org/t/a-call-for-the-nix-team-to-present-a-unified-front-on-the-outcome-and-strategy-around-nix-flakes/54959 "2024-10-26T00:18:27Z")
**Posts on this page:** 1
**Showing post:** 69

<div class="post-metadata">

### Author: ![waffle8946](https://discourse.nixos.org/user_avatar/discourse.nixos.org/waffle8946/32/27221_2.png) [@waffle8946](https://discourse.nixos.org/u/waffle8946)
#### Post date: [October 27, 2024, 3:08pm UTC](https://discourse.nixos.org/t/a-call-for-the-nix-team-to-present-a-unified-front-on-the-outcome-and-strategy-around-nix-flakes/54959/69 "2024-10-27T15:08:37Z")

</div>

> [@Birdee](#):
>
> what is npins plus --pure
> 
> If normal nix plus purity was what you wanted you would have what you want already

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`](https://nix.dev/manual/nix/2.18/command-ref/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](https://nix.dev/manual/nix/2.18/command-ref/conf-file#conf-pure-eval) 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](https://discourse.nixos.org/t/2023-09-25-nix-team-meeting-minutes-89/33489) and [Practical pure eval for paths in non-Flake CLIs · Issue #9329 · NixOS/nix · GitHub](https://github.com/NixOS/nix/issues/9329)

> [@Birdee](#):
>
> Flakes ARE a pure eval nix implementation.

Yes, you repeated what I said.

> [@Birdee](#):
>
> The general nix team and contributors all treat changes to flakes as if they were making changes to existing stable software because everyone uses them
> 
> So, it really doesnt make a ton of difference. They kinda already ARE part of stable, despite not technically being enabled by default.
> 
> All you need to do to pretend they are part of stable is add extra-experimental-features “nix-command flakes” or whatever to your build script in your custom installer ISO
> 
> and then you literally never need to interact with the fact that they are not technically stable yet.

You wrote a whole essay about how I should not worry that they are unstable… when my points had nothing to do with that 😆  
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.

---

_[View the full topic](https://discourse.nixos.org/t/a-call-for-the-nix-team-to-present-a-unified-front-on-the-outcome-and-strategy-around-nix-flakes/54959)._
