For Developers
Flake inputs
Choosing version
Since this project uses flake-parts partitions module, flake inputs
are stored separately per each partition. This introduces possibility
of using different versions of inputs when evaluating different
flake output attributes. This is possible even when inputs share a
reference to the same branch. This is because commit revision is being
resolved and stored in the repo at the time of running nix flake lock
command, and this may happen at different times. In order to guarantee
that they share the same versions, use these rules:
- If the input repository uses tags - use them.
- If the input repository does not use tags - use commit hashes.
- For
nixpkgsuse commit hashes from the branch which is appropriate for this project, namelynixpkgs-{NIXOS_RELEASE_VERSION}-darwin. - For
home-manageruse commit hashes from the branch which corresponds to thenixpkgsversion, namelyrelease-${NIXOS_RELEASE_VERSION}. - For
nix-darwinuse commit hashes from the branch which corresponds to thenixpkgsversion, namelynix-darwin-${NIXOS_RELEASE_VERSION}. - For
nixvimuse commit hashes from the branch which corresponds to thenixpkgsversion, namelynixos-${NIXOS_RELEASE_VERSION}.
Control version of transitive dependencies
For each input of a flake type, identify its dependencies, define them
as this project's inputs and make them being used by the input with the
help of inputs.{NAME_OF_TRANSITIVE_INPUT}.follows property.