You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@gump.apache.org by aj...@apache.org on 2003/10/23 21:38:17 UTC
cvs commit: jakarta-gump/python/gump launcher.py logic.py utils.py document.py conf.py
ajack 2003/10/23 12:38:17
Modified: project krysalis-ruper.xml krysalis-centipede.xml
krysalis-template-smoketest.xml
profile gump.xml minimal-profile.xml
. .cvsignore gumpy.sh gumpytest.sh
python/gump launcher.py logic.py utils.py document.py
conf.py
Removed: profile krysalis.xml
Log:
Try N+1(or more) on CLASSPATH, and:
1) Cleanup file that ought not be needed any more
2) gumpy cleans tmp directories
3) Added some gump python tests
4) Starting to clean up some brute force inherit="all"
5) Show first/last good builds as date/time not float
6) Only show CLASSPATH in doc if the project will be built w/ ant/script
Revision Changes Path
1.13 +3 -4 jakarta-gump/project/krysalis-ruper.xml
Index: krysalis-ruper.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/project/krysalis-ruper.xml,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- krysalis-ruper.xml 7 Sep 2003 20:49:16 -0000 1.12
+++ krysalis-ruper.xml 23 Oct 2003 19:38:15 -0000 1.13
@@ -67,7 +67,7 @@
<property name="DATE_STAMP" value="@@DATE@@"/>
</ant>
- <depend project="ant" inherit="all"/>
+ <depend project="ant" inherit="runtime"/>
<depend project="krysalis-ruper-core" inherit="all"/>
<depend project="krysalis-version-ant" inherit="all"/>
@@ -97,8 +97,7 @@
<project name="krysalis-ruper">
-
- <depend project="krysalis-centipede" inherit="all"/>
+ <depend project="krysalis-centipede" inherit="runtime"/>
<depend project="xml-xerces"/>
<depend project="commons-vfs"/>
<depend project="commons-logging"/>
@@ -125,7 +124,7 @@
<depend project="eclipse"/>
<work nested="build/classes"/>
<depend project="krysalis-centipede" inherit="all"/>
- <depend project="ant" inherit="all"/>
+ <depend project="ant" inherit="runtime"/>
<ant basedir="." buildfile="centibuild.xml" target="gump" vm="1.2">
<property name="ant.home" project="ant" reference="home"/>
1.8 +14 -15 jakarta-gump/project/krysalis-centipede.xml
Index: krysalis-centipede.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/project/krysalis-centipede.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- krysalis-centipede.xml 11 Oct 2003 22:39:07 -0000 1.7
+++ krysalis-centipede.xml 23 Oct 2003 19:38:15 -0000 1.8
@@ -95,19 +95,18 @@
<property name="ant.home" project="ant" reference="home"/>
</ant>
- <depend project="ant" inherit="all" />
- <depend project="ant-contrib" inherit="all" />
- <!-- depend project="ant-embed-optional" inherit="all" / -->
- <depend project="commons-jxpath" inherit="all" />
- <depend project="commons-logging" inherit="all" />
- <depend project="commons-vfs" inherit="all" />
- <depend project="jakarta-regexp" inherit="all" />
- <depend project="krysalis-ruper-core" inherit="all" />
- <depend project="krysalis-version-core" inherit="all" />
- <depend project="krysalis-ruper-ant" inherit="all" />
- <depend project="krysalis-version-ant" inherit="all" />
- <depend project="xml-xalan2" inherit="all" />
- <depend project="xml-xerces" inherit="all" />
+ <depend project="ant" inherit="runtime" />
+ <depend project="ant-contrib" />
+ <depend project="commons-jxpath"/>
+ <depend project="commons-logging" />
+ <depend project="commons-vfs" />
+ <depend project="jakarta-regexp" />
+ <depend project="krysalis-ruper-core" />
+ <depend project="krysalis-version-core" />
+ <depend project="krysalis-ruper-ant" />
+ <depend project="krysalis-version-ant" />
+ <depend project="xml-xalan2" />
+ <depend project="xml-xerces" />
<jar name="lib/krysalis-centipede.jar" />
<!-- Work dirs to be included in classpath -->
@@ -139,8 +138,8 @@
<ant buildfile="build-site.xml" target="gump-site" vm="1.2">
<property name="ant.home" project="ant" reference="home"/>
</ant>
- <depend project="krysalis-centipede" inherit="all" />
- <depend project="ant" inherit="all" />
+ <depend project="krysalis-centipede" inherit="runtime" />
+ <depend project="ant" inherit="runtime" />
<nag to="krysalis-developers@lists.sourceforge.net"
from="Nicola Ken Barozzi <nicolaken@apache.org>"/>
1.3 +46 -46 jakarta-gump/project/krysalis-template-smoketest.xml
Index: krysalis-template-smoketest.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/project/krysalis-template-smoketest.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- krysalis-template-smoketest.xml 2 Oct 2003 06:59:12 -0000 1.2
+++ krysalis-template-smoketest.xml 23 Oct 2003 19:38:16 -0000 1.3
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module name="krysalis-template-smoke-test" fullname="Krysalis Smoke Test">
- <url href="http://www.krysalis.org/templates/smoke-test"/>
- <site hostname="krysalis.sourceforge.net"
- remotedir="/home/groups/k/kr/krysalis/htdocs/templates/smoke-test"/>
- <cvs repository="sourceforge" host-prefix="cvs.krysalis" dir="krysalis"
- module="krysalis-template/smoke-test"
- cvsweb="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/krysalis/krysalis-template/smoke-test"
- />
- <description>Smoke Test is for testing Centipede.</description>
- <detailed>Smoke Test is a template for a Centipede module. It is primarly
- used for testing Centipede.</detailed>
- <what>
- <goal>Make Centipede project that covers all cents but test quickly.</goal>
- </what>
- <why>Centipede needs a module other than his own for serious testing.</why>
- <vendor>Krysalis Community Project</vendor>
- <licence legal="./legal">This software is released under the Krysalis Patchy
- Software License 1.1_01. For detailed legal and licensing issues, please
- read the LICENSE.* files in the /legal directory.</licence>
- <credits>
- <credit>This software includes software developed by the Apache Software
- Foundation (http://www.apache.org/).</credit>
- </credits>
- <project name="krysalis-template-smoketest" fullname="Krysalis Smoke Test">
- <version major="0" minor="0" fix="1" tag="HEAD"/>
- <package>smoketest</package>
- <ant target="gump" vm="1.2">
- <property name="ant.home" reference="home" project="ant"/>
- </ant>
- <depend project="jakarta-log4j" version="1.2.6"/>
- <depend project="krysalis-template-smoketest-supplied" version="supplied" export="true"/>
- <depend project="krysalis-centipede" inherit="all" />
- <work nested="build/classes"/>
- <home nested="build"/>
- <code type="java/plain" dir="src/java"/>
- <test type="test/junit" dir="src/test"/>
- <documentation type="xml/forrest" dir="src/documentation"/>
-
-
- </project>
- <project name="krysalis-template-smoketest-supplied">
- <jar name="lib/helloworld-0.0.1-alpha1-200209130001.jar"/>
- </project>
-</module>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="krysalis-template-smoke-test" fullname="Krysalis Smoke Test">
+ <url href="http://www.krysalis.org/templates/smoke-test"/>
+ <site hostname="krysalis.sourceforge.net"
+ remotedir="/home/groups/k/kr/krysalis/htdocs/templates/smoke-test"/>
+ <cvs repository="sourceforge" host-prefix="cvs.krysalis" dir="krysalis"
+ module="krysalis-template/smoke-test"
+ cvsweb="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/krysalis/krysalis-template/smoke-test"
+ />
+ <description>Smoke Test is for testing Centipede.</description>
+ <detailed>Smoke Test is a template for a Centipede module. It is primarly
+ used for testing Centipede.</detailed>
+ <what>
+ <goal>Make Centipede project that covers all cents but test quickly.</goal>
+ </what>
+ <why>Centipede needs a module other than his own for serious testing.</why>
+ <vendor>Krysalis Community Project</vendor>
+ <licence legal="./legal">This software is released under the Krysalis Patchy
+ Software License 1.1_01. For detailed legal and licensing issues, please
+ read the LICENSE.* files in the /legal directory.</licence>
+ <credits>
+ <credit>This software includes software developed by the Apache Software
+ Foundation (http://www.apache.org/).</credit>
+ </credits>
+ <project name="krysalis-template-smoketest" fullname="Krysalis Smoke Test">
+ <version major="0" minor="0" fix="1" tag="HEAD"/>
+ <package>smoketest</package>
+ <ant target="gump" vm="1.2">
+ <property name="ant.home" reference="home" project="ant"/>
+ </ant>
+ <depend project="jakarta-log4j" version="1.2.6"/>
+ <depend project="krysalis-template-smoketest-supplied" version="supplied" export="true"/>
+ <depend project="krysalis-centipede" inherit="runtime" />
+ <work nested="build/classes"/>
+ <home nested="build"/>
+ <code type="java/plain" dir="src/java"/>
+ <test type="test/junit" dir="src/test"/>
+ <documentation type="xml/forrest" dir="src/documentation"/>
+
+
+ </project>
+ <project name="krysalis-template-smoketest-supplied">
+ <jar name="lib/helloworld-0.0.1-alpha1-200209130001.jar"/>
+ </project>
+</module>
+
1.270 +1 -1 jakarta-gump/profile/gump.xml
Index: gump.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/profile/gump.xml,v
retrieving revision 1.269
retrieving revision 1.270
diff -u -r1.269 -r1.270
--- gump.xml 17 Oct 2003 23:13:26 -0000 1.269
+++ gump.xml 23 Oct 2003 19:38:16 -0000 1.270
@@ -1,5 +1,5 @@
<profile name="gump">
-
+
<!-- Apache.Ant -->
<module href="project/ant.xml"/>
1.4 +0 -5 jakarta-gump/profile/minimal-profile.xml
Index: minimal-profile.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/profile/minimal-profile.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- minimal-profile.xml 17 Oct 2003 23:13:26 -0000 1.3
+++ minimal-profile.xml 23 Oct 2003 19:38:16 -0000 1.4
@@ -58,10 +58,5 @@
<repository href="repository/whichever.xml"/>
<repository href="repository/xml.xml"/>
- <!-- server definitions. I have no idea what these are for. Leaving
- them doesn't harm. -->
- <server href="server/daedalus.apache.org.xml"/>
- <server href="server/icarus.apache.org.xml"/>
-
</profile>
1.16 +1 -0 jakarta-gump/.cvsignore
Index: .cvsignore
===================================================================
RCS file: /home/cvs/jakarta-gump/.cvsignore,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- .cvsignore 5 Sep 2003 23:08:48 -0000 1.15
+++ .cvsignore 23 Oct 2003 19:38:16 -0000 1.16
@@ -14,3 +14,4 @@
tmp
*~
LOCAL-ENV.bat
+local-env.sh
1.16 +22 -16 jakarta-gump/gumpy.sh
Index: gumpy.sh
===================================================================
RCS file: /home/cvs/jakarta-gump/gumpy.sh,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- gumpy.sh 14 Oct 2003 05:29:36 -0000 1.15
+++ gumpy.sh 23 Oct 2003 19:38:16 -0000 1.16
@@ -34,6 +34,7 @@
export GUMPY_VERSION="1.0.3"
export GUMP_PYTHON=$GUMP/python
export GUMP_TMP=$GUMP/tmp
+export GUMP_WS_TMP=$GUMP_WS/tmp
export GUMP_HOST=`hostname -s`
export GUMP_DATE=`date`
export GUMP_LOG=$GUMP_LOG_DIR/gumpy.html
@@ -99,20 +100,28 @@
cp -R `grep profile $GUMP_HOST.xml | cut -d\" -f2` $GUMP_PROFILE_LOG_DIR
#
+##########################################################
+#
# Preliminary cleanup
#
-cd $GUMP_TMP
-if [ -f check_forrest.txt ] ; then
- rm check_forrest.txt
+
+# Gump level tmp
+if [ -d $GUMP_TMP ] ; then
+ cd $GUMP_TMP
+ rm -f *.txt
fi
-if [ -f forrest.txt ] ; then
- rm forrest.txt
+# Gump work tmp
+if [ -d $GUMP_WS_TMP ] ; then
+ cd $GUMP_WS/tmp
+ rm -f *.txt
fi
-if [ -f $GUMP_WS/forrest/build/tmp/brokenlinks.txt ] ; then
- rm $GUMP_WS/forrest/build/tmp/brokenlinks.txt
+# Clear the forrest build area...
+if [ -d $GUMP_WS/forrest/build/ ] ; then
+ rm -rf $GUMP_WS/forrest/build/
fi
#
+###########################################################
# Do a CVS update
#
echo $SEPARATOR >> $GUMP_LOG
@@ -122,7 +131,7 @@
#
-# Set the PYTHONPATH & cd appropriately
+# Set the PYTHONPATH
#
export PYTHONPATH=$GUMP_PYTHON
@@ -179,16 +188,20 @@
cd $GUMP
echo \</XMP\> >> $GUMP_LOG
-pkill -P $$
-# $Log$
-# Revision 1.15 2003/10/14 05:29:36 ajack
-# Merged check.py into integrate.py (so removed from gumpy.sh)
#
-# Revision 1.2 2003/05/30 22:02:56 nickchalko
-# Fixing incomplete update from Adam
-# PR:
-# Obtained from:
-# Submitted by:Adam Jack ajack@TrySybase.com
-# Reviewed by:
+# Ensure nothing we started (directly) is left running after we end...
+#
+pkill -KILL -P $$
+
+# $Log$
+# Revision 1.16 2003/10/23 19:38:16 ajack
+# Try N+1(or more) on CLASSPATH, and:
+#
+# 1) Cleanup file that ought not be needed any more
+# 2) gumpy cleans tmp directories
+# 3) Added some gump python tests
+# 4) Starting to clean up some brute force inherit="all"
+# 5) Show first/last good builds as date/time not float
+# 6) Only show CLASSPATH in doc if the project will be built w/ ant/script
#
1.2 +7 -0 jakarta-gump/gumpytest.sh
Index: gumpytest.sh
===================================================================
RCS file: /home/cvs/jakarta-gump/gumpytest.sh,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gumpytest.sh 22 Oct 2003 20:00:50 -0000 1.1
+++ gumpytest.sh 23 Oct 2003 19:38:16 -0000 1.2
@@ -7,3 +7,10 @@
export
pwd
+
+#
+# Perform some CLASSPATH checks
+#
+echo "CLASSPATH checks"
+python gump/logic.py krysalis-ruper-ant
+python gump/logic.py commons-graph
\ No newline at end of file
1.30 +31 -11 jakarta-gump/python/gump/launcher.py
Index: launcher.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/launcher.py,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- launcher.py 20 Oct 2003 23:58:37 -0000 1.29
+++ launcher.py 23 Oct 2003 19:38:16 -0000 1.30
@@ -241,6 +241,7 @@
self.status=CMD_STATUS_NOT_YET_RUN
self.output=None
self.elapsed=0
+ self.signal=0
self.exit_code=-1
def overview(self,indent):
@@ -250,6 +251,8 @@
overview += indent+"Output: " + self.output
if self.elapsed:
overview += indent+"Elapsed: " + str(self.elapsed)
+ if self.signal:
+ overview += indent+"Signal: " + str(self.signal)
if self.exit_code:
overview += indent+"ExitCode: " + str(self.exit_code)
@@ -383,22 +386,39 @@
timer.setDaemon(1)
timer.start()
+ #
# Execute Command & Wait
- result.exit_code=os.system(execString + ' >>' + str(outputFile) + ' 2>&1')
+ #
+ waitcode=os.system(execString + ' >>' + str(outputFile) + ' 2>&1')
- # Stop it (if still running)
- timer.cancel()
-
+ #
+ # The resturn code (from wait) is (on Unix):
+ #
+ # a 16 bit number
+ # top byte = exit status
+ # low byte = signal that killed it
+ #
+ result.signal=(waitcode & 0xFF)
+ result.exit_code=(waitcode & 0xFF00)
+
+ #
+ # Assume timed out if this is not running...
+ #
+ if not timer.isAlive():
+ result.status=CMD_STATUS_TIMED_OUT
+ log.error('Command timed out. [' + execString + '] [' + str(timeout) + '] seconds.')
# Process Outputs (exit_code and stderr/stdout)
- if result.exit_code < 0:
- result.status=CMD_STATUS_TIMED_OUT
- log.error('Failed to launch/execute command. [' + execString + ']. ExitCode: ' + str(result.exit_code))
elif result.exit_code > 0:
- result.status=CMD_STATUS_FAILED
- log.error('Failed to launch/execute command. [' + execString + ']. ExitCode: ' + str(result.exit_code))
+ result.status=CMD_STATUS_FAILED
+ log.error('Failed to launch/execute command. [' + execString + ']. ExitCode: ' + str(result.exit_code))
else:
- result.status=CMD_STATUS_SUCCESS
-
+ result.status=CMD_STATUS_SUCCESS
+
+ #
+ # Stop it (if still running)
+ #
+ timer.cancel()
+
#
# Clean Up Empty Output Files
#
1.39 +66 -36 jakarta-gump/python/gump/logic.py
Index: logic.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/logic.py,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- logic.py 22 Oct 2003 21:49:39 -0000 1.38
+++ logic.py 23 Oct 2003 19:38:16 -0000 1.39
@@ -218,6 +218,13 @@
return result
+def hasBuildCommand(project):
+ hasBuild=0
+ # I.e has an <ant or <script element
+ if project.ant or project.script: hasBuild=1
+ return hasBuild
+
+
def getBuildCommand(workspace,module,project,context):
# get the ant element (if it exests)
@@ -419,15 +426,22 @@
# :TODO: Runtime?
#
# BOOTCLASSPATH?
-def getClasspathList(project,workspace,context):
+def getClasspathList(project,workspace,context,debug=0):
"""Get a TOTAL classpath for a project (including it's dependencies)"""
-
- # Start with the system classpath (later remove this)
- classpath=getSystemClasspathList()
# Context for this project
pctxt=context.getProjectContextForProject(project)
+ #
+ # Do this once only... storing it on the context
+ #
+ if hasattr(pctxt,'resolvedClasspath'):
+ if debug: print "Claspath previously resolved..."
+ return pctxt.resolvedClasspath
+
+ # Start with the system classpath (later remove this)
+ classpath=getSystemClasspathList()
+
# Add this project's work directories
srcdir=Module.list[project.module].srcdir
for work in project.work:
@@ -439,45 +453,59 @@
else:
log.error("<work element without nested or parent attributes on " \
+ project.name + " in " + project.module)
-
+
if path:
- classpath.append(AnnotatedPath(path,pctxt,None,'Working Directory'))
+ classpath.append(AnnotatedPath(path,pctxt,None,'Work Entity'))
+ if debug: print "Work Entity: " + path
# Append dependent projects (including optional)
visited=[]
- # Does it have any depends?
+ # Does it have any depends? Process all of them...
if project.depend:
# For each
for depend in project.depend:
- for path in getDependOutputList(project,pctxt,depend,context,visited):
+ for path in getDependOutputList(pctxt,project,pctxt,depend,context,visited,0,debug):
if not path in classpath:
classpath.append(path)
# Same as above, but for optional...
if project.option:
for option in project.option:
- for path in getDependOutputList(project,pctxt,option,context,visited):
+ for path in getDependOutputList(pctxt,project,pctxt,option,context,visited,0,debug):
if not path in classpath:
classpath.append(path)
-
+
+ #
+ # Store so we don't do this twice.
+ #
+ pctxt.resolvedClasspath = classpath
+
return classpath
#
-# :TODO: Runtime Dependency?
+# Perform this 'dependency' (mandatory or optional)
#
-def getDependOutputList(parent,parentctxt,depend,context,visited):
+# 1) Bring in the JARs (or those specified by id in depend ids)
+# 2) Do NOT bring in the working entities (directories/jars)
+# 3) Bring in the sub-depends (or optional) if inherit='all' or 'hard'
+# 4) Bring in the runtime sub-depends if inherit='runtime'
+#
+def getDependOutputList(beneficiary,parent,parentctxt,depend,context,visited,depth=0,debug=0):
"""Get a classpath of outputs for a project (including it's dependencies)"""
# Don't loop...
- if depend in visited:
- # print "Visited : " + str(depend)
- #print "Visits : "
- #for v in visited:
- # print " - " + str(v)
+ if depend in visited:
+ beneficiary.addInfo("Duplicated dependency [" + str(depend) + "]")
+ if debug:
+ print str(depth) + ") Already Visited : " + str(depend)
+ print str(depth) + ") Previously Visits : "
+ for v in visited:
+ print str(depth) + ") - " + str(v)
return []
visited.append(depend)
- #print "Perform : " + str(depend) + " in " + parent.name
+ if debug:
+ print str(depth) + ") Perform : " + str(depend) + " in " + parent.name
#
# Check we can get the project...
@@ -485,7 +513,7 @@
projectname=depend.project
if not Project.list.has_key(projectname):
if projectname:
- parentctxt.addError("Unknown project (in acquiring classpath) [" + projectname \
+ beneficiary.addError("Unknown project (in acquiring classpath) [" + projectname \
+ "] for [" + str(depend) + "]")
return []
@@ -540,6 +568,7 @@
if ids: dependStr += ' Id = ' + jar.id
path=AnnotatedPath(jar.path,pctxt,parentctxt,dependStr)
if not path in classpath:
+ if debug: print str(depth) + ') Append JAR : ' + str(path)
classpath.append(path)
#
@@ -551,29 +580,30 @@
parentctxt.addWarning("Invalid ID [" + id \
+ "] for dependency on [" + projectname + "]")
- #
- # Deep copy all/hard (or those for runtime)
- #
- # Append sub-projects outputs
+ # Append sub-projects outputs, if inherited
if project.depend:
- for subdepend in project.depend:
- if (subdepend.inherit and not subdepend.inherit=='none' ) \
- or (inherit=='runtime' and subdepend.runtime):
- for path in getDependOutputList(project,pctxt,subdepend,context,visited):
+ for subdepend in project.depend:
+ # If the dependency is set to 'all' (or 'hard') we inherit all dependencies
+ # If the dependency is set to 'runtime' we inherit all runtime dependencies
+ if (inherit=='all' or inherit=='hard') \
+ or (inherit=='runtime' and subdepend.runtime):
+ for path in getDependOutputList(beneficiary,project,pctxt,subdepend,context,visited,depth+1,debug):
if not path in classpath:
classpath.append(path)
+ elif debug:
+ print str(depth) + ') Skip : ' + str(subdepend) + ' in ' + project.name
- #
- # Deep copy all/hard (or those for runtime)
- #
- # Append sub-projects outputs
+ # Append sub-projects outputs, if inherited
if project.option:
- for suboption in project.option:
- if (suboption.inherit and not suboption.inherit=='none' ) \
- or (inherit=='runtime' and suboption.runtime):
- for path in getDependOutputList(project,pctxt,suboption,context,visited):
+ for suboption in project.option:
+ # See similar loop above here for logic...
+ if (inherit=='all' or inherit=='hard') \
+ or (inherit=='runtime' and suboption.runtime):
+ for path in getDependOutputList(beneficiary,project,pctxt,suboption,context,visited,depth+1,debug):
if not path in classpath:
classpath.append(path)
+ elif debug:
+ print str(depth) + ') Skip optional : ' + str(suboption) + ' in ' + project.name
return classpath
@@ -766,7 +796,7 @@
# documentText(workspace, context, ps)
for project in projects:
- cp=getClasspathList(project,workspace,context)
+ cp=getClasspathList(project,workspace,context,1)
print "Project : " + project.name
for p in cp:
if isinstance(p,AnnotatedPath):
1.8 +5 -1 jakarta-gump/python/gump/utils.py
Index: utils.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/utils.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- utils.py 17 Oct 2003 19:04:12 -0000 1.7
+++ utils.py 23 Oct 2003 19:38:16 -0000 1.8
@@ -65,9 +65,10 @@
import logging
import sys
import types, StringIO
+import time
from gump import log
-from gump.conf import default
+from gump.conf import default, setting
###############################################################################
# Base classes for the Displayable Objects
@@ -195,6 +196,9 @@
#:TODO: Don't show hours if 0, show mins/secs words
return ('%02d:%02d:%02d' % elapsed)
+def secsToDate(secs):
+ return time.strftime(setting.datetimeformat, \
+ time.localtime(secs))
#
# Get into ASCII, but make an attempt at coping with
1.91 +42 -40 jakarta-gump/python/gump/document.py
Index: document.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/document.py,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- document.py 21 Oct 2003 19:03:08 -0000 1.90
+++ document.py 23 Oct 2003 19:38:16 -0000 1.91
@@ -80,7 +80,7 @@
from gump.statistics import StatisticsDB,ProjectStatistics,StatisticsGuru
from gump.logic import getPackagedProjectContexts, getBuildSequenceForProjects,\
getProjectsForProjectExpression, getModuleNamesForProjectList, \
- isFullGumpSet, getClasspathList, AnnotatedPath
+ isFullGumpSet, getClasspathList, AnnotatedPath, hasBuildCommand
def documentText(workspace,context,moduleFilterList=None,projectFilterList=None):
documentTextToFile(sys.stdout,workspace,context,moduleFilterList,projectFilterList)
@@ -666,9 +666,9 @@
addItemXDoc(x,"Previous Status: ", stateName(stats.previousState))
if stats.first:
- addItemXDoc(x,"First Success: ", str(stats.first))
+ addItemXDoc(x,"First Success: ", secsToDate(stats.first))
if stats.last:
- addItemXDoc(x,"Last Success: ", str(stats.last))
+ addItemXDoc(x,"Last Success: ", secsToDate(stats.last))
# Display nag information
for nagEntry in project.nag:
@@ -686,41 +686,44 @@
documentProjectContextList(x,"Project Dependees",projectcontext.dependees)
documentProjectContextList(x,"Optional Project Dependees",projectcontext.optionees)
- startSectionXDoc(x,'Classpath')
- startTableXDoc(x)
- x.write(' <tr><th>Path Entry</th><th>Contributor</th><th>Instigator</th><th>Annotation</th></tr>')
- classpath=getClasspathList(project,workspace,context)
- paths=0
- for path in classpath:
- if isinstance(path,AnnotatedPath):
- pcontext=path.context
- ppcontext=path.pcontext
- note=path.note
- else:
- pcontext=context
- ppcontext=None
- note=''
- startTableRowXDoc(x)
- insertTableDataXDoc(x, path)
-
- # Contributor
- insertTableDataXDoc(x, getContextLink(pcontext))
-
- # Instigator (if not Gump)
- link=''
- if ppcontext: link=getContextLink(ppcontext)
- insertTableDataXDoc(x, link)
-
- # Additional Notes...
- insertTableDataXDoc(x, note)
- endTableRowXDoc(x)
- paths+=1
- if not paths:
- startTableRowXDoc(x)
- insertTableDataXDoc(x,"None")
- endTableRowXDoc(x)
- endTableXDoc(x)
- endSectionXDoc(x)
+ if hasBuildCommand(project):
+ startSectionXDoc(x,'Classpath')
+ startTableXDoc(x)
+ x.write(' <tr><th>Path Entry</th><th>Contributor</th><th>Instigator</th><th>Annotation</th></tr>')
+ classpath=getClasspathList(project,workspace,context)
+ paths=0
+ for path in classpath:
+ if isinstance(path,AnnotatedPath):
+ pcontext=path.context
+ ppcontext=path.pcontext
+ note=path.note
+ else:
+ pcontext=context
+ ppcontext=None
+ note=''
+ startTableRowXDoc(x)
+ insertTableDataXDoc(x, path)
+
+ # Contributor
+ insertTableDataXDoc(x, getContextLink(pcontext))
+
+ # Instigator (if not Gump)
+ link=''
+ if ppcontext: link=getContextLink(ppcontext)
+ insertTableDataXDoc(x, link)
+
+ # Additional Notes...
+ insertTableDataXDoc(x, note)
+ endTableRowXDoc(x)
+ paths+=1
+
+ if not paths:
+ startTableRowXDoc(x)
+ insertTableDataXDoc(x,"None")
+ endTableRowXDoc(x)
+
+ endTableXDoc(x)
+ endSectionXDoc(x)
# x.write('<p><strong>Project Config :</strong> <link href=\'%s\'>XML</link></p>' \
# % (getModuleProjectRelativeUrl(modulename,projectcontext.name)) )
@@ -776,8 +779,7 @@
x.write(' <td>%s</td>' % (workTypeName(work.type)))
x.write(' <td>%s</td><td>%s</td><td>%s</td>' \
% ( stateName(work.status), \
- time.strftime(setting.datetimeformat, \
- time.localtime(work.result.start_time)), \
+ secsToDate(work.result.start_time), \
secsToString(work.secs)))
x.write(' </tr>')
x.write(' </table>\n')
1.34 +5 -5 jakarta-gump/python/gump/conf.py
Index: conf.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/conf.py,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- conf.py 22 Oct 2003 13:54:33 -0000 1.33
+++ conf.py 23 Oct 2003 19:38:16 -0000 1.34
@@ -111,14 +111,14 @@
class setting:
"""Configuration of hardcoded settings"""
- version="2.0.1-alpha-0006"
+ version="2.0.1-alpha-0007"
# :TODO: Add "minimum checks later..."
ws_version="0.4"
datetimeformat="%a, %d %b %Y %H:%M:%S (%Z)"
- timeout=60*30 # 30 minutes (in seconds)
+ timeout=60*40 # 40 minutes (in seconds)
class switch:
"""Configuration of switches """