Thanks for letting me know that Adam is not around. I didn't want to sound pushy or something, I was just curious.

The docs are already there (https://github.com/erdi/gradle/commit/be0300142269d842b5873b562f57acc3be81cb16). I did my best but you'll probably rewrite them all as usual, Daz. ;)

On 11/04/13 16:22, Daz DeBoer wrote:
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 <[email protected] <mailto:[email protected]>> 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
    <[email protected] <mailto:[email protected]>> 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 <http://www.gradleware.com/>
Join us at the Gradle Summit 2013, June 13th and 14th in Santa Clara, CA: http://www.gradlesummit.com <http://www.gradlesummit.com/>

Reply via email to