|
|
|
|
|
by georgyo
1102 days ago
|
|
I don't fully understand what you are saying, and I don't know what systems you're including in "all". The system you describe building is exactly what nix does, as well as debian, El, and Arch. Their spec files describe both build and runtime dependices, and installing the package does not install things like Make. Nix goes a little bit further by only including runtime dependices that it can find it the build output. It does this by scanning the output files. But I don't understand how you could separate build graph and runtime graph. If I declare something needs foo and bar, that is useless unless I can get built foo and bar. _Something_ has to know how to build the things this hypothetical system is installing. |
|
This also allows build processes to evolve without affecting the public dependency graph. This makes it easier to show dependencies are modeled and exposed correctly and makes build logic private to consumers.