There's currently Tracking.inputChanged and friends that you can throw inside a task definition that will avoid redoing things unless some condition is met.
I'm wondering whether that notion (a generally useful one) could be incorporated directly into the graph that sbt is handling behind the scenes, so it could know if it actually did anything or if the task's "redo-work" precondition failed. It'd also give us a handy way to override that logic in case the avoidance heuristic is imperfect.
There's currently
Tracking.inputChanged
and friends that you can throw inside a task definition that will avoid redoing things unless some condition is met.I'm wondering whether that notion (a generally useful one) could be incorporated directly into the graph that sbt is handling behind the scenes, so it could know if it actually did anything or if the task's "redo-work" precondition failed. It'd also give us a handy way to override that logic in case the avoidance heuristic is imperfect.
Does this make sense as a feature?