Package: reportbug Version: 6.4.4 Severity: normal Tags: patch Hi,
I've got a few patches for reportbug to: - update the suite/codename mapping - fix a possible test failure - change the checkversions.get_versions_available function to - not do arch/dist filtering itself, getting madison to do it instead - work with codenames instead of suites - change the way release.debian.org pu bugs are tagged. Instead of using pu and opu usertags (which need to be switched across a release), just use a combination of pu usertag and normal suite tag. Cheers, Julien
From 70a674175cf08d6302ae1465ed11b795e74048a3 Mon Sep 17 00:00:00 2001 From: Julien Cristau <jcris...@debian.org> Date: Thu, 9 May 2013 20:51:42 +0200 Subject: [PATCH 1/4] Update codename/suite mapping for wheezy release --- reportbug/utils.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reportbug/utils.py b/reportbug/utils.py index 01f7062..8a104d8 100644 --- a/reportbug/utils.py +++ b/reportbug/utils.py @@ -88,9 +88,9 @@ fhs_directories = ['/', '/usr', '/usr/share', '/var', '/usr/X11R6', '/usr/man', '/usr/doc', '/usr/bin'] # A map between suites and distributions names -SUITES2DISTS = {'lenny': 'oldstable', - 'squeeze': 'stable', - 'wheezy': 'testing', +SUITES2DISTS = {'squeeze': 'oldstable', + 'wheezy': 'stable', + 'jessie': 'testing', 'sid': 'unstable', 'experimental': 'experimental'} -- 1.7.10.4
From 746c7676dbce96df94d020dbdd0a4c6770aeb7bf Mon Sep 17 00:00:00 2001 From: Julien Cristau <jcris...@debian.org> Date: Thu, 9 May 2013 20:53:07 +0200 Subject: [PATCH 2/4] test: don't assert that unstable version is strictly greater than stable --- test/test_checkversions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_checkversions.py b/test/test_checkversions.py index 17a27d3..58b7e64 100644 --- a/test/test_checkversions.py +++ b/test/test_checkversions.py @@ -38,7 +38,7 @@ class TestVersionAvailable(unittest2.TestCase): vers = checkversions.get_versions_available('reportbug', 60) # check stable version is lower than unstable chk = checkversions.compare_versions(vers['stable'], vers['unstable']) - self.assertEqual(chk, 1) + self.assertGreaterEqual(chk, 0) @attr('network') #marking the test as using network def test_bts649649(self): -- 1.7.10.4
From f77beaed90c8f73c85cd09d24405661308498809 Mon Sep 17 00:00:00 2001 From: Julien Cristau <jcris...@debian.org> Date: Thu, 9 May 2013 21:01:45 +0200 Subject: [PATCH 3/4] checkversions: let rmadison do the architecture/suite filtering Also accept codenames (wheezy, jessie, sid) instead of suite names (stable, testing, unstable). --- reportbug/checkversions.py | 19 ++++++++++--------- test/test_checkversions.py | 6 ++++++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/reportbug/checkversions.py b/reportbug/checkversions.py index 5ce2802..38d7762 100644 --- a/reportbug/checkversions.py +++ b/reportbug/checkversions.py @@ -104,8 +104,15 @@ def get_versions_available(package, timeout, dists=None, http_proxy=None, arch=' if not dists: dists = ('oldstable', 'stable', 'testing', 'unstable', 'experimental') + arch = utils.get_arch() + + url = RMADISON_URL % package + url += '&s=' + ','.join(dists) + # select only those lines that refers to source pkg + # or to binary packages available on the current arch + url += '&a=source,all,' + arch try: - page = open_url(RMADISON_URL % package) + page = open_url(url) except NoNetwork: return {} except urllib2.HTTPError, x: @@ -118,7 +125,6 @@ def get_versions_available(package, timeout, dists=None, http_proxy=None, arch=' content = page.read().replace(' ', '').strip() page.close() - arch = utils.get_arch() versions = {} for line in content.split('\n'): l = line.split('|') @@ -126,13 +132,8 @@ def get_versions_available(package, timeout, dists=None, http_proxy=None, arch=' if len(l) != 4: continue # map suites name (returned by madison) to dist name - dist = utils.SUITES2DISTS.get(l[2], '') - if dist in dists: - # select only those lines that refers to source pkg - # or to binary packages available on the current arch - if 'source' in l[3].split(',') or arch in l[3].split(',') or \ - l[3] == 'all': - versions[dist] = l[1] + dist = utils.SUITES2DISTS.get(l[2], l[2]) + versions[dist] = l[1] return versions diff --git a/test/test_checkversions.py b/test/test_checkversions.py index 58b7e64..8ad34a6 100644 --- a/test/test_checkversions.py +++ b/test/test_checkversions.py @@ -52,3 +52,9 @@ class TestVersionAvailable(unittest2.TestCase): # squeeze (stable at this time) is the first suite where texlive-xetex # is arch:all self.assertIn('stable', vers) + + @attr('network') + def test_codenames(self): + vers = checkversions.get_versions_available('reportbug', 60, ['sid']) + self.assertEqual(1, len(vers)) + self.assertEqual(vers.keys()[0], 'unstable') -- 1.7.10.4
From 06502520600c95ac1996d89cd7e008921357dc0e Mon Sep 17 00:00:00 2001 From: Julien Cristau <jcris...@debian.org> Date: Thu, 9 May 2013 21:11:49 +0200 Subject: [PATCH 4/4] debbugs: retire the opu tag for release.debian.org Use a combination of 'pu' usertag and normal suite tags instead. --- reportbug/debbugs.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/reportbug/debbugs.py b/reportbug/debbugs.py index 257ab10..9c727e7 100644 --- a/reportbug/debbugs.py +++ b/reportbug/debbugs.py @@ -401,8 +401,8 @@ def handle_debian_release(package, bts, ui, fromaddr, timeout, online=True, http 'britney': "testing migration script bugs", 'transition': "transition tracking", 'unblock': "unblock requests", - 'opu': "oldstable proposed updates requests", - 'pu': "stable proposed updates requests", + 'squeeze-pu': "squeeze proposed updates requests", + 'wheezy-pu': "wheezy proposed updates requests", 'rm': "Stable/Testing removal requests", 'other' : "None of the other options", }, 'Choose the request type: ', empty_ok=True) @@ -447,14 +447,14 @@ def handle_debian_release(package, bts, ui, fromaddr, timeout, online=True, http else: package = info[12] or package - if tag in ('binnmu', 'unblock', 'opu', 'pu', 'rm'): - # FIXME: opu/pu/rm should lookup the version elsewhere + if tag in ('binnmu', 'unblock', 'wheezy-pu', 'squeeze-pu', 'rm'): + # FIXME: pu/rm should lookup the version elsewhere version = info and info[0] if online: - if tag == 'pu': - version = checkversions.get_versions_available(package, timeout).get('stable', '') - elif tag == 'opu': - version = checkversions.get_versions_available(package, timeout).get('oldstable', '') + if tag == 'wheezy-pu': + version = checkversions.get_versions_available(package, timeout, 'wheezy').values()[0] + elif tag == 'squeeze-pu': + version = checkversions.get_versions_available(package, timeout, 'squeeze').values()[0] if version: cont = ui.select_options( "Latest version seems to be %s, is this the proper one ?" % (version), @@ -487,7 +487,11 @@ def handle_debian_release(package, bts, ui, fromaddr, timeout, online=True, http ui.long_message('No architecture specified, skipping...') pseudos.append("User: release.debian....@packages.debian.org") - pseudos.append("Usertags: %s" % (tag)) + if tag.endswith('-pu'): + pseudos.append("Usertags: pu") + pseudos.append("Tags: %s" % (tag[:-3])) + else: + pseudos.append("Usertags: %s" % (tag)) if tag == 'binnmu': reason = ui.get_string("binNMU changelog entry: ") @@ -558,7 +562,7 @@ def handle_debian_release(package, bts, ui, fromaddr, timeout, online=True, http unblock %s/%s """ % (package, package, version)) - elif tag == 'pu' or tag == 'opu': + elif tag.endswith('-pu'): subject = '%s: package %s/%s' % (tag, package, version) body = '(please explain the reason for this update here)\n' elif tag == 'rm': -- 1.7.10.4
signature.asc
Description: Digital signature