By: syd <syd@kronor.io>
Measure architecture D instead of arguing about it, and reject it FINDINGS argued against deriving Nix derivations from Nx task graph from the shape of the data, and said plainly it was never built. Measured now, by comparing the unit-and-edge set each graph would generate rather than building a parallel implementation. They are not isomorphic, and both differences favour the project graph. The task graph is missing 5 of the 38 units: build-chain-a, build-cli, build-orphan, build-report and build-web, exactly the leaf projects nothing depends on, so ^build never pulls their build task in. Deriving from the task graph would not typecheck them, and Vitest does not typecheck either, so a type error in any leaf package would be invisible. That is the hole closed by putting the build derivations into nix flake check; architecture D reopens it by construction. It also adds 3 spurious edges: build-lexer, build-parser and build-runtime all wait for build-test-utils, because ^build follows every edge and Nx graph does not distinguish a dev dependency from a runtime one. The earlier claim that the task graph is "very nearly the project graph relabelled" was wrong in the direction that mattered.
Total
5m09s
Created Started Finished
| Time to Start | Worker time | Duration | Time to finish | Idle | |
|---|---|---|---|---|---|
| Config | 0s | 2s | 2s | 2s | 0s |
| Eval | 1s | 5m05s | 5m05s | 5m07s | 0s |
| Build | 5s | 3s | 5m04s | 5m09s | 0s |
| Suite | 0s | 5m11s | 5m09s | 5m09s | 0s |