I’d like to hear some of your thoughts/experiences of packaging third-party software outside of nixpkgs.
nixpkgs is pretty big, so I think it’d be helpful if we make it easy to keep niche/‘leaf’ packages out of nixpkgs. Flakes seem to work fairly well for packages that are developed by Nix users, as the flake.nix
, flake.lock
and the lock file generated by dream2nix/gomod2nix/etc can be updated in tandem with regular development.
For projects that aren’t mostly developed by Nix users, what are good patterns for packaging those? Especially committing the generated lock files seems like it’d be painful: they’d easily go out of sync with the project itself (breaking the nix build and making bisecting hard), or updating them could be automated, but that’d lead to quite a bit of PR noise.
Another option is to keep the flakes in a separate repo, which seems to work fine-ish (e.g. raboof/nix-pisignage: nix flake to run pisignage-server - Codeberg.org, raboof/nix-dependency-track: nix packaging of dependency-track - Codeberg.org), but I’d be curious about recommendations.
What would be the best approach for projects that are nix-friendly but not primarily developed by nix users? Perhaps adding a second ‘nix-foo’ repository next to the ‘foo’ repository of the software being packaged?