I'm not sure we want to water down the strict meaning of 'dependsOn':
"A.dependsOn(B)" means that A cannot start executing until B has
successfully completed executing. I'd rather add more kinds of dependency
relationships if required, rather than water down this contract.

In this case TestReport does not really 'dependOn' Test, since TestReport
can run even if Test fails. It looks to me like this 'dependsOn'
relationship is being added explicitly, not automatically via 'reportOn'.

Daz


On Sun, Feb 16, 2014 at 8:12 AM, Marcin Erdmann
<marcin.erdm...@proxerd.pl>wrote:

> This seems like a valid use case to me as well. Should we simply not skip
> the execution of a finalizer task if its finalized task on which it also
> depends fails? It shouldn't be hard to implement, I can have a look if you
> guys want me to.
>
>
> On Sun, Feb 16, 2014 at 11:20 AM, Perryn Fowler <
> perryn.fow...@gradleware.com> wrote:
>
>> In fact, that user was trying to use a TestReport task to reportOn a Test
>> task. Doing that automatically adds a dependency on the Test task from the
>> TestReport task. In turn that means that Test.finalizedBy(TestReport) will
>> not work properly.
>>
>> That seems unfortunate since a test report is one of the obvious use
>> cases for finalizedBy.
>>
>> Perhaps TestReport.reportOn should add a finalizedBy relationship rather
>> than a dependsOn one?
>>
>> In the general case is there a reason why we can/would not support
>>
>> task a { finalizedBy "b" }
>> task b { dependsOn "a" }
>>
>> Perryn
>>
>>
>> On Sun, Feb 16, 2014 at 1:20 PM, Perryn Fowler <
>> perryn.fow...@gradleware.com> wrote:
>>
>>> someone else trying to do the same thing...
>>>
>>>
>>> http://forums.gradle.org/gradle/topics/finalizer_task_does_not_run_if_finalized_task_fails
>>>
>>>
>>>
>>> On Mon, Jan 20, 2014 at 10:25 PM, Luke Daley 
>>> <luke.da...@gradleware.com>wrote:
>>>
>>>> Hi,
>>>>
>>>>
>>>> http://forums.gradle.org/gradle/topics/finalizer_tasks_that_depend_on_the_base_task_do_not_execute_if_the_base_task_fails
>>>>
>>>> task a { finalizedBy "b" }
>>>> task b { dependsOn "a" }
>>>>
>>>> If a fails, b won't be executed.
>>>>
>>>> The use case listed in the report is something similar to the jacoco
>>>> report task debate. The user wants "b" to be executed if "a" is in the task
>>>> graph, and "a" to be executed if "b" is in the task graph.
>>>>
>>>> There's a case for this, but I'm having trouble finding a conceptual
>>>> fit.
>>>>
>>>> --
>>>> Luke Daley
>>>> Principal Engineer, Gradleware
>>>> http://gradleware.com
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe from this list, please visit:
>>>>
>>>>     http://xircles.codehaus.org/manage_email
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to