feat: add Nix flake for reproducible dev environment#76
feat: add Nix flake for reproducible dev environment#76davidlghellin wants to merge 10 commits intomicrosoft:mainfrom
Conversation
|
@davidlghellin - thx for the PR. I'm not familiar with nix, what is the value over uv? Currently the project is set up to do the save via uv... install uv, then run |
Nix doesn’t replace uv — it just wraps the existing workflow. The flake mainly provides: Pinned system dependencies (e.g., Python 3.13, ruff). uv manages Python packages but not the Python interpreter or system tools. One-command setup: nix develop gives you Python + uv ready to use and creates the virtualenv automatically (uv venv, uv sync, etc.). Reproducibility across machines: anyone using Nix gets the same environment regardless of their local Python version or system state. Under the hood it still uses uv exactly as the project already does — Nix just ensures the environment is consistent. So you can think of it as: Nix manages the environment, uv manages the Python dependencies. |

Why this change is needed
One-command dev environment with everything ready to go.
nix developsets up Python, all dependencies (including optional extras), and dev tools automatically.How
Add a
flake.nixthat provides a single-command dev setup vianix develop:uvfor fast dependency management andrufffor lintinguv pip install --group devTest
nix developcreates the venv and installs all dependenciespytestsuccessfully