Uploaded image for project: 'Gump'
  1. Gump
  2. GUMP-105

design a way to build against the last-successful-dependency-build

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Gump3-alpha-5
    • Fix Version/s: Gump3-alpha-5
    • Component/s: Python-based Gump
    • Labels:
      None

      Description

      The first algorithm to get right is GUMP-104, where we bail out of building at all if a dependency dies. The next step to tackle is to build against the last version of the dependency that /was/ built successfully.

      This requires gump to become time-aware beyond a single build run, saving off previous successes into a repository and knowing about them. It requires a significant extension of the model where, for example

      class BuildFailureRecoveryPlugin(AbstractPlugin):
      visit_project(p):
      if p.state <= FAILED:
      successful_p = historyutil.lookup_last_successful_build(p)
      modelutil.replace(p, succesful_p)
      p.failed_project = p
      p.state == RECOVERED

      stages are inserted to keep most of the plugins blissfully unaware of the intelligence going on. If we get this right that'll be where the staged plugin model will really start to shine, as the graph theory people can design smart new algorithms (As long as they're compatible with the basic topsort we're doing in some way), and the build tool people can just, well, build stuff.

        Issue Links

          Activity

          Hide
          lsimons Leo Simons added a comment -

          GUMP-105 should probably be attempted only after GUMP-104 is in place

          Show
          lsimons Leo Simons added a comment - GUMP-105 should probably be attempted only after GUMP-104 is in place
          Show
          lsimons Leo Simons added a comment - Work is underway to do this as part of https://svn.apache.org/repos/asf/gump/branches/Gump3/pygump/python/gump/engine/persistence.py and https://svn.apache.org/repos/asf/gump/branches/Gump3/pygump/python/gump/engine/algorithm.py it's turning out to be a hard problem
          Hide
          lsimons Leo Simons added a comment -

          It turns out that to implement GUMP-105, we need to do GUMP-100 as well, but in a different way

          Show
          lsimons Leo Simons added a comment - It turns out that to implement GUMP-105 , we need to do GUMP-100 as well, but in a different way
          Hide
          lsimons Leo Simons added a comment -

          Implemented fully after SVN revision 333089. Still a very "experimental" feature but it seems to be holding up in basic testing. Good enough for now.

          Show
          lsimons Leo Simons added a comment - Implemented fully after SVN revision 333089. Still a very "experimental" feature but it seems to be holding up in basic testing. Good enough for now.

            People

            • Assignee:
              lsimons Leo Simons
              Reporter:
              lsimons Leo Simons
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development