1. 17
    1. 8

      I find it a bit underwhelming that this article is from 10 months ago, but that flakes are still not available in a main release of nix. This leads to a situation where one part of the community is invested in it, and uses it, while another considers it unusable for now, and continues using other tools for pinning and importing.

      1. 2

        Very good observation. Just because I have to enable flakes, I’m actively avoiding them. Sticking to niv until flakes are official, maybe.

        1. 3

          I had the same opinion of yours, but then I took the time to look at the material that’s available around like the nice nixos wiki page maintained by Mic92 and the yet unstable manual of the Nix that will be. That together with the fact that it’s possible to let collaborators start using Nix by directly installing the flake-enabled version convinced me to start using it. It think that as a community we should contribute at least by using it and giving feedback. What would be of projects like Linux or Debian if all their users installed the “stable” releases?

          1. 2

            It looks like the flakes branch was merged into master back in July. Do I still need to use a special flakes-enabled version of Nix, or is the feature included by default in recent releases?

            1. 4

              It is included by default in recent unstable releases. I.e. the nixUnstable attribute in nixpkgs.

            2. 3

              On my NixOS unstable updated a week ago the stock Nix release is still 2.3.10, not 2.4

    2. 6

      This sentence gets me worried:

      Note that any file that is not tracked by Git is invisible during Nix evaluation, in order to ensure hermetic evaluation.

      Now, Nix (a package manager, build system) becomes tied to one VCS. I know the others are not much used, but they are still used. Thus, to support other VCSes, Nix needs to learn to understand them, which just increases its complexity.

      1. 11

        Or you just have to accept that git, an open-source VCS, is a prerequisite for Nix, just as LLVM, an open-source compiler is a prerequisite for using Rust, for example.

      2. 4

        I’d read that as an example and I suppose (hope) it would be possible to add a feature that it does the same for other VCS. It’s a good feature and nothing new. mvn release:prepare does the same, and I don’t know for how many years.

      3. 4

        I don’t like it either, but flakes are still experimental and I’m sure patches for adding other VCSes are welcome.

    3. 5

      Is there a version of part 3 of this series (using flakes to manage NixOs system) which focuses on single-user home PC and ignores the containers stuff?

    4. 2

      Maybe not the best name for a positive feature…

      1. 5

        “flake” does have some negative connotations in English, but its primary sense is “small, thin piece of something larger”, which is pretty neutral. I too think of something like fish flakes when I read the term.

        1. 1

          Been dealing with flaky tests and flaky builds recently. I thought this article was going to be about how even Nix can produce flaky builds. I was wrong though.

      2. 4

        Fluke has managed to overcome worse - www.fluke.com

      3. 2

        Some time ago, IBM released mail client called Verse. The problem was that, for non-native speakers, the pronunciation was the same as Worse, which it was.

      4. 2

        It makes me think of fish flakes for some reason.