# Dynamic Derivations + Dynamic build graphs: next steps

**URL:** https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409
**Category:** Announcements
**Created:** [August 7, 2026, 6:58pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409 "2026-08-07T18:58:35Z")
**Posts on this page:** 18
**Page:** 1

<div class="post-metadata">

### Author: ![tomberek](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomberek/32/283_2.png) [@tomberek](https://discourse.nixos.org/u/tomberek)
#### Post date: [August 7, 2026, 6:58pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/1 "2026-08-07T18:58:36Z")

</div>

After the long-history (see below) of Dynamic Derivations we are at a point where there are many groups exploring the feature and I am proposing a working group to:

- share the experiences of the implementors
- refine the user experience based on usage of the various PoCs
- determine infrastructure needs
- deduplicate work
- raise awareness
- build momentum for adoption
- … anything else relevant

I believe this feature has the potential to be a game-changer. Faster rebuilds, easier development, reduced pressure on CI systems, cacheable and alternative forms of instantiation, less need for “lang2nix”, close the gap with Bazel, and fine-grained incremental builds. Along with the existing work on [better schedulers](https://github.com/lovesegfault/rio-build), [RBE-style remote builders](https://github.com/Mic92/tribuchet), [bytecode evaluation](https://github.com/psyclyx/fix), [parallel eval](https://determinate.systems/blog/changelog-determinate-nix-3111/), [memory optimizations](https://github.com/NixOS/nix/pull/13407) (thanks @xokdvium !), and [so much more](https://discourse.nixos.org/t/nix-2-35-0-released/78914) - this is an exciting time for Nix and I can see DynDrvs as a way to fix some of the outstanding UX issues Nix has in day-to-day usage. There is even work to make IFD more performant, there is lots of design space to explore here. This should be a part of what Nix has to offer the world. @Ericson2314 has devoted years to this, and it deserves the payoff of becoming a mature feature.

This is a call to action. Let’s consider collaboration and a semimonthly meeting to at least say hello + consider next steps: [Dynamic Derivations Working Group - Crab Fit](https://crab.fit/dynamic-derivations-working-group-617234)

## History

Dynamic Derivations have been in-progress for a long time. This has much of the history that I can put together. Let me know if this can be more complete. (and if anyone can help move/migrate into the wiki?)

- [Build Systems à la Carte](https://www.microsoft.com/en-us/research/wp-content/uploads/2018/03/build-systems-final.pdf) : 2018

- RFC started Apr 2021 by @Ericson2314 and @L-as with [[RFC 0092] Computed derivations by Ericson2314 · Pull Request #92 · NixOS/rfcs · GitHub](https://github.com/NixOS/rfcs/pull/92) (after reworking RFC 0040). Based on

- Initial example PoC by @L-as [GitHub - L-as/nix-build.nix: nix-build.nix with RFC 92 · GitHub](https://github.com/L-as/nix-build.nix)

- Content-addressed Nix Dec 2021: [Implementing a content-addressed Nix](https://www.tweag.io/blog/2021-12-02-nix-cas-4/) by @thufschmitt.

- RFC Shepherds review and rework the proposal: @tomberek @ldesgoui @gytis-ivaskevicius @edolstra

- RFC accepted on Jan 2022: [Meeting 2021-12-15 · Issue #79 · NixOS/rfc-steering-committee · GitHub](https://github.com/NixOS/rfc-steering-committee/issues/79)

- Relevant paper on[applicative/monadic build systems](https://ndmitchell.com/downloads/paper-implementing_applicative_build_systems_monadically-01_jan_2022.pdf)

- Implementation tracking PR: [Tracking issue for RFC 92: Dynamic derivations · Issue #6316 · NixOS/nix · GitHub](https://github.com/NixOS/nix/issues/6316)

- The implementation work was primarily done via [many](https://github.com/NixOS/nix/pull/3746) [refactors](https://github.com/NixOS/nix/pull/3959) and [adding](https://github.com/NixOS/nix/pull/7601) [in](https://github.com/NixOS/nix/pull/8369) the [underlying](https://github.com/NixOS/nix/pull/8353) [machinery](https://github.com/NixOS/nix/pull/6815). This was nearly all done by @Ericson2314 who deserves a huge thank-you for his tireless efforts over the years.

- A limited form was merged into Nix on Sep 7 2023: [Dynamic derivations RFC 92 by Ericson2314 · Pull Request #4628 · NixOS/nix · GitHub](https://github.com/NixOS/nix/pull/4628) . So at this point the basic primitives were available, but they were hard to use and required expert knowledge.

- Lighting talk NixCon 2023: [https://www.youtube.com/watch?v=kvhGcRIyI3g](https://www.youtube.com/watch?v=kvhGcRIyI3g)

- Restricted socket proposed by @roberth [A very restricted recursive nix socket in the sandbox · Issue #8602 · NixOS/nix · GitHub](https://github.com/NixOS/nix/issues/8602)

- 2024 consisted of even more work by @Ericson2314 and @roberth to [clean up the implementation](https://github.com/NixOS/nix/pull/9786), and fix [bugs](https://github.com/NixOS/nix/pull/9415). (TODO: with support from Obsidian Systems? PDT?)This time period represents a lot of clean up and bringing more contributors into the Nix team.

- In 2025 there was a flurry of activity:

- Nix now has a restricted demon as an experimental feature: [builder-rpc-v0]( [nix-ninja: route inside-derivation calls through builder-rpc-v0 · pdtpartners/nix-ninja@9a07e67 · GitHub](https://github.com/pdtpartners/nix-ninja/commit/9a07e673db62566766f6cab1d846530048946a70) by @artemist

- Hydra queue runner improvements by @amaanq [queue-runner: resolve CA derivations after dependency outputs land by amaanq · Pull Request #1629 · NixOS/hydra · GitHub](https://github.com/NixOS/hydra/pull/1629) and [tests: add dynamic derivation integration test by amaanq · Pull Request #1656 · NixOS/hydra · GitHub](https://github.com/NixOS/hydra/pull/1656)

- Hydra support: [queue-runner: resolve dynamic derivation dependencies by Ericson2314 · Pull Request #1697 · NixOS/hydra · GitHub](https://github.com/NixOS/hydra/pull/1697)

- Hydra WIP: [queue-runner: fix dynamic derivation scheduling and resolution by amaanq · Pull Request #1836 · NixOS/hydra · GitHub](https://github.com/NixOS/hydra/pull/1836)

- NLNet project: [NLnet; Shinobi](https://nlnet.nl/project/Shinobi/)

- Go : [GitHub - dnr/dgd: Dynamic Go Derivations — fine-grained Go builds for Nix · GitHub](https://github.com/dnr/dgd/)

- Kernel building: [Indexable, Inc. · GitHub](https://github.com/indexable-inc) and [Branches · Lyndeno/nixgg · GitHub](https://github.com/Lyndeno/nixgg/branches)

- Rust fine-grained builds with IFD: [GitHub - wyattgill9/nix-cargo-unit: fork of Indexable-inc nix-cargo-unit project · GitHub](https://github.com/wyattgill9/nix-cargo-unit)

---

<div class="post-metadata">

### Author: ![adrian-gierakowski](https://discourse.nixos.org/user_avatar/discourse.nixos.org/adrian-gierakowski/32/2522_2.png) [@adrian-gierakowski](https://discourse.nixos.org/u/adrian-gierakowski)
#### Post date: [August 7, 2026, 7:22pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/2 "2026-08-07T19:22:31Z")

</div>

Existing! Is the invitation only for people who’ve done some related work, or are people interested in learning more about it (and potentially use it) are also invited?

---

<div class="post-metadata">

### Author: ![tomberek](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomberek/32/283_2.png) [@tomberek](https://discourse.nixos.org/u/tomberek)
#### Post date: [August 8, 2026, 1:12pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/3 "2026-08-08T13:12:49Z")

</div>

It’s open to a variety of participants. For a while it took specialized expertise to meaningfully contribute, but now that has changed. We need end-users, documenters, testers, tutorial authors, library authors, developers, integrators, and so forth.

So yes. Anything helps.

---

<div class="post-metadata">

### Author: ![Eveeifyeve](https://discourse.nixos.org/user_avatar/discourse.nixos.org/eveeifyeve/32/16960_2.png) [@Eveeifyeve](https://discourse.nixos.org/u/Eveeifyeve)
#### Post date: [August 8, 2026, 6:58pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/4 "2026-08-08T18:58:48Z")

</div>

## Calling all aarch64-darwin users: help reproduce a Potential Upstream Nix Dynamic Derivations Issue

Hi everyone,

@tomberek and I have been debugging an issue with [Sandstone](https://github.com/obsidiansystems/sandstone) and [nixgg](https://github.com/tomberek/nixgg/) on macOS (aarch64-darwin) using a [master branch Nix build](https://github.com/NixOS/nix) with the following features enabled:

- `builder-rpc-v0`
- `ca-derivations`
- `dynamic-derivations`

We’re trying to determine whether this is reproducible on more than one Darwin machine, and we’d really appreciate your help if you’re running a Darwin system.

## What we’re seeing

When building the Sandstone example derivation, we hit this error:

```auto
building '/nix/store/8mdr07snb49axrfkhx88gn771ks69czw-sandstone-dyn-drvs-on-example.drv'...
sandstone-dyn-drvs-on-example> + echo /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> + /nix/store/6hw535bcfaxkncfz6y575nlwg2jcfyv9-ghc-9.6.6/bin/ghc -o /nix/store/ciqp18j8bsg5xhc5a8rfv3q0vgbxkv5i-sandstone-dyn-drvs-on-example /nix/store/y3qjknhz2c45sxs4yms8ngj8784r1007-compile-A-object/A.o /nix/store/70r2jcb3rbk79n57bxkz3858aa1yz9kb-compile-B-object/B.o /nix/store/7cz43zchdmn0fva9g1mnavsy9ykxswp3-compile-C-object/C.o /nix/store/ak0rd83cmji6fxpwb84n7n28g3k68lw6-compile-D-object/D.o /nix/store/shsvkxbkjp4yyzjiqgaj0024pdfw2x9z-compile-Main-object/Main.o /nix/store/g0gm8xbjnkzl42fl83nyfl0dj8zixrzf-compile-Nested.E-object/Nested/E.o /nix/store/5x9fixvbjk4l00v5nzy1b0mnd7qwfwmy-compile-X-object/X.o
error: cannot operate on output 'out' of the unbuilt derivation '/nix/store/j4v89slzf43jm6fdcghqby7gg8lmw0f1-sandstone-dyn-drvs-on-example.drv.drv'

```

## Setup notes

- For Sandstone, you’ll need to temporarily comment out the `recursive-nix` required feature and In `WriteDerivation.hs`, change `x86_64-linux` to `aarch64-darwin` (until @Ericson2314 pushes a fix later).

## How you can help

If you have an aarch64-darwin machine and can test this setup, please let us know if you get the same output we are seeing.

This will help us narrow down whether this is a Nix issue.

Thanks! Hope we can fix this issue before 2.36 gets released!

---

<div class="post-metadata">

### Author: ![samestep](https://discourse.nixos.org/user_avatar/discourse.nixos.org/samestep/32/35424_2.png) [@samestep](https://discourse.nixos.org/u/samestep)
#### Post date: [August 9, 2026, 12:33am UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/5 "2026-08-09T00:33:55Z")

</div>

In my `aarch64-darwin` VM, I’m only able to reproduce your error by using a Nix client older than version 2.35. That is, with Nix daemon version 2.35.0 or `master` commit [`85f1926`](https://github.com/NixOS/nix/tree/85f1926dac5d2075169133041a5727d466eee5ea), and Nix client version 2.34.8:

```none
building '/nix/store/8mdr07snb49axrfkhx88gn771ks69czw-sandstone-dyn-drvs-on-example.drv'...
sandstone-dyn-drvs-on-example> + echo /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> + /nix/store/6hw535bcfaxkncfz6y575nlwg2jcfyv9-ghc-9.6.6/bin/ghc -o /nix/store/ciqp18j8bsg5xhc5a8rfv3q0vgbxkv5i-sandstone-dyn-drvs-on-example /nix/store/y3qjknhz2c45sxs4yms8ngj8784r1007-compile-A-object/A.o /nix/store/70r2jcb3rbk79n57bxkz3858aa1yz9kb-compile-B-object/B.o /nix/store/7cz43zchdmn0fva9g1mnavsy9ykxswp3-compile-C-object/C.o /nix/store/ak0rd83cmji6fxpwb84n7n28g3k68lw6-compile-D-object/D.o /nix/store/shsvkxbkjp4yyzjiqgaj0024pdfw2x9z-compile-Main-object/Main.o /nix/store/g0gm8xbjnkzl42fl83nyfl0dj8zixrzf-compile-Nested.E-object/Nested/E.o /nix/store/5x9fixvbjk4l00v5nzy1b0mnd7qwfwmy-compile-X-object/X.o
error: cannot operate on output 'out' of the unbuilt derivation '/nix/store/j4v89slzf43jm6fdcghqby7gg8lmw0f1-sandstone-dyn-drvs-on-example.drv.drv'

```

If it’s flipped (daemon version 2.34.8, and client version 2.35.0 or `master` commit [`85f1926`](https://github.com/NixOS/nix/tree/85f1926dac5d2075169133041a5727d466eee5ea)), I get a different error:

```none
building '/nix/store/8mdr07snb49axrfkhx88gn771ks69czw-sandstone-dyn-drvs-on-example.drv'...
sandstone-dyn-drvs-on-example> + echo /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> + /nix/store/6hw535bcfaxkncfz6y575nlwg2jcfyv9-ghc-9.6.6/bin/ghc -o /nix/store/ciqp18j8bsg5xhc5a8rfv3q0vgbxkv5i-sandstone-dyn-drvs-on-example /nix/store/y3qjknhz2c45sxs4yms8ngj8784r1007-compile-A-object/A.o /nix/store/70r2jcb3rbk79n57bxkz3858aa1yz9kb-compile-B-object/B.o /nix/store/7cz43zchdmn0fva9g1mnavsy9ykxswp3-compile-C-object/C.o /nix/store/ak0rd83cmji6fxpwb84n7n28g3k68lw6-compile-D-object/D.o /nix/store/shsvkxbkjp4yyzjiqgaj0024pdfw2x9z-compile-Main-object/Main.o /nix/store/g0gm8xbjnkzl42fl83nyfl0dj8zixrzf-compile-Nested.E-object/Nested/E.o /nix/store/5x9fixvbjk4l00v5nzy1b0mnd7qwfwmy-compile-X-object/X.o
warning: the daemon is missing the 'realisation-with-path-not-hash' protocol feature, needed to support content-addressing derivations
error:
       … looking up realisation for derivation '/nix/store/j4v89slzf43jm6fdcghqby7gg8lmw0f1-sandstone-dyn-drvs-on-example.drv.drv'

       error: cannot operate on output 'out' of the unbuilt derivation '/nix/store/j4v89slzf43jm6fdcghqby7gg8lmw0f1-sandstone-dyn-drvs-on-example.drv.drv'

```

With both the daemon and the client at either version 2.35.0 or `master` commit [`85f1926`](https://github.com/NixOS/nix/tree/85f1926dac5d2075169133041a5727d466eee5ea), I get no error:

```none
building '/nix/store/8mdr07snb49axrfkhx88gn771ks69czw-sandstone-dyn-drvs-on-example.drv'...
sandstone-dyn-drvs-on-example> + echo /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> + /nix/store/6hw535bcfaxkncfz6y575nlwg2jcfyv9-ghc-9.6.6/bin/ghc -o /nix/store/ciqp18j8bsg5xhc5a8rfv3q0vgbxkv5i-sandstone-dyn-drvs-on-example /nix/store/y3qjknhz2c45sxs4yms8ngj8784r1007-compile-A-object/A.o /nix/store/70r2jcb3rbk79n57bxkz3858aa1yz9kb-compile-B-object/B.o /nix/store/7cz43zchdmn0fva9g1mnavsy9ykxswp3-compile-C-object/C.o /nix/store/ak0rd83cmji6fxpwb84n7n28g3k68lw6-compile-D-object/D.o /nix/store/shsvkxbkjp4yyzjiqgaj0024pdfw2x9z-compile-Main-object/Main.o /nix/store/g0gm8xbjnkzl42fl83nyfl0dj8zixrzf-compile-Nested.E-object/Nested/E.o /nix/store/5x9fixvbjk4l00v5nzy1b0mnd7qwfwmy-compile-X-object/X.o
/nix/store/b8n9rxn28m7l2cvvrl20himz1xfvsami-sandstone-dyn-drvs-on-example

```

And if both the daemon and the client are version 2.34.8, I get no error and a different path:

```none
building '/nix/store/8mdr07snb49axrfkhx88gn771ks69czw-sandstone-dyn-drvs-on-example.drv'...
sandstone-dyn-drvs-on-example> + echo /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> /nix/store/wy51zbjg46lhxlivfqszl1jvmjdkvvac-coreutils-9.5/bin
sandstone-dyn-drvs-on-example> + /nix/store/6hw535bcfaxkncfz6y575nlwg2jcfyv9-ghc-9.6.6/bin/ghc -o /nix/store/ciqp18j8bsg5xhc5a8rfv3q0vgbxkv5i-sandstone-dyn-drvs-on-example /nix/store/y3qjknhz2c45sxs4yms8ngj8784r1007-compile-A-object/A.o /nix/store/70r2jcb3rbk79n57bxkz3858aa1yz9kb-compile-B-object/B.o /nix/store/7cz43zchdmn0fva9g1mnavsy9ykxswp3-compile-C-object/C.o /nix/store/ak0rd83cmji6fxpwb84n7n28g3k68lw6-compile-D-object/D.o /nix/store/shsvkxbkjp4yyzjiqgaj0024pdfw2x9z-compile-Main-object/Main.o /nix/store/g0gm8xbjnkzl42fl83nyfl0dj8zixrzf-compile-Nested.E-object/Nested/E.o /nix/store/5x9fixvbjk4l00v5nzy1b0mnd7qwfwmy-compile-X-object/X.o
/nix/store/bfg8z4lsi08mbs6wm6a02yj368d6vvrr-sandstone-dyn-drvs-on-example

```

---

<div class="post-metadata">

### Author: ![dnr](https://discourse.nixos.org/user_avatar/discourse.nixos.org/dnr/32/3205_2.png) [@dnr](https://discourse.nixos.org/u/dnr)
#### Post date: [August 10, 2026, 3:10am UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/6 "2026-08-10T03:10:59Z")

</div>

One more small contribution: dynamic-derivation-based builds for Go: [GitHub - dnr/dgd: Dynamic Go Derivations — fine-grained Go builds for Nix · GitHub](https://github.com/dnr/dgd/)

It’s a drop-in replacement for `buildGoModule`, but missing a bunch of features, and I would only call it alpha quality.

---

<div class="post-metadata">

### Author: ![SergeK](https://discourse.nixos.org/user_avatar/discourse.nixos.org/sergek/32/2972_2.png) [@SergeK](https://discourse.nixos.org/u/SergeK)
#### Post date: [August 10, 2026, 4:46pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/7 "2026-08-10T16:46:31Z")

</div>

RE: title, how about “Dynamic Build Graphs” or simply “Dynamism” instead of referencing the specific implementation approach 🙃

1. “Dynamic Derivations”
2. Look inside
3. `recursive-nix`

---

<div class="post-metadata">

### Author: ![tree-sapii](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tree-sapii/32/36774_2.png) [@tree-sapii](https://discourse.nixos.org/u/tree-sapii)
#### Post date: [August 10, 2026, 7:56pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/8 "2026-08-10T19:56:19Z")

</div>

Idea inspired by this, make can also output a build graph and because kbuild ( kernel’s build system ) has a makefile per directly, it may allow very fine grained kernel builds, aka per possibly per config option.

---

<div class="post-metadata">

### Author: ![tomberek](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomberek/32/283_2.png) [@tomberek](https://discourse.nixos.org/u/tomberek)
#### Post date: [August 12, 2026, 3:56am UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/9 "2026-08-12T03:56:49Z")

</div>

Looking at the Crab fit availability, looks most can make:

**PST / PDT (Pacific Time):** 10:00 AM Thursdays

**EST / EDT (Eastern Time):** 1:00 PM Thursdays

**GMT / UTC (Greenwich Mean Time):** 6:00 PM Thursdays (if there is timezone confusion, then this time is the one-true time)

**CET (Central European Time):** 7:00 PM Thursdays

Video link: [Jitsi Meet](http://jitsi.lassul.us/dynamic-derivations)

---

<div class="post-metadata">

### Author: ![jaen](https://discourse.nixos.org/user_avatar/discourse.nixos.org/jaen/32/36565_2.png) [@jaen](https://discourse.nixos.org/u/jaen)
#### Post date: [August 12, 2026, 7:12pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/10 "2026-08-12T19:12:22Z")

</div>

Ah gawddamit, I kept forgetting to fill this ~~"

EDIT: thanks for the clarification re: meeting time. I’ll try to make at least part of it, if it’s 1800 GMT then.

> [@tree-sapii](#):
>
> fine grained kernel builds

I’m focusing mostly on Ninja-based stuff first (so ultimately AOSP, probably with stops at LLVM and Chromium for faster iteration on scale problems), but it’s one of things I wanted to try next after it and I’m trying to write the code so it can be extended with non-Ninja build graph edges without turning everything upside down. So if nobody else beats me to this, then it’s going to happen at some point anyway.

---

<div class="post-metadata">

### Author: ![tomberek](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomberek/32/283_2.png) [@tomberek](https://discourse.nixos.org/u/tomberek)
#### Post date: [August 12, 2026, 10:56pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/11 "2026-08-12T22:56:37Z")

</div>

I’ve sent out an invite to those for whom I have emails. If I’ve missed you, please ping me with an email.

---

<div class="post-metadata">

### Author: ![tree-sapii](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tree-sapii/32/36774_2.png) [@tree-sapii](https://discourse.nixos.org/u/tree-sapii)
#### Post date: [August 16, 2026, 11:53pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/12 "2026-08-16T23:53:33Z")

</div>

Currently I am trying to either parse the .cmd files the kernel leaves ( which themselves are evaluated gcc commands ) after a compile or look at how something like kninja does it.

---

<div class="post-metadata">

### Author: ![tomberek](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomberek/32/283_2.png) [@tomberek](https://discourse.nixos.org/u/tomberek)
#### Post date: [September 12, 2026, 9:21pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/13 "2026-09-12T21:21:53Z")

</div>

Also just found this ([Nixception: Uncompromising incremental builds inside the sandbox… and outside! :: NixCon 2026 :: pretalx](https://talks.nixcon.org/nixcon-2026/talk/UQ9HVT/)) by @layus

I like this pattern where doing incremental builds in a devShell produce exactly the same sub-derivations as one would need in a full pure build:

- connects to the builder-rpc-v0 rather than an RBE [GitHub - tomberek/nixgg · GitHub](https://github.com/tomberek/nixgg#try-it)
- jig’s compile cache serves a similar role: [repkgs/docs/design.md at 1cd7b8b03526f35d45dc66c94c1e1b63d0e636ca · Mic92/repkgs · GitHub](https://github.com/Mic92/repkgs/blob/1cd7b8b03526f35d45dc66c94c1e1b63d0e636ca/docs/design.md)
- Nixception with RBE and NativeLink: [GitHub - layus/nixception: NativeLink-based REAPI server that turns remote build actions into Nix derivations (Apache-2.0 release line) · GitHub](https://github.com/layus/nixception)
  - the shim: [BuildGrid / recc · GitLab](https://gitlab.com/BuildGrid/recc)

---

<div class="post-metadata">

### Author: ![twoolie](https://discourse.nixos.org/user_avatar/discourse.nixos.org/twoolie/32/2544_2.png) [@twoolie](https://discourse.nixos.org/u/twoolie)
#### Post date: [September 13, 2026, 1:18pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/14 "2026-09-13T13:18:26Z")

</div>

Am I understanding correctly that dynamic derivations are full derivations with a full outpath?

If a big ninja build like chromium uses dynamic derivations to make each compilation unit a derivation, would that not create a metric ton of files/folders in /nix/store? That sounds terrifying honestly.

I really hope this is not the case, and we could potentially collapse or collect all of the build products into a single output path.

---

<div class="post-metadata">

### Author: ![pbsds](https://discourse.nixos.org/user_avatar/discourse.nixos.org/pbsds/32/11198_2.png) [@pbsds](https://discourse.nixos.org/u/pbsds)
#### Post date: [September 13, 2026, 10:14pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/15 "2026-09-13T22:14:50Z")

</div>

Whether the files are scattered in /nix/store or all nested within a single store path shouldn’t make that big of a difference AFAIU. The main drawback i see is increased GC times.

---

<div class="post-metadata">

### Author: ![domenkozar](https://discourse.nixos.org/user_avatar/discourse.nixos.org/domenkozar/32/38357_2.png) [@domenkozar](https://discourse.nixos.org/u/domenkozar)
#### Post date: [September 14, 2026, 3:48pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/16 "2026-09-14T15:48:58Z")

</div>

A Thursday I’ve joined the meeting and presented some of the thoughts from dynamic derivation experiments.

One of the things John and David mentioned is a new scheme for input addressing, which involves less content addressing logic.

More experimentations made me realize this is the right call, as we’re generating derivations, any change to the original one will rebuild all those that follow so that becomes more important than ever.

While we do that, having a canonical representation of derivation would be crucial so anyone can then wrap it in whatever transport wire procotol.

Once I have something to share I’ll post it here, John is also working on RFC and then we can compare notes!

---

<div class="post-metadata">

### Author: ![tomberek](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomberek/32/283_2.png) [@tomberek](https://discourse.nixos.org/u/tomberek)
#### Post date: [October 31, 2026, 6:38pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/17 "2026-10-31T18:38:41Z")

</div>

I was not aware that libnix had a feature to export the Rust build graph as nix/drvs:

```auto
CARGO_BACKEND=nix cargo build --release write-nix-buildsystem \
  --out-dir ./nix \
  --url https://github.com/<owner>/<project>/archive/refs/tags/v1.0.0.tar.gz \
  --hash <hash>
nix build --file nix/cargo_build_caller.nix target -L

```

So this is a vanilla build plan created with cargo, encoding it all into nix/drv. This means we can envelop this in a dynamic-derivation and have the same drvs built in pure builds as well as in iterative development. Bliss!

It may also make adoption easier if this plan can be committed, making rendering it in a dyn-drv unnecessary. I think many of the dyn-drv tooling/ecosystem should follow a similar plan; render a plan and be able to execute in all three paradigms: in a devShell while developing and as a pure build w/rendered plan, as a pure build w/dyn-drv convenience.

> **[GitHub - nixcloud/cargo: The Rust package manager](https://github.com/nixcloud/cargo#exporting-the-build-system)**
>
> The Rust package manager

---

<div class="post-metadata">

### Author: ![adrian-gierakowski](https://discourse.nixos.org/user_avatar/discourse.nixos.org/adrian-gierakowski/32/2522_2.png) [@adrian-gierakowski](https://discourse.nixos.org/u/adrian-gierakowski)
#### Post date: [October 31, 2026, 7:37pm UTC](https://discourse.nixos.org/t/dynamic-derivations-dynamic-build-graphs-next-steps/79409/18 "2026-10-31T19:37:20Z")

</div>

Just watched this an hour ago, the author talks about it in the last part of the presentation [https://youtu.be/mjavG3SpCnA?is=VzNEqAUaksK737D7](https://youtu.be/mjavG3SpCnA?is=VzNEqAUaksK737D7)
