[Checkins] SVN: bbkit/trunk/scripts/ Added script to get chnages between releases

Baiju M baiju.m.mail at gmail.com
Mon Mar 1 11:04:18 EST 2010


Log message for revision 109540:
  Added script to get chnages between releases
  

Changed:
  A   bbkit/trunk/scripts/
  A   bbkit/trunk/scripts/changes.py

-=-
Added: bbkit/trunk/scripts/changes.py
===================================================================
--- bbkit/trunk/scripts/changes.py	                        (rev 0)
+++ bbkit/trunk/scripts/changes.py	2010-03-01 16:04:17 UTC (rev 109540)
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+import ConfigParser
+import cStringIO
+import subprocess
+import sys
+import re
+import os
+
+OLD_VERSIONS = 'releases/zope-3.4.0.cfg'
+NEW_VERSIONS = 'releases/bluebream-1.0a1.cfg'
+
+def get_package(old_versions=OLD_VERSIONS,
+                new_versions=NEW_VERSIONS):
+    cp = ConfigParser.ConfigParser()
+    cp.read(old_versions)
+    old_pkg_versions = cp._sections['versions']
+
+    cp = ConfigParser.ConfigParser()
+    cp.read(new_versions)
+    new_pkg_versions = cp._sections['versions']
+    for package, version in new_pkg_versions.items():
+        if package not in old_pkg_versions:
+            yield package, '0.0.0'
+        else:
+            yield package, old_pkg_versions[package]
+
+def extract_changes(package, version):
+    url = 'svn://svn.zope.org/repos/main/%s/trunk/CHANGES.txt' % package
+    changes = subprocess.Popen(['svn', 'cat', url, package],
+                               shell=False,
+                               stderr=subprocess.PIPE,
+                               stdout=subprocess.PIPE)
+    changes.wait()
+    if changes.returncode > 0:
+        print changes.stderr.read()
+    diff = open(os.path.join("releases", package+"-changes.txt"), 'w')
+    underline = "="*len(package)
+    diff.write(package)
+    diff.write('\n')
+    diff.write(underline)
+    diff.write('\n\n')
+    pattern_start = re.compile('\d+\.\d+\.\d+\s+.*\d\d\d\d.\d\d.\d\d.*')
+    pattern_end = re.compile('%s\s+.*\d\d\d\d.\d\d.\d\d.*'%version)
+    started = False
+    for line in changes.stdout:
+        if not started:
+            if pattern_start.match(line):
+                started = True
+            else:
+                continue
+        if pattern_end.match(line):
+            break
+        else:
+            diff.write(line)
+    diff.close()
+
+if __name__ == '__main__':
+    for pkg in get_package():
+        extract_changes(*pkg)


Property changes on: bbkit/trunk/scripts/changes.py
___________________________________________________________________
Added: svn:executable
   + *



More information about the checkins mailing list