Skip to content

How to actually interpret needed? #434

@jgomo3

Description

@jgomo3

Given the following task dependency graph:

a -> b -> c

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions