Given the following task dependency graph:
What happens if a and c are needed, but b isn't (based on the needed? method)?
Well, a and c will be executed.
But maybe it would have been more efficient to run only a.
So I suppose it all depends on what does actually needed? means for a Task and Rake.
I made a silly experiment where c is not executed in this case, and the test suit pass all the test, so I'm wondering if this case was overlooked or it is actually a design decision. Which in any case, a test case should be added.
Here is a simple Rakefile to test the idea:
desc 'Do A'
task a: [:b] do
sh 'echo Do A'
end
desc 'Do B'
task b: [:c] do
sh 'echo Do B'
end
def (Rake::Task[:b]).needed?
false
end
desc 'Do C'
task :c do
sh 'echo Do C'
end
Given the following task dependency graph:
What happens if
aandcare needed, butbisn't (based on theneeded?method)?Well,
aandcwill be executed.But maybe it would have been more efficient to run only
a.So I suppose it all depends on what does actually
needed?means for a Task and Rake.I made a silly experiment where
cis not executed in this case, and the test suit pass all the test, so I'm wondering if this case was overlooked or it is actually a design decision. Which in any case, a test case should be added.Here is a simple Rakefile to test the idea: