Skip to content

Conversation

@bhearsum
Copy link
Contributor

@bhearsum bhearsum commented Jan 8, 2026

I've been looking into the possibility of downloading artifacts from decision tasks to use in place of generating tasks locally. The approach I've been looking at so far is to add the ability to prepopulate a TaskGraphGenerator with those outputs, which allows me to avoid the need to adjust tools (like tryselect) to learn how to find tasks in multiple ways.

One thing I discovered while prototyping, is that the current TaskGraphGenerator._run makes it impossible to do reasonably, because you can't call different sections of it independently (eg: you can't just have the target task logic run...you have to rerun everything before that as well).

I put together a patch to rework this, and I'm interested in thoughts on it. The patch itself it mostly moving code around. The most notable part is that there is no central flow of control as there is now. This doesn't change anything for callers, but it does make it a bit less legible. This could possibly be worked around by adding an all() method that captures the order in which everything happens, but I'm not sure it would even help that much.

this allows us to load some or all of its results from a cache. the current generator model makes this impossible because even if we preload, eg: the full task graph, we still need to run that logic in `_run` before proceeding to later phases
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