Hacker News new | ask | show | jobs
by Tractor8626 390 days ago
Wow.

1) you can python environment with dependencies! (can do that without nix)

2) you can pin dependencies by hash! (can be done with any tool mentioned in article: docker, pip, npm etc)

If you can't make reproducible dev environment in 2025 - it is 100% skill issue.

2 comments

Having to think about docker's hashing/caching scheme and also pip's and also npm's and to apply them each separately in CI and in a local environment and in dev/stage/prod... for a large repo that's a lot of work. Easy to overlook whichever one you're less concerned about at the time and put the repo in some kind of inconsistent state where something works here but not there.

There's a lot to be said for having a single lockfile for all of them.

No. It is not nearly as hard as you make it sound.

If I had to work with such mess of a project - I wouldnt bother with package managers at all. I just download and commit all dependencies to repo.

If dependencies are not supposed to change anyway - what is the point of downloading them from all over internet each time?

For 1), how?

I'm specifically interested in how you handle packages that use C extensions that link system libraries.

In such cases I use either docker or mmdebstrap.
Nix would work too, and that fact touches on one of the main advantages of Nix - it solves the problem at a low enough level that it works in all cases.
There is hidden assumption what using one tool for everything makes things easier.

Does it though? If using one tool is harder than using several - there is no advantage here.