Hacker News new | ask | show | jobs
by sshine 15 days ago
Nix is like Borg of Star Trek: It assimilates everything.

I'm not a Python developer, but I follow the news, and I agree that uv is the future of Python package management.

So if you're a Nix user and you want Nix to be opt-in, and you love uv, you use uv2nix, declare the uv lock file the source of truth and build your Nix derivations on that. When the hashpins live in the uv lock file, uv works just fine, but uv2nix produces derivations that are cached and can be embedded in CI or deployment strategies.

So... running CI on your uv-based project means your Nix tooling can cache both tooling and dependencies.

And... deploying your uv-based project you can build an OCI image with the same source of truth as the dev/CI environments.

This matters more for toolchains that YOLO more wrt. dependency pinning: Does that CLI call in your Dockerfile really pull the same thing down just because it's still v6.6.6? Some package managers provide a lot of sane choices, and I'd bet uv is one of them. But your Dockerfile is always a second-grade citizen unless you re-use the same base as a devcontainer.