nix-ecosystem
Nix traps that read as success. Everything here is a failure that leaves no error behind — a check that verified nothing, a pin that landed on the wrong version, an option that silently does not exist. Base language mechanics are assumed; this file carries only what gets it wrong.
Flakes
A flake build reads the git tree, not the working tree
nix build .#pkg, nix flake check, and nix eval .#x all resolve self through the git-tree fetcher, which
walks git ls-files rather than the raw filesystem. A tracked file's uncommitted edits are still visible —
Nix prints warning: Git tree '...' is dirty to say so — but an untracked file does not exist in that tree
at all, no matter what is on disk. A path-based evaluation that never goes through getFlake/fetchTree —
nix-instantiate --eval, import ./x, nix build -f default.nix — reads the raw filesystem instead, so
untracked files and uncommitted edits are both visible there. Getting this backwards costs real time either
direction: assuming a flake build sees everything on disk, or assuming it sees only what is committed.