A couple of days ago I discovered mise (pronounced "meez"). It's a polyglot tool version manager similar to asdf or pyenv, and an environment manager, like direnv, that is fast, reliable, has a declarative configuration and feels as good as cargo.
I got rid of hatch which I had previously been using only for downloading Pythons from python-build-standalone with the command hatch python install all --update. I have also stopped using Node from Homebrew, and removed custom scripts from my dotfiles that were used to keep pipx installations synchronized between my work and personal laptops.
My ~/.config/mise/config.toml now looks like this:
[]
= ["3.12", "3.11", "3.10", "3.9", "3.8"]
= "lts"
= "latest" # required by mise itself
= "latest"
= "latest"
= "latest"
= "latest"
[]
= true # pipx backend is experimental
I have also started using mise's environment management feature. I placed the .mise.local.toml file containing organization-specific environment variables in the folder with work repositories:
[]
= "..."
= "..."
= "..."
...
Everything is great so far.