Minimal reproducible nix flake templates
nix flake init -t github:LovelaceAcademy/nix-templates#template-name
- hix: A haskell.nix (hix) template
- hix-plutus: A plutus template using haskell.nix
- hor: A haskell template using horizon-platform
- hor-plutus: A plutus template using horizon-platform
- pix: A PureScript purs-nix template
- pix-ctl: A minimal cardano-transaction-lib template using pix
- pix-ctl-full: A optioned cardano-transaction-lib template using pix
While I agree that storing lock files in templates is not ideal, there is no way to be sure the template is working if we do not store lock files. It's a trade-off, we prefer to have working templates than up-to-date dependencies. That said, we try to keep all templates here in sync with upstream / dependencies as far as possible.
It depends on upstream supporting it, and also our capacity to test in our CI. Right now only these systems are supported:
- x86_64-linux (all templates)
- aarch64-linux (hix and hix-*)
It depends on the template:
- hix, hor, pix: you'll need at least 8GB RAM and 10GB HDD
- hix-plutus, pix-ctl: you'll need at least 16GB RAM (for HDD) or 12GB RAM (for SSD). At least 20GB of available space.
- You can use prebuilt binaries if you accept flake cache settings, to do that you need to be a trusted-user.
- Haskell.nix (hix) is known for having slow evaluation/build times, you might try horizon-platform (hor) for a faster alternative.
- If you hardware is constrained it will take more time building, using a SSD will potentially speed-up things. Remember to close everything in the first build to not be OOM killed.
This is a know issue (NixOS/nix#6642). Be sure to initialize a git repo before (git init
).