Thanks Marcin. I think the 'current state' is that this is in Adam's review
backlog, and he is on vacation this week.
The next step would almost certainly be some samples and documentation for
task finalisers, so if you'd like to work on those that would be fantastic.

Daz


On 11 April 2013 09:07, Marcin Erdmann <marcin.erdm...@proxerd.pl> wrote:

>  What is the current state of this? Do we want to put it on the
> backburner for now or should I submit a pull request for that piece of work?
>
>
> On 02/04/13 01:16, Adam Murdoch wrote:
>
>
>  Thanks so much for this. I'll review it soon.
>
>  On 02/04/2013, at 8:52 AM, Marcin Erdmann <marcin.erdm...@proxerd.pl>
> wrote:
>
> You can find task finalisers implementation in the following branch:
> https://github.com/erdi/gradle/tree/finaliser-tasks. I think I
> implemented everything that was mentioned regarding task finalisers in the
> previous threads on the topic as well as in the design docs for reporting.
> The next step would obviously be adding docs but as usual I would be
> grateful for a review of the code. Please let me know if I missed something
> feature or test-wise.
>
> Solutions I went for:
> - finaliser information is lazy (using a DefaultTaskDependencyInstance)
> and is only stored on finalised tasks
> - new states for TaskInfo: MUST_RUN, SHOULD_RUN (renamed from READY),
> SHOULD_NOT_RUN
> - finaliser tasks and their dependencies added to the graph (when
> finalised task is added) are in SHOULD_NOT_RUN state
> - finaliser tasks (but not their dependencies) mustRunAfter finalised tasks
> - to make sure that finaliser tasks are executed they are being added as
> an entry task (just like if they were passed to addToTaskGraph())
> - if a finalised task did any work then all its finaliser tasks and their
> dependencies are switched to MUST_RUN state
> - when there were no failures all tasks that are in MUST_RUN and
> SHOULD_RUN states are executed
> - in case of a failure all tasks apart from those in MUST_RUN are skipped
> from execution
> - to force finaliser tasks to run ASAP a mustRunAfter ordering is added
> from any task that depends on a finalised task to the finaliser task; this
> should probably a should run after ordering, but there is no such thing
> available yet; there has to be a decision made what is more important -
> running those tasks ASAP or avoiding unnecessary circural dependencies when
> a is being finalised by b, b depends on c and c depends on a (currently an
> implicit mustRunAfter is added from c to a causing circural dependency)
> - build dashboard task is now a finaliser for all Reporting tasks
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>
>
> --
> Adam Murdoch
> Gradle Co-founder
> http://www.gradle.org
> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
> http://www.gradleware.com
>
>  Join us at the Gradle Summit 2013, June 13th and 14th in Santa Clara,
> CA: http://www.gradlesummit.com
>
>
>


-- 
Darrell (Daz) DeBoer
Principal Engineer, Gradleware
http://www.gradleware.com
Join us at the Gradle Summit 2013, June 13th and 14th in Santa Clara, CA:
http://www.gradlesummit.com

Reply via email to