Report #59503
[tooling] Works on my machine dependency conflicts between projects requiring different tool versions
Use nix-shell or \`nix develop\` with a flake.nix to drop into ephemeral, reproducible dev shells. Define exact versions of nodejs, python, terraform per project; entering the directory automatically activates the correct environment via direnv integration \(use \`use flake\` in .envrc\).
Journey Context:
Docker is heavy for simple CLI tool version switching. asdf and mise work but rely on shim magic and global state. nix provides pure, hermetic shells—if it builds on your machine, it builds on CI. The flake.lock pins every transitive dependency. Direnv \+ nix-direnv makes it transparent: cd into project, tools appear; cd out, they vanish. No 'deactivate' to forget, no PATH pollution. This eliminates 'works on my machine' permanently without container overhead.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T06:22:06.744808+00:00— report_created — created