I’ve been experimenting with using nix to manage the development environment for a python-based web app. I initially generated a requirements.nix with pypi2nix but needed fairly significant manual updates to get everything sorted.
I’m pretty happy with how this works, but I’m leery of the potential for mistakes/divergence introduced by having separate authoritative definitions for packages installed in my personal dev environment and the production environment.
Does anyone have or know of good tooling/patterns for maintaining a single authoritative source?
I hope that pypi2nix will be able to cache results of single packages at some point. At the moment when a failure, one has to start from the beginning, which takes too much time on complex projects.
FWIW, I’m now happily managing the project mentioned here with mach-nix with most dependencies still specified in requirements.txt.
I never did share the requirements.nix version with the other developer on the project, but the mach-nix version has been stable enough for us to share even though he has minimal Nix knowledge.
I haven’t had time to evaluate whether moving to dream2nix is ripe yet.