sbt / sbt

sbt, the interactive build tool
https://scala-sbt.org
Apache License 2.0
4.81k stars 937 forks source link

A more machine-reasonable notion of unnecessary task avoidance #1437

Open copumpkin opened 10 years ago

copumpkin commented 10 years ago

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?

jsuereth commented 10 years ago

Yes, we've debated it a bit. Leaving this open as enhancement but we'll need more information.