commit openSUSE-release-tools for openSUSE:Factory
Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2018-04-30 22:54:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "openSUSE-release-tools" Mon Apr 30 22:54:57 2018 rev:88 rq:602092 version:20180427.add0eb7 Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2018-04-27 16:09:26.550026327 +0200 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2018-04-30 22:58:20.121782012 +0200 @@ -1,0 +2,17 @@ +Fri Apr 27 15:56:47 UTC 2018 - opensuse-releaseteam@opensuse.org + +- Update to version 20180427.add0eb7: + * [openqa-maintenance] Don't accept incidents waiting for build + * osclib/check_duplicate_binaries: ignore any package arch that differs from arch. + * osclib/check_duplicate_binaries: rewrite to use package_binary_list(). + * osclib/core: binary_src_debug: include nosrc as ignored arch. + * osclib/core: package_binary_list: provide strip_multibuild option. + * osclib/check_duplicate_binaries: drop unused imports post lnussel rework. + +------------------------------------------------------------------- +Thu Apr 26 17:10:14 UTC 2018 - opensuse-releaseteam@opensuse.org + +- Update to version 20180426.2550cb4: + * osclib/check_duplicate_binaries: ignore s/glibc.i686/glibc:i686/. + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20180426.2282f15.obscpio New: ---- openSUSE-release-tools-20180427.add0eb7.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.Io5CS4/_old 2018-04-30 22:58:23.309665689 +0200 +++ /var/tmp/diff_new_pack.Io5CS4/_new 2018-04-30 22:58:23.313665543 +0200 @@ -20,7 +20,7 @@ %define source_dir openSUSE-release-tools %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20180426.2282f15 +Version: 20180427.add0eb7 Release: 0 Summary: Tools to aid in staging and release work for openSUSE/SUSE License: GPL-2.0-or-later AND MIT ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Io5CS4/_old 2018-04-30 22:58:23.385662915 +0200 +++ /var/tmp/diff_new_pack.Io5CS4/_new 2018-04-30 22:58:23.385662915 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param> - <param name="changesrevision">2282f15cf32167d4eddadce3a87205e44e5e0a59</param> + <param name="changesrevision">add0eb7927dde22dc83b06ae66b3027fbbe83228</param> </service> </servicedata> ++++++ openSUSE-release-tools-20180426.2282f15.obscpio -> openSUSE-release-tools-20180427.add0eb7.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180426.2282f15/oqamaint/openqabot.py new/openSUSE-release-tools-20180427.add0eb7/oqamaint/openqabot.py --- old/openSUSE-release-tools-20180426.2282f15/oqamaint/openqabot.py 2018-04-26 17:55:07.000000000 +0200 +++ new/openSUSE-release-tools-20180427.add0eb7/oqamaint/openqabot.py 2018-04-27 17:55:47.000000000 +0200 @@ -3,7 +3,6 @@ from datetime import date import md5 from pprint import pformat -import re from urllib2 import HTTPError from osclib.comments import CommentAPI @@ -42,7 +41,6 @@ self.project_settings = {} self.api_map = {} self.bot_name = 'openqa' - self.force = False self.openqa = None self.commentapi = CommentAPI(self.apiurl) @@ -227,7 +225,7 @@ def request_get_openqa_status(self, req): types = {a.type for a in req.actions} - if not 'maintenance_release' in types: + if 'maintenance_release' not in types: return [], QA_UNKNOWN src_prjs = {a.src_project for a in req.actions} @@ -256,7 +254,7 @@ if not foundissue: self.logger.info("Repo job {} not for {} - ignoring".format(job['id'], incident_id)) return jobs, QA_INPROGRESS - #print(foundissue, incident_id, json.dumps(job['settings'], indent=4)) + # print(foundissue, incident_id, json.dumps(job['settings'], indent=4)) jobs += repo_jobs return jobs, self.calculate_qa_status(jobs) @@ -375,17 +373,18 @@ return msg.rstrip('\n') def check_one_request(self, req): - ret = None - try: jobs, qa_state = self.request_get_openqa_status(req) self.logger.debug("request %s state %s", req.reqid, qa_state) msg = None if qa_state == QA_UNKNOWN: - if not jobs: + incident_id = req.findall('.action/source')[0].get('project').split(":")[-1] + if not jobs and incident_id not in self.wait_for_build: msg = "no openQA tests defined" self.comment_write(state='done', message=msg, request=req, result='accepted') return True + else: + self.logger.debug("request {} waits for build".format(req.request_id)) elif qa_state == QA_FAILED or qa_state == QA_PASSED: if qa_state == QA_PASSED: msg = "openQA tests passed\n" @@ -430,7 +429,7 @@ issues['OS_TEST_ISSUES'] = issues.get('OS_TEST_ISSUES', product_prefix) required_issue = pmap.get('required_issue', False) for key, prefix in issues.items(): - #self.logger.debug("KP {} {}".format(key, prefix) + str(job)) + # self.logger.debug("KP {} {}".format(key, prefix) + str(job)) channel = prefix if arch: channel += arch @@ -457,6 +456,7 @@ if not job.get('openqa_build'): job['openqa_build'] = update.get_max_revision(job) if not job.get('openqa_build'): + self.wait_for_build.add(str(job['id'])) return [] self.incident_repos.setdefault(product_prefix, dict())[ str(job['id'])] = job.get('openqa_build') @@ -497,6 +497,7 @@ # for SUSE we use mesh for openSUSE we limit the jobs to open release requests def check_opensuse_incidents(self): requests = [] + self.wait_for_build = set() for prj in self.tgt_repo[self.openqa.baseurl].keys(): requests += self.ids_project(prj, 'maintenance_release') @@ -504,7 +505,7 @@ issues = dict() for req in requests: types = set([a.type for a in req.actions]) - if not 'maintenance_release' in types: + if 'maintenance_release' not in types: continue src_prjs = set([a.src_project for a in req.actions]) @@ -512,10 +513,9 @@ raise Exception("can't handle maintenance_release from different incidents") build = src_prjs.pop() tgt_prjs = set([a.tgt_project for a in req.actions]) - ret = [] for prj in tgt_prjs: # ignore e.g. Backports - if not prj in self.project_settings: + if prj not in self.project_settings: continue incident_id = build.split(':')[-1] @@ -527,6 +527,7 @@ s['OS_TEST_ISSUES'] = ','.join(sorted(issues.get(prj, set()))) def check_suse_incidents(self): + self.wait_for_build = set() for inc in requests.get('https://maintenance.suse.de/api/incident/active/').json(): self.logger.info("Incident number: {}".format(inc)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180426.2282f15/oqamaint/update.py new/openSUSE-release-tools-20180427.add0eb7/oqamaint/update.py --- old/openSUSE-release-tools-20180426.2282f15/oqamaint/update.py 2018-04-26 17:55:07.000000000 +0200 +++ new/openSUSE-release-tools-20180427.add0eb7/oqamaint/update.py 2018-04-27 17:55:47.000000000 +0200 @@ -45,7 +45,7 @@ if not xml.ok: self.logger.info("{} skipped .. need wait".format(crepo)) # if one fails, we skip it and wait - return None + return False root = ET.fromstring(xml.text) rev = root.find('.//{http://linux.duke.edu/metadata/repo}revision') rev = int(rev.text) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180426.2282f15/osclib/check_duplicate_binaries_command.py new/openSUSE-release-tools-20180427.add0eb7/osclib/check_duplicate_binaries_command.py --- old/openSUSE-release-tools-20180426.2282f15/osclib/check_duplicate_binaries_command.py 2018-04-26 17:55:07.000000000 +0200 +++ new/openSUSE-release-tools-20180427.add0eb7/osclib/check_duplicate_binaries_command.py 2018-04-27 17:55:47.000000000 +0200 @@ -1,64 +1,35 @@ from __future__ import print_function -from osc.core import http_GET -from osclib.core import package_list +from osclib.core import package_binary_list from osclib.core import target_archs -from xml.etree import cElementTree as ET -from pprint import pprint -import re -import urllib2 import yaml class CheckDuplicateBinariesCommand(object): def __init__(self, api): self.api = api - # some packages create packages with the same name but - # different architecture than built for. - self.ignore_extra_archs = { - 'i586': { - 'glibc.i686': ('i686',) - }, - 'x86_64': { - 'syslinux': ('s390x', 'ppc64le',) - } - } def perform(self, save=False): duplicates = {} for arch in sorted(target_archs(self.api.apiurl, self.api.project), reverse=True): - url = self.api.makeurl(['build', self.api.project, 'standard', arch], { 'view': 'binaryversions' }) - data = http_GET(url) - root = ET.parse(data).getroot() - + package_binaries, _ = package_binary_list( + self.api.apiurl, self.api.project, 'standard', arch, + strip_multibuild=False, exclude_src_debug=True) binaries = {} - for packagenode in root.findall('.//binaryversionlist'): - package = packagenode.get('package') - for binarynode in packagenode.findall('binary'): - binary = binarynode.get('name') - # StagingAPI.fileinfo_ext(), but requires lots of calls. - match = re.match(r'(.*)-([^-]+)-([^-]+)\.([^-\.]+)\.rpm', binary) - if not match: - continue - parch = match.group(4) - if parch in ('src', 'nosrc'): - continue - - name = match.group(1) - - if arch in self.ignore_extra_archs \ - and package in self.ignore_extra_archs[arch] \ - and parch in self.ignore_extra_archs[arch][package]: - continue - - binaries.setdefault(arch, {}) - if name in binaries[arch]: - duplicates.setdefault(arch, {}) - duplicates[arch].setdefault(name, set()).add(package) - duplicates[arch][name].add(binaries[arch][name]) + for pb in package_binaries: + if pb.arch != 'noarch' and pb.arch != arch: + continue + + binaries.setdefault(arch, {}) + + if pb.name in binaries[arch]: + duplicates.setdefault(arch, {}) + duplicates[arch].setdefault(pb.name, set()) + duplicates[arch][pb.name].add(pb.package) + duplicates[arch][pb.name].add(binaries[arch][pb.name]) - continue + continue - binaries[arch][name] = package + binaries[arch][pb.name] = pb.package # convert sets to lists for readable yaml for arch in duplicates.keys(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180426.2282f15/osclib/core.py new/openSUSE-release-tools-20180427.add0eb7/osclib/core.py --- old/openSUSE-release-tools-20180426.2282f15/osclib/core.py 2018-04-26 17:55:07.000000000 +0200 +++ new/openSUSE-release-tools-20180427.add0eb7/osclib/core.py 2018-04-27 17:55:47.000000000 +0200 @@ -121,7 +121,7 @@ return parsed @memoize(session=True) -def package_binary_list(apiurl, project, repository, arch, package=None, exclude_src_debug=False): +def package_binary_list(apiurl, project, repository, arch, package=None, strip_multibuild=True, exclude_src_debug=False): path = ['build', project, repository, arch] if package: path.append(package) @@ -131,9 +131,10 @@ package_binaries = [] binary_map = {} # last duplicate wins for binary_list in root: - # Strip off multibuild extra to provide actual package name. The full - # value may be useful for duplicate check. - package = binary_list.get('package').split(':', 1)[0] + package = binary_list.get('package') + if strip_multibuild: + package = package.split(':', 1)[0] + for binary in binary_list: filename = binary.get('name') result = re.match(RPM_REGEX, filename) @@ -153,6 +154,7 @@ def binary_src_debug(binary): return ( binary.arch == 'src' or + binary.arch == 'nosrc' or binary.name.endswith('-debuginfo') or binary.name.endswith('-debugsource') ) ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.Io5CS4/_old 2018-04-30 22:58:24.277630368 +0200 +++ /var/tmp/diff_new_pack.Io5CS4/_new 2018-04-30 22:58:24.281630222 +0200 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20180426.2282f15 -mtime: 1524758107 -commit: 2282f15cf32167d4eddadce3a87205e44e5e0a59 +version: 20180427.add0eb7 +mtime: 1524844547 +commit: add0eb7927dde22dc83b06ae66b3027fbbe83228
participants (1)
-
root@hilbert.suse.de