10/05/2015, 4:54 PM
Here's the reason I don't think that the product inputs should in general be rolled into a task's fingerprints: Imagine you have tasks C -> B -> A (read C depends on B depends on A) through some product, the name of which is unimportant. Now imagine that C is already happily in your artifact cache, it doesn't need to be recomputed. But A and B are not cached are very expensive to recompute. Now you have to recompute A and B just to find that C was done all along.