Skip to content

Support dynamic derivation builds through the worker daemon - #1

Open
ryantm wants to merge 3 commits into
mainfrom
feat/dynamic-derivation-builds
Open

ryantm wants to merge 3 commits into
mainfrom
feat/dynamic-derivation-builds

Conversation

@ryantm

@ryantm ryantm commented Nov 8, 2026 •

Copy link
Copy Markdown

Summary

Complete the worker-daemon build path for consumers of dynamic derivations.
The evaluator already supports builtins.outputOf, but the worker client discarded
realized output paths and later queried the unresolved derivation for them.

  • Retain and use output realizations returned by BuildPathsWithResults.
  • Preserve nested dynamicOutputs in derivation JSON.
  • Reject dynamic inputs explicitly on the static-only gRPC build path.
  • Add a real-daemon regression covering fresh and cached builds with IFD disabled.
  • Add reproducible drvgo/UPM evaluation and application recompilation benchmarks.

Direct dynamic output strings as installables remain unsupported; consumers such
as drvgo's wrapper derivations are supported. No evaluator-time builds are added.

Validation

  • Fresh and cached dynamic-derivation daemon regression passed.
  • 17 dynamic-related unit tests and worker result parsing test passed.
  • cargo clippy --all-targets -- -D warnings, formatting, and ast-grep passed.
  • Five alternating UPM runs: evaluation 0.588s versus 1.373s (2.34x); cached builds 0.603s versus 1.407s (2.33x).
  • Fresh-source UPM builds and smoke tests passed, but the initial compilation samples used different job/core budgets and are not comparable. A matched-budget run failed on Determinate Nix with signal 9 in a generated forwarding derivation; no cgroup OOM was recorded. No compilation speedup is claimed.
  • Reproduction scripts, raw completed samples and limitations are in bench/results/dynamic-upm.md. The VM could not enable Nix sandboxing.

Text and test evidence are used because this is a CLI/daemon protocol change.

~ written by ⠕ Replit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant