3 ms·
This is what I have been doing to manage development environments: Workflows now revolve around nix. Setup a shell.nix that defines development environment (w
by xyst 1y 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.
- rkangel 1y agoI do something very similar, although I'm still on nix-shell. It works really well.
- literalAardvark 1y agoAlmost as good as mise then, but using 2 tools, one of which no one likes to learn + insecure plugins
- victor_vhv 1y agoWe 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.