Hacker News new | ask | show | jobs
by xyst 360 days ago
This is what I have been doing to manage development environments:

Workflows now revolve around nix.

Setup a shell.nix that defines development environment (whether it’s specific version of rust or python).

Then `nix develop` will setup an isolated environment. Do some work on project. Then exit shell.

No need to pollute machines environment with 100 versions of python/pip/uv.

Add in `direnv` and it will automatically activate the nix shell upon `cd`. Plays well with gui editors too, assuming direnv plugin/tooling available.

2 comments

Almost as good as mise then, but using 2 tools, one of which no one likes to learn + insecure plugins
We replaced asdf in our dependency management for local development with devbox (from jetify), it gave us the sweet spot between isolated shells (no nix scripting) and easy configuration (dependencies go to devbox.json)

With asdf we ran into many troubles with broken dependencies due to wrongly installed system (brew), etc. I fear with miso we could end up in the same place.

As a sidenote, I am starting to use Taskfile to manage build scripts and such. Then I can easily reuse the scripts when I change the environment (i.e. use vendor containers in CI instead of devbox).

I am trying to avoid mixing both concepts for better flexibility and less migration overhead.

I do something very similar, although I'm still on nix-shell.

It works really well.