Author: Tom Sydney Kerckhove <syd@cs-syd.eu>
Committer: Tom Sydney Kerckhove <NorfairKing@users.noreply.github.com>
Skip a build directory by its whole name, not by a prefix of it The discovery walk skipped any directory whose name started with "result", meaning to skip a nix build output. It also skipped one called "results", and every package under it went missing from discovery with nothing reported: a walk that finds no cabal file and a walk that refused to look are the same answer to a caller. What is left is dist-newstyle and anything hidden, compared as whole names. None of it matters inside a Nix build, where the source is a store path copied from the git tree and an ignored directory never arrives. It is for a working tree, and there dist-newstyle earns it: cabal unpacks a source-repository-package into dist-newstyle/src, cabal file and all. sydtest has one, and walking into it reports thirteen findings against a file nobody there wrote. A hidden directory is the same story, .stack-work most of all. Two names are gone rather than corrected. result is a symlink to a build output that holds no cabal file, and refusing to follow a symlink would lose a package a repository links in on purpose, which is the same silent loss in a different guise. Nothing puts a Haskell package under node_modules, so naming it only added something to be wrong about. The predicate is top-level and exported, where the walk had it in a where clause with no signature and no test. It is pure, so the prefix case is a unit test rather than a walk over a fixture, and there is a fixture too: a package two levels under a directory called results, which is what was being dropped. The fixture needed a line in .gitignore. The global ignore file has result*, which hides a directory called results the same way this walk did.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 25s | 1s | 1s | 26s | 25s |
| Eval | 26s | 10s | 10s | 37s | 0s |
| Build | 37s | 0s | 0s | 37s | 0s |
| Suite | 25s | 11s | 11s | 37s | 25s |