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)