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 2004/01/30 18:22:58 UTC

cvs commit: jakarta-gump/python/gump/document xdoc.py forrest.py

ajack       2004/01/30 09:22:58

  Modified:    python/gump engine.py config.py
               python/gump/output nag.py
               python/gump/test/resources/full1 module4.xml
               python/gump/model project.py
               python/gump/document xdoc.py forrest.py
  Log:
  1) Split <ant target="X Y Z" on whitespace (primarily space), to be consistent with Traditional Gump.
  2) Added 'check for minimum workspace version' (in case I need to up to 0.4 for a name attribute on w/s)
  3) Cosmetic changes (more in docs, tweaked nag e-mail contents, etc.)
  
  Revision  Changes    Path
  1.51      +7 -1      jakarta-gump/python/gump/engine.py
  
  Index: engine.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/engine.py,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- engine.py	29 Jan 2004 18:11:56 -0000	1.50
  +++ engine.py	30 Jan 2004 17:22:57 -0000	1.51
  @@ -78,9 +78,15 @@
                       
           # Check the workspace
           if not workspace.getVersion() >= setting.ws_version:
  -            message='Workspace version ['+workspace.getVersion()+'] below expected [' + setting.ws_version + ']'
  +            message='Workspace version ['+workspace.getVersion()+'] below preferred [' + setting.ws_version + ']'
               workspace.addWarning(message)
               log.warn(message)   
  +            
  +        # Check the workspace
  +        if not workspace.getVersion() >= setting.ws_minimum_version:
  +            message='Workspace version ['+workspace.getVersion()+'] below minimum [' + setting.ws_minimum_version + ']'
  +            workspace.addError(message)
  +            log.error(message)   
               
           # Write workspace to a 'merge' file
           workspace.writeXMLToFile(default.merge)
  
  
  
  1.13      +1 -1      jakarta-gump/python/gump/config.py
  
  Index: config.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/config.py,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- config.py	9 Jan 2004 19:57:19 -0000	1.12
  +++ config.py	30 Jan 2004 17:22:57 -0000	1.13
  @@ -127,8 +127,8 @@
       
       version="2.0.2-alpha-0002"
       
  -    # :TODO: Add "minimum version" checks...
       ws_version="0.4"
  +    ws_minimum_version="0.3"
       
       datetimeformat='%a, %d %b %Y %H:%M:%S (%Z)'
       timeformat='%H:%M:%S (%Z)'
  
  
  
  1.9       +18 -17    jakarta-gump/python/gump/output/nag.py
  
  Index: nag.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/output/nag.py,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- nag.py	29 Jan 2004 05:16:12 -0000	1.8
  +++ nag.py	30 Jan 2004 17:22:57 -0000	1.9
  @@ -322,19 +322,6 @@
           url=self.run.getOptions().getResolver().getUrl(object)
           content += "URL: " + url + "\n"
       
  -        if feedPrefix:
  -            #
  -            # Link them back here...
  -            #
  -            rssurl=self.run.getOptions().getResolver().getUrl(object,feedPrefix,'.rss')
  -            content += "RSS: " + rssurl + "\n"
  -    
  -            #
  -            # Link them back here...
  -            #
  -            atomurl=self.run.getOptions().getResolver().getUrl(object,feedPrefix,'.atom')
  -            content += "Atom: " + atomurl + "\n"
  -    
           #
           # Add an info/error/etc...
           #
  @@ -351,7 +338,21 @@
               content+="\n\n"
               for workitem in object.worklist:
                   content += LINE   
  -                content+=workitem.overview()+"\n"            
  +                content+=workitem.overview()+"\n"   
  +                
  +                
  +    
  +        if feedPrefix:
  +            content += LINE       
  +            
  +            #
  +            # Link them back here...
  +            #
  +            rssurl=self.run.getOptions().getResolver().getUrl(object,feedPrefix,'.rss')
  +            atomurl=self.run.getOptions().getResolver().getUrl(object,feedPrefix,'.atom')
  +            
  +            content += "RSS: " + rssurl + " | "
  +            content += "Atom: " + atomurl + "\n"         
       
           return content
       
  
  
  
  1.6       +2 -1      jakarta-gump/python/gump/test/resources/full1/module4.xml
  
  Index: module4.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module4.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- module4.xml	23 Jan 2004 23:32:26 -0000	1.5
  +++ module4.xml	30 Jan 2004 17:22:58 -0000	1.6
  @@ -10,7 +10,8 @@
     <project name="project4">
       <package>org.apache.project4</package>
   
  -    <ant target="gump">
  +	<!-- Not, a list of space separated targets... -->
  +    <ant target="gump1 gump2 gump3">
         <property name="ant.home" reference="home" project="project1"/>
       </ant>
   
  
  
  
  1.30      +15 -7     jakarta-gump/python/gump/model/project.py
  
  Index: project.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/model/project.py,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- project.py	23 Jan 2004 23:32:26 -0000	1.29
  +++ project.py	30 Jan 2004 17:22:58 -0000	1.30
  @@ -439,7 +439,8 @@
                       os.path.join(workspace.getBaseDirectory(),	\
                           self.xml.home.parent))
               else:
  -                log.error('Unable to complete project.home for [not nested/parent]: ' + self.name)
  +                message='Unable to complete project.home for [not nested/parent]: ' + self.name
  +                self.addError(message)
                   self.home=None        
           elif not self.xml.home:
               if self.module:
  @@ -448,7 +449,8 @@
               else:
                   self.home=os.path.abspath(os.path.join(workspace.getBaseDirectory(),self.name))
           else:
  -            log.error('Unable to complete project.home for: ' + self.name)
  +            message='Unable to complete project.home for: ' + self.name 
  +            self.addError(message)
               self.home=None
   
           #
  @@ -631,6 +633,10 @@
           for dependee in self.getFullDependees():
               if dependee.getOwnerProject()==project: return 1
               
  +    def hasHomeDirectory(self):
  +        if hasattr(self,'home') and self.home: return 1
  +        return 0
  +        
       def getHomeDirectory(self):
           return self.home
           
  @@ -763,7 +769,9 @@
           if buildfile: cmd.addParameter('-f',buildfile)
       
           # End with the target...
  -        if target: cmd.addParameter(target)
  +        if target: 
  +            for targetParam in target.split():
  +                cmd.addParameter(targetParam)
       
           return cmd
   
  @@ -1123,7 +1131,7 @@
           runtime=dependency.runtime
           inherit=dependency.inherit
           if dependency.ids:
  -            ids=dependency.ids.split(' ')
  +            ids=dependency.ids.split()
           else:
               ids=None
     
  
  
  
  1.9       +6 -3      jakarta-gump/python/gump/document/xdoc.py
  
  Index: xdoc.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/document/xdoc.py,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- xdoc.py	21 Jan 2004 21:26:02 -0000	1.8
  +++ xdoc.py	30 Jan 2004 17:22:58 -0000	1.9
  @@ -676,5 +676,8 @@
       def createNote(self,text=None):
           return self.storePiece(XDocNote(self.createSubContext(),text))  
           
  +    def createWarning(self,text=None):
  +        return self.storePiece(XDocWarning(self.createSubContext(),text))      
  +        
       
       
  
  
  
  1.61      +47 -28    jakarta-gump/python/gump/document/forrest.py
  
  Index: forrest.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/document/forrest.py,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- forrest.py	29 Jan 2004 18:11:56 -0000	1.60
  +++ forrest.py	30 Jan 2004 17:22:58 -0000	1.61
  @@ -287,19 +287,19 @@
               syndRow.createData().createLink('workspace.html','XML')
                   
           if not gumpSet.isFull():
  -            note=definitionSection.createNote()
  +            warning=definitionSection.createWarning()
               
  -            note.createText("""This output does not represent the a complete workspace,
  +            warning.createText("""This output does not represent the a complete workspace,
               but a partial one.         
               Only projects, and their dependents, matching this regular expression """)
  -            note.createStrong(gumpSet.projectexpression)
  -            note.createBreak()
  -            note.createBreak()            
  -            note.createText('Requested Projects:')
  -            note.createBreak()
  +            warning.createStrong(gumpSet.projectexpression)
  +            warning.createBreak()
  +            warning.createBreak()            
  +            warning.createText('Requested Projects:')
  +            warning.createBreak()
               for project in gumpSet.projects:
  -                note.createText(project.name)
  -                note.createText(' ')
  +                warning.createText(project.name)
  +                warning.createText(' ')
                               
           
           self.documentSummary(document,workspace.getProjectSummary())        
  @@ -939,17 +939,30 @@
           detailsList=detailsSection.createList()
               
           self.insertLink(project.getModule(),project,detailsList.createEntry('Module: '))
  +        
  +        
  +        if project.hasHomeDirectory():
  +            detailsList.createEntry('Home Directory: ', project.getHomeDirectory())
  +            
           if project.hasCause() and not project==project.getCause():
               self.insertTypedLink(project.getCause(),project,detailsList.createEntry('Root Cause: '))
  +            
           e = secsToElapsedString(project.getElapsedSecs())
           if e: detailsList.createEntry("Elapsed: ", e)
                                                         
           # Display nag information
  -        for nagEntry in project.xml.nag:
  -            toaddr=getattr(nagEntry,'to') or workspace.mailinglist
  -            fromaddr=getStringFromUnicode(getattr(nagEntry,'from') or workspace.email)
  -            detailsList.createEntry("Nag To: ").createFork('mailto:'+toaddr,toaddr)
  -            detailsList.createEntry("Nag From: ").createFork('mailto:'+fromaddr,fromaddr)
  +        if project.xml.nag:
  +            for nagEntry in project.xml.nag:
  +                toaddr=getattr(nagEntry,'to') or workspace.mailinglist
  +                fromaddr=getStringFromUnicode(getattr(nagEntry,'from') or workspace.email)
  +                detailsList.createEntry('Nag To: ').createFork('mailto:'+toaddr,toaddr)
  +                detailsList.createEntry('Nag From: ').createFork('mailto:'+fromaddr,fromaddr)
  +        elif not project.isPackaged() and project.hasBuildCommand():            
  +            document.createWarning('This project does not utilize Gump nagging.')  
  +                             
  +        metadataLocation=str(project.xml.href) or str(module.xml.href)
  +        if metadataLocation:  
  +            detailsList.createEntry('Gump Metadata: ', metadataLocation)
                                
           # Note: Leverages previous extraction from project statistics DB
           stats=project.getStats()
  @@ -1098,18 +1111,21 @@
                        
       def documentDependenciesList(self,xdocNode,title,dependencies,dependees,referencingObject):
         if dependencies:
  -            projectSection=xdocNode.createSection(title)
  -            projectTable=projectSection.createTable(['Name','Type','Inheritence','Ids','State','Notes'])
  +            dependencySection=xdocNode.createSection(title)
  +            dependencyTable=dependencySection.createTable(['Name','Type','Inheritence','Ids','State','Notes'])
  +            totalDeps=0
               for depend in dependencies:
                   
  +                totalDeps += 1
  +                
                   # Project/Owner
                   if not dependees:
                       project=depend.getProject()
                   else:
                       project=depend.getOwnerProject()
  -                projectRow=projectTable.createRow()    
  -                projectRow.createComment(project.getName())
  -                self.insertLink( project, referencingObject, projectRow.createData())                
  +                dependencyRow=dependencyTable.createRow()    
  +                dependencyRow.createComment(project.getName())
  +                self.insertLink( project, referencingObject, dependencyRow.createData())                
                   
                   # Type
                   type=''
  @@ -1119,23 +1135,26 @@
                   if depend.isOptional():
                       if type: type += ' '
                       type+='Optional'                
  -                projectRow.createData(type)
  +                dependencyRow.createData(type)
                   
                   # Inheritence
  -                projectRow.createData(depend.getInheritenceDescription())
  +                dependencyRow.createData(depend.getInheritenceDescription())
                   
                   # Ids
                   ids = depend.getIds() or 'All'
  -                projectRow.createData(ids)
  +                dependencyRow.createData(ids)
                   
                   # State Icon
  -                self.insertStateIcon(project,referencingObject,projectRow.createData())
  +                self.insertStateIcon(project,referencingObject,dependencyRow.createData())
                   
                   # Dependency Annotations
  -                noteData=projectRow.createData()
  +                noteData=dependencyRow.createData()
                   for note in depend.getAnnotations():
                       noteData.createText(str(note))
  -                    noteData.createBreak()
  +                    noteData.createBreak()                    
  +        
  +            dependencySection.createParagraph(
  +                    'Total ' + title + ' : ' + str(totalDeps))
                   
       def documentAnnotations(self,xdocNode,annotatable):