Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Reading your linked post, it seems you are wrestling with how Nix works.

Nix is hard to learn. The concepts used are almost the same, but different. That's because it's solving slightly different problems than package managers currently do.

As the overriding example shows, the versions are pinned by hash and are stored in a file. What about it is not maintainable or scalable?



view as:

> Reading your linked post, it seems you are wrestling with how Nix works.

Not only me.

> That's because it's solving slightly different problems than package managers currently do.

We keep hearing this claim, and hardly any proof of that.

> As the overriding example shows, the versions are pinned by hash and are stored in a file. What about it is not maintainable or scalable?

1. Commit hashes are not versions

2. Hunting down every commit hash of every package to pin down the exact version is neither maintainable nor scalable


> Hunting down every commit hash of every package to pin down the exact version is neither maintainable nor scalable

I believe flakes will make this a lot easier, but it's not quite here yet.


In terms of version pinning, flakes are essentially just an in-tree equivalent of niv, I will say.

> I believe flakes will make this a lot easier

Somewhat, I guess? It will apparently let you write this:

  {
    inputs = {
      home-manager.url = "github:nix-community/home-manager";
    };
  }
where you can manually point to a specific commit/branch for a tool.

Better than nothing, I guess :)


Legal | privacy