Hi,
So I left some comments and things in there, I'm not super proficient at nix or anything and I was hoping you would maybe iterate with me on how you'd prefer things to be set up.
Currently there is a default.nix
, which can build and install verifpal, and a nix/
directory which contains dependencies as well as a shell.nix
which you can enter (do nix-shell
in the nix/
directory) to get all the tools needed for updating the dependencies.
I just realized that I should probably use niv
throughout or not at all (it's very convenient but also not the canonical way of doing things so opinions vary).
Just for some idea what the tradeoffs are: niv
is kind of high maintenance since it pins everything which means you need to manually update the "pins" but that also means the build is completely reproducible very reliable. Currently I am not pinning nixpkgs
and I am subscribing to both the stable
channel and the unstable
channel of nixpkgs
because you need go 1.13
to build verifpal and stable
is still on 1.12.9
.
If you'd like to remove niv
then that would basically mean we'd remove the nix
folder, put deps.nix
in the main directory and you'd just have to have the vgo2nix
tool installed locally for updating deps.nix
.
If you'd like to go all in on niv
then that would mean I would import nixpkgs
from the niv
sources instead of from the channels.
Do you have any preferences or comments?
(you should be able to do a git clone
and then nix-build
to build or nix-env -if .
to install it into your environment)