[Checkins] SVN: keas.build/trunk/ Improvement: add SVN repo infos to the project config file.

Adam Groszer agroszer at gmail.com
Wed Feb 16 07:22:07 EST 2011


Log message for revision 120378:
  Improvement: add SVN repo infos to the project config file.

Changed:
  U   keas.build/trunk/CHANGES.txt
  U   keas.build/trunk/src/keas/build/build.py
  U   keas.build/trunk/src/keas/build/package.py

-=-
Modified: keas.build/trunk/CHANGES.txt
===================================================================
--- keas.build/trunk/CHANGES.txt	2011-02-16 11:37:57 UTC (rev 120377)
+++ keas.build/trunk/CHANGES.txt	2011-02-16 12:22:07 UTC (rev 120378)
@@ -6,7 +6,10 @@
 
 - Bump versions to ZTK 1.1
 
+- Improvement: add SVN repo infos to the project config file.
+  Yah, I know this can be checked anytime, but adding this saves a lot of time.
 
+
 0.1.8 (2010-05-11)
 ------------------
 

Modified: keas.build/trunk/src/keas/build/build.py
===================================================================
--- keas.build/trunk/src/keas/build/build.py	2011-02-16 11:37:57 UTC (rev 120377)
+++ keas.build/trunk/src/keas/build/build.py	2011-02-16 12:22:07 UTC (rev 120378)
@@ -167,6 +167,7 @@
 
     # Determine all versions of the important packages
     pkgversions = {}
+    pkginfos = {}
     for pkg in config.get(base.BUILD_SECTION, 'packages').split():
         customPath = None
         if ':' in pkg:
@@ -177,6 +178,7 @@
                                  forceSvnAuth = options.forceSvnAuth)
 
         pkgversions[pkg] = version
+        pkginfos[pkg] = (builder.branchUrl, builder.branchRevision)
         projectParser.set('versions', pkg, version)
 
     # Get upload type
@@ -217,8 +219,21 @@
     # Write out the new project config -- the pinned versions
     projectConfigFilename = '%s-%s.cfg' %(projectName, projectVersion)
     logger.info('Writing project configuration file: ' + projectConfigFilename)
-    projectParser.write(open(projectConfigFilename, 'w'))
+    projectFile = open(projectConfigFilename, 'w')
+    projectParser.write(projectFile)
 
+    # Dump package repo infos
+    projectFile.write('\n')
+    projectFile.write('# package SVN infos:\n')
+    for pkg, pkginfo in pkginfos.items():
+        projectFile.writelines(
+            ('# %s\n' % pkg,
+             '#   svn URL:%s\n' % pkginfo[0],
+             '#   svn repo revision:%s\n' % pkginfo[1][0],
+             '#   svn last change revision:%s\n' % pkginfo[1][1],
+            ))
+    projectFile.close()
+
     filesToUpload = [projectConfigFilename]
 
     # Process config files, check for dependent config files

Modified: keas.build/trunk/src/keas/build/package.py
===================================================================
--- keas.build/trunk/src/keas/build/package.py	2011-02-16 11:37:57 UTC (rev 120377)
+++ keas.build/trunk/src/keas/build/package.py	2011-02-16 12:22:07 UTC (rev 120378)
@@ -68,6 +68,10 @@
     tagLayout = 'flat'
     svn = None
 
+    #filled by runCLI, as an info for build.py
+    branchUrl = None
+    branchRevision = None
+
     def __init__(self, pkg, options):
         self.pkg = pkg
         self.options = options
@@ -112,8 +116,15 @@
         else:
             revision = int(revision)
         logger.debug('Revision for %s: %i' %(url, revision))
-        return revision
 
+        repoRevision = elem.find("entry").get("revision")
+        if not repoRevision:
+            repoRevision = 0
+        else:
+            repoRevision = int(repoRevision)
+            logger.debug('Repo Revision for %s: %i' %(url, repoRevision))
+        return (repoRevision, revision)
+
     def findVersions(self):
         if self.options.offline:
             logger.info('Offline: Skip looking for versions.')
@@ -216,7 +227,7 @@
         # source directory instead.
         branchUrl = self.getBranchURL(branch) + '/src'
         tagUrl = self.getTagURL(version)
-        changed = self.getRevision(branchUrl) > self.getRevision(tagUrl)
+        changed = self.getRevision(branchUrl)[1] > self.getRevision(tagUrl)[1]
         if changed:
             logger.info(
                 'Branch %r changed since the release of version %s' %(
@@ -427,6 +438,11 @@
             break
         # 5. Return the version number.
         logger.info('Chosen version: ' + version)
+
+        # save the info for build.py
+        self.branchUrl = self.getBranchURL(branch)
+        self.branchRevision = self.getRevision(self.branchUrl)
+
         return version
 
 



More information about the checkins mailing list