Author: tille Date: Wed Jul 28 13:59:37 2010 New Revision: 2292 URL: http://svn.debian.org/viewsvn/blends?rev=2292&view=rev
Log: Seek for updatable packages to be able to send mail to the relevant mailing list Added: blends/trunk/webtools/new_upstream.py (contents, props changed) Modified: blends/trunk/webtools/blendstasktools.py Modified: blends/trunk/webtools/blendstasktools.py URL: http://svn.debian.org/viewsvn/blends/blends/trunk/webtools/blendstasktools.py?rev=2292&view=diff&r1=2292&r2=2291&p1=blends/trunk/webtools/blendstasktools.py&p2=blends/trunk/webtools/blendstasktools.py ============================================================================== --- blends/trunk/webtools/blendstasktools.py (original) +++ blends/trunk/webtools/blendstasktools.py Wed Jul 28 13:59:37 2010 @@ -569,10 +569,10 @@ self.properties['pkg-url'] = 'http://ftp-master.debian.org/new/%s_%s.html' % (row['source'], row['version']) for prop in PROPERTIES: self.properties[prop] = row[prop] - self.desc['en']['short'] = MarkupString(unicode(row['description'], 'utf-8'), self.pkg, 'ShortDesc - New') + self.desc['en']['short'] = MarkupString(to_unicode(row['description']), self.pkg, 'ShortDesc - New') self.desc['en']['long'] = Markup(render_longdesc(row['long_description'].splitlines())) (_name, _url) = email.Utils.parseaddr(row['maintainer']) - self.responsible = '<a href="mailto:%s">%s</a>' % (_url, unicode(_name, 'utf-8')) + self.responsible = '<a href="mailto:%s">%s</a>' % (_url, to_unicode(_name)) print "The package %s is not yet in Debian but it is just in the new queue. (Task %s)" % (self.pkg, self.taskname) return @@ -598,7 +598,7 @@ self.component = 'non-free' else: self.component = curs.fetchone()[0] - # Debian Edu contains packages from main/debian-installer + # Debian Edu contains packages from main/debian-installer if self.component == 'main/debian-installer': self.component = 'main' self.properties['license'] = license_in_component[self.component] @@ -690,7 +690,7 @@ self.desc['en']['long'] = Markup(render_longdesc(to_unicode(row['long_description']).splitlines())) (_name, _url) = email.Utils.parseaddr(row['maintainer']) self.properties['maintainer'] = to_unicode(row['maintainer']) - self.responsible = '<a href="mailto:%s">%s</a>' % (_url, unicode(_name, 'utf-8')) + self.responsible = '<a href="mailto:%s">%s</a>' % (_url, to_unicode(_name)) if self.properties.has_key('source'): query = "EXECUTE src_vcs ('%s')" % (self.properties['source']) @@ -736,7 +736,7 @@ query = "EXECUTE query_get_latest_uploader ('%s')" % (self.src) curs.execute(query) try: - changed = unicode(curs.fetchone()[0], 'utf-8') + changed = to_unicode(curs.fetchone()[0]) except TypeError, err: changed = None print "Query '%s' does not result in a valid changed entry (%s)" % (query, err) @@ -877,6 +877,23 @@ ret[task] = list return ret + def GetUpdatablePackages(self, dependencystatus=[]): + # List of Updatable packages: sourcepkg, version, upstream version + ret = {} + use_dependencystatus = GetDependencies2Use(dependencystatus, 'experimental') + + for task in self.metapackagekeys: + tdeps = self.tasks[task] + list = [] + for dep in use_dependencystatus: + for tdep in tdeps.dependencies[dep]: + if tdep.outdated != {}: + # versionen sind geordnete Liste ---v--- letztes wird gebraucht + list.append((tdep.pkg, tdep.version[-1]['version'], tdep.outdated['version'])) + if list: + ret[task] = list + return ret + def GetNamesAndSourceDict(self, dependencystatus=()): # For the bugs pages we need not only the binary package names but the # source package as well to be able to link to the QA page @@ -1111,7 +1128,7 @@ if curs.rowcount > 0: row = RowDictionaries(curs)[0] (_name, _url) = email.Utils.parseaddr(row['maintainer']) - self.responsible = '<a href="mailto:%s">%s</a>' % (_url, unicode(_name, 'utf-8')) + self.responsible = '<a href="mailto:%s">%s</a>' % (_url, to_unicode(_name)) # if an English description was found chances are good that we are seeking for other languages # as well @@ -1125,14 +1142,13 @@ lang = row['language'] self.metapkg.desc[lang] = {} try: - # short = unicode(row['description'],'utf-8') - short = row['description'] - self.metapkg.desc[lang]['short'] = MarkupString(unicode(short, 'utf-8'), \ + short = to_unicode(row['description']) + self.metapkg.desc[lang]['short'] = MarkupString(to_unicode(short), \ self.metapkg.PrintedName, 'taskShortDesc - ' + lang) except UnicodeEncodeError, err: print >> stderr, "===> UnicodeDecodeError in metapackage %s (lang='%s'): '%s'; ErrTxt: %s" % \ (self.metapkg.pkg, lang, row['description'], err) - short = unicode(row['description'],'latin1') + short = to_unicode(row['description'],'latin1') self.metapkg.desc[lang]['short'] = MarkupString(short, \ self.metapkg.PrintedName, 'taskShortDesc - ' + lang) @@ -1362,12 +1378,6 @@ # Only update use description from task file if not known from official package if dep.desc['en'] == {}: (short, long) = SplitDescription(to_unicode(stanza['pkg-description'])) - # If here would be used - # unicode(long, 'utf-8') - # this would lead to TypeError problems - and in the end it does not prevent - # failures like - # pkgLongDesc UnicodeDecodeError in tinyheb (lang='en'): 'debug-string'; - # ErrTxt: 'ascii' codec can't decode byte 0xc2 in position 108: ordinal not in range(128) dep.desc['en']['short'] = short dep.desc['en']['long'] = long else: @@ -1558,7 +1568,7 @@ def __init__(self, bug): self.bug = bug['id'] - self.summary = unicode(bug['title'], 'utf-8') + self.summary = to_unicode(bug['title']) self.severity = bug['severity'] query = "EXECUTE bugs_query_tags (%i)" % self.bug Added: blends/trunk/webtools/new_upstream.py ============================================================================== --- (empty file) +++ blends/trunk/webtools/new_upstream.py Wed Jul 28 13:59:37 2010 @@ -0,0 +1,29 @@ +#!/usr/bin/python +# Check for packages of Blend which are not up to date and send +# E-Mail to Blend developer list + +from sys import argv, exit, stderr + +from blendstasktools import Tasks + +if len(argv) <= 1: + print >>stderr, "Usage: %s <Blend name>\n The <Blend name> needs a matching config file webconf/<Blend name>.conf"\ + % argv[0] + exit(-1) + +tasks = Tasks(argv[1]) +if tasks.data['pkglist'] == '': + print >>stderr, "Config file webconf/%s.conf is lacking pkglist field." % (argv[1]) + exit(-1) +tasks.GetAllDependencies(source=1) +packages = tasks.GetUpdatablePackages(dependencystatus=['official_high', 'official_low', 'non-free', 'experimental']) + +for task in packages.keys(): + print "Updatable packages in Task", task + for pkg_v_o in packages[task]: + print " %s: Highest version in Debian is %s; Upstream has %s" % ( pkg_v_o ) + +# Perhaps we should also send a mail to [email protected] +# keyword %(pkg) %(list) = bts bts-control upload-source katie-other summary default cvs ddtp derivatives contact +# to make sure the mailing list gets full information about packages including new upstream etc +# see http://www.debian.org/doc/manuals/developers-reference/resources.html#pkg-tracking-system _______________________________________________ Blends-commit mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/blends-commit
