You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by le...@apache.org on 2005/11/12 13:10:27 UTC

svn commit: r332764 - in /gump/branches/Gump3/pygump/python/gump: engine/persistence.py model/util.py plugins/logreporter.py

Author: leosimons
Date: Sat Nov 12 04:10:18 2005
New Revision: 332764

URL: http://svn.apache.org/viewcvs?rev=332764&view=rev
Log:
Implement basic reporting on the use of last successful builds.

Modified:
    gump/branches/Gump3/pygump/python/gump/engine/persistence.py
    gump/branches/Gump3/pygump/python/gump/model/util.py
    gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py

Modified: gump/branches/Gump3/pygump/python/gump/engine/persistence.py
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/pygump/python/gump/engine/persistence.py?rev=332764&r1=332763&r2=332764&view=diff
==============================================================================
--- gump/branches/Gump3/pygump/python/gump/engine/persistence.py (original)
+++ gump/branches/Gump3/pygump/python/gump/engine/persistence.py Sat Nov 12 04:10:18 2005
@@ -147,7 +147,7 @@
             newproject.add_output(output)
         
         dontadd = ["module", "name", "path", "homedir", "dependencies", "dependees", "outputs", \
-                   "commands", "shelf_dependencies"]
+                   "commands", "shelf_dependencies", "has_stale_prereqs"]
         for x in [x for x in dir(oldproject) if not x in dontadd]:
             att = getattr(oldproject, x)
             if callable(att):

Modified: gump/branches/Gump3/pygump/python/gump/model/util.py
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/pygump/python/gump/model/util.py?rev=332764&r1=332763&r2=332764&view=diff
==============================================================================
--- gump/branches/Gump3/pygump/python/gump/model/util.py (original)
+++ gump/branches/Gump3/pygump/python/gump/model/util.py Sat Nov 12 04:10:18 2005
@@ -56,14 +56,6 @@
     #return abspath(join(workspace.workdir,workspace.name))
     return abspath(workspace.workdir)
 
-def mark_failure(model_element, cause):
-    """Mark a model element as "failed"."""
-    assert isinstance(model_element, ModelObject)
-    model_element.failed = True
-    if not hasattr(model_element, "failure_cause"):
-        model_element.failure_cause = []
-    model_element.failure_cause.append(cause)
-
 def mark_stale_prereq(model_element, stale_prereq):
     """Mark a project with "stale prereq"."""
     assert isinstance(model_element, Project)
@@ -71,6 +63,24 @@
     if not hasattr(model_element, "stale_prereqs"):
         model_element.stale_prereqs = []
     model_element.stale_prereqs.append(stale_prereq)
+    
+    # TODO staleness is really a recursive property much like failure...
+    # ...but this might break in the case of cyclic dependencies?
+    #for relationship in model_element.dependees:
+    #    mark_stale_prereq(relationship.dependee)
+
+def check_stale_prereq(model_element):
+    """Determine whether a project has a "stale prereq"."""
+    assert isinstance(model_element, Project)
+    return getattr(model_element, "has_stale_prereqs", False)
+
+def mark_failure(model_element, cause):
+    """Mark a model element as "failed"."""
+    assert isinstance(model_element, ModelObject)
+    model_element.failed = True
+    if not hasattr(model_element, "failure_cause"):
+        model_element.failure_cause = []
+    model_element.failure_cause.append(cause)
 
 def check_failure(model_element):
     """Determine whether a model element has "failed"."""

Modified: gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py?rev=332764&r1=332763&r2=332764&view=diff
==============================================================================
--- gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py (original)
+++ gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py Sat Nov 12 04:10:18 2005
@@ -19,7 +19,8 @@
 
 from gump.plugins import AbstractPlugin
 from gump.model import Module, Project, Dependency, Command
-from gump.model.util import check_skip, check_failure, check_installed_package, get_failure_causes, get_root_cause
+from gump.model.util import check_skip, check_failure, check_installed_package
+from gump.model.util import check_stale_prereq, get_failure_causes, get_root_cause
 from gump.engine.algorithm import ExceptionInfo
 from gump.util import ansicolor
 
@@ -145,6 +146,9 @@
                 if project in workspace.unvisited:
                     cycled += 1
                     continue
+            if check_stale_prereq(project):
+                prereq_failed += 1
+                continue
             
             success += 1
         
@@ -204,7 +208,10 @@
             return
         
         if not check_failure(project):
-            self.wr('  %s%s: OK%s' % (ansicolor.Green, project, ansicolor.Black))
+            if check_stale_prereq(project):
+                self.wr('  %s%s: STALE PREREQ%s' % (ansicolor.Yellow, project, ansicolor.Black))
+            else:
+                self.wr('  %s%s: OK%s' % (ansicolor.Green, project, ansicolor.Black))
         else:
             firsterror = '  %s%s: FAIL%s' % (ansicolor.Red, project, ansicolor.Black+ansicolor.Black)