Mine per-derivation build times from nom / nix logs into a --history file #3
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why (now concrete)
The emmett trial made the heuristic table's ceiling obvious: it only knows ~35 heavy-package substrings; everything else collapses to a flat 1 min. Any deep dependency chain then fabricates a long span (see #2). Real timings are the single biggest accuracy lever, and the plumbing already exists —
--history {name: minutes}is wired and history wins over the heuristic. Only the miner is missing.Proposal
Add a
nix-estimate-minesubcommand / helper that parses real build logs into{name: minutes}:nom --json/nix build --log-format internal-jsonevent stream — has per-drv start/stop, exact and cheap to parse.nix build -vlogs, diffing build-start/finish lines.store_name()(the same keycost()looks up) so mined files drop straight into--history.scale_to_corescan normalize to the 8-core baseline.Acceptance
Feed a captured emmett/aarch64 build log; produce a history JSON; re-run the estimator with
--historyand confirm the span is driven by real heavy derivations, not glue chains.Roadmap item #1. Complements #2 (which fixes the glue-chain artifact in the absence of history).