I find the need to include additional libraries to make flakes usable for some reason a weird hurdle I don't personally enjoy (i.e. flake-parts or systems)
I find the need to include additional libraries to make flakes usable for some reason a weird hurdle I don't personally enjoy (i.e. flake-parts or systems)
It's even more of a plus that it is aware of Git and makes rather surprisingly intelligent decisions when automatically upgrading the system on a schedule (as one example, it seems to be able to deal with when the Git repository has staged or unstaged changes just fine, producing commits with just the lockfile changes.)
It also can't do transient overrides which is quite literally the essential reason that Flakes is killer to me.
For example, I can cross-compile to riscv64-linux, including a bunch of 3rd party flakes repos *specifically* because I refer to them and then override their nixpkgs to point to my nixpkgs with various cross-compilation fixes.
Definitely not possible to do this with niv.
It also does nothing to solve the countless issues with channels that I've watched afflict countless new Nix users, every week, for 3+ years. [insert the usual 8-stop troubleshoot list when a user has any issue possibly related to channels]
Flakes to me introduced a lot of overhead beyond what niv can provide.
I get 99% value just pinning my top level dependencies since most of the time I'm referring nixpkgs + 1-2 other packages.
You can also just look at the niv sources.json file pretty easily if you knew the URL. Rather trivial command to run.
I don't find the above compelling (or correct?)
What's the Niv equivalent of this?
# flake $ nix run github:fzakaria/mvn2nix#mvn2nix
At this point I recommend we take this through another medium like email or feel free to open up a discourse to help fill in the knowledge gap. Feel free to tag me on it.
But niv has been great, I wish we can have patching natively so all my tons of patches can be bolted on faster.