Implement run-time dependencies for binary targets#3451
Merged
chrisnovakovic merged 5 commits intothought-machine:masterfrom Nov 13, 2025
Merged
Implement run-time dependencies for binary targets#3451chrisnovakovic merged 5 commits intothought-machine:masterfrom
chrisnovakovic merged 5 commits intothought-machine:masterfrom
Conversation
Add a `runtime_deps` parameter, allowing for the declaration of run-time dependencies, to `build_rule` and several of the built-in build definitions that permit binary outputs. The semantics of `runtime_deps` are a combination of the semantics of `deps` and `data`. If the output of a `build_rule` is marked as binary, targets listed in `runtime_deps` are: - guaranteed to have been built before the dependent target runs; - copied into build and test environments alongside the dependent target. Like build-time dependencies declared with `deps`, run-time dependencies are computed transitively; i.e., if target A has a run-time dependency on target B which in turn has a run-time dependency on target C, targets B and C will be built before `plz run`ning target A, and the outputs of targets B and C will be copied into build environments (or test environments, if target A is a test) alongside the outputs of target A. Unlike build-time dependencies, downward searches for transitive run-time dependencies are not blocked by the `output_is_complete` parameter.
toastwaffle
requested changes
Nov 12, 2025
| cmd = "touch $OUTS", | ||
| ) | ||
|
|
||
| def target(name:str, build_tests:list=[], post_build:function=None, requires:list=None, provides:dict=None, |
toastwaffle
approved these changes
Nov 13, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a
runtime_depsparameter, allowing for the declaration of run-time dependencies, tobuild_ruleand several of the built-in build definitions that permit binary outputs.The semantics of
runtime_depsare a combination of the semantics ofdepsanddata. If the output of abuild_ruleis marked as binary, targets listed inruntime_depsare:Like build-time dependencies declared with
deps, run-time dependencies are computed transitively; i.e., if target A has a run-time dependency on target B which in turn has a run-time dependency on target C, targets B and C will be built beforeplz running target A, and the outputs of targets B and C will be copied into build environments (or test environments, if target A is a test) alongside the outputs of target A. Unlike build-time dependencies, downward searches for transitive run-time dependencies are not blocked by theoutput_is_completeparameter.