The PoC implements flake-parts partitions functionality.
Longer version:
while the module system does a good job at preserving laziness, the fact that a development related import can define packages means that in order to evaluate packages, you need to evaluate at least to the point where you can conclude that the development related import does not actually define a packages attribute. While the actual evaluation is cheap, it can only happen after fetching the input, which is not as cheap.
The "production" flow of the PoC uses nixpkgs#hello-unfree
under the hood.
- GitHub template
- flake (
nix flake init
), potentially upstreaming it
nix
with flakes functionality enableddirenv
[optionally, for development only]
nix run github:ink-splatters/flake-partitions-poc
The flow uses another flake-parts partition (and that's the whole point).
nix develop --accept-flake-config
Alternatively, if you have direnv
installed:
direnv allow .
Currently, the formatter is alejandra
nix fmt .
Normally, pre-commit hooks are installed during dev shell initialization. This also can be done manually, using:
nix run .#install-hooks
To manually run the checks:
nix flake check