Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2018-11-08 09:47:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "openSUSE-release-tools" Thu Nov 8 09:47:23 2018 rev:141 rq:644728 version:20181025.5558473 Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2018-10-23 20:42:24.836399257 +0200 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2018-11-08 09:47:43.277154111 +0100 @@ -1,0 +2,25 @@ +Thu Oct 25 18:49:00 UTC 2018 - opensuse-releaseteam@opensuse.org + +- Update to version 20181025.5558473: + * repo_checker: filter repository published check by arch. + * repo_checker: repository_state_last(): switch to simulate_merge as arg. + * repo_checker: repository_state(): limit meta revision to simulate merge. + * repo_checker: repository_state(): filter by relevant archs. + * repo_checker: extract arch determination as target_archs_from_prairs(). + * osclib/core: provide archs filter for repository state and published queries. + +------------------------------------------------------------------- +Thu Oct 25 18:24:53 UTC 2018 - opensuse-releaseteam@opensuse.org + +- Update to version 20181025.3ad87ff: + * manager_42: remove extra newline to avoid flake8 E301. + * flake8: utilize raw strings to avoid invalid escape character warnings. + * flake8: ignore W504. + +------------------------------------------------------------------- +Tue Oct 23 08:01:54 UTC 2018 - opensuse-releaseteam@opensuse.org + +- Update to version 20181023.f7ea85e: + * Fix deployment problems on rabbit-openqa + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20181023.9b1618e.obscpio New: ---- openSUSE-release-tools-20181025.5558473.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.NWsuR8/_old 2018-11-08 09:47:44.909152192 +0100 +++ /var/tmp/diff_new_pack.NWsuR8/_new 2018-11-08 09:47:44.909152192 +0100 @@ -20,7 +20,7 @@ %define source_dir openSUSE-release-tools %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20181023.9b1618e +Version: 20181025.5558473 Release: 0 Summary: Tools to aid in staging and release work for openSUSE/SUSE License: GPL-2.0-or-later AND MIT @@ -222,7 +222,7 @@ BuildArch: noarch # TODO Update requirements. Requires: osclib = %{version} -Requires: python-openqa_client +Requires: python2-openqa_client Requires: python2-pika %description totest-manager @@ -298,6 +298,8 @@ Group: Development/Tools/Other BuildArch: noarch Requires: osc >= 0.159.0 +Requires: python2-openqa_client +Requires: python2-pika %description rabbit-openqa Bot listening to AMQP bus and syncs openQA job status into OBS for @@ -399,8 +401,8 @@ %systemd_postun %pre rabbit-openqa -getent passwd osrt-rabit-openqa > /dev/null || \ - useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-rabbit-openqa" osrt-rabit-openqa +getent passwd osrt-rabbit-openqa > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-rabbit-openqa" osrt-rabbit-openqa exit 0 %postun rabbit-openqa ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.NWsuR8/_old 2018-11-08 09:47:44.957152136 +0100 +++ /var/tmp/diff_new_pack.NWsuR8/_new 2018-11-08 09:47:44.957152136 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param> - <param name="changesrevision">9b1618e7c51660bb6870efcbdf686cb8645abcbb</param> + <param name="changesrevision">55584739996331a3660216cb8ea4bcadca3bc60a</param> </service> </servicedata> ++++++ openSUSE-release-tools-20181023.9b1618e.obscpio -> openSUSE-release-tools-20181025.5558473.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/.flake8 new/openSUSE-release-tools-20181025.5558473/.flake8 --- old/openSUSE-release-tools-20181023.9b1618e/.flake8 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/.flake8 2018-10-25 20:44:10.000000000 +0200 @@ -1,4 +1,4 @@ [flake8] exclude = .open-build-service/, abichecker, openqa, openqa-maintenance.py max-line-length = 100 -ignore = E501,F401,E302,E228,E128,E251,E201,E202,E203,E305,F841,E265,E261,E266,E712,E401,E126,E502,E222,E241,E711,E226,E125,E123,W293,W391,E731,E101,E227,E713,E225,E124,E221,E127,E701,E714,W503,E129,E303,E741,E722 +ignore = E501,F401,E302,E228,E128,E251,E201,E202,E203,E305,F841,E265,E261,E266,E712,E401,E126,E502,E222,E241,E711,E226,E125,E123,W293,W391,E731,E101,E227,E713,E225,E124,E221,E127,E701,E714,W503,W504,E129,E303,E741,E722 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/dist/package/openSUSE-release-tools.spec new/openSUSE-release-tools-20181025.5558473/dist/package/openSUSE-release-tools.spec --- old/openSUSE-release-tools-20181023.9b1618e/dist/package/openSUSE-release-tools.spec 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/dist/package/openSUSE-release-tools.spec 2018-10-25 20:44:10.000000000 +0200 @@ -222,7 +222,7 @@ BuildArch: noarch # TODO Update requirements. Requires: osclib = %{version} -Requires: python-openqa_client +Requires: python2-openqa_client Requires: python2-pika %description totest-manager @@ -298,6 +298,8 @@ Group: Development/Tools/Other BuildArch: noarch Requires: osc >= 0.159.0 +Requires: python2-openqa_client +Requires: python2-pika %description rabbit-openqa Bot listening to AMQP bus and syncs openQA job status into OBS for @@ -399,8 +401,8 @@ %systemd_postun %pre rabbit-openqa -getent passwd osrt-rabit-openqa > /dev/null || \ - useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-rabbit-openqa" osrt-rabit-openqa +getent passwd osrt-rabbit-openqa > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-rabbit-openqa" osrt-rabbit-openqa exit 0 %postun rabbit-openqa diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/factory-package-news/announcer.py new/openSUSE-release-tools-20181025.5558473/factory-package-news/announcer.py --- old/openSUSE-release-tools-20181023.9b1618e/factory-package-news/announcer.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/factory-package-news/announcer.py 2018-10-25 20:44:10.000000000 +0200 @@ -99,7 +99,7 @@ if loc is None: raise Exception("empty location!") - m = re.search('(?:Snapshot|Build)([\d.]+)-Media', loc) + m = re.search(r'(?:Snapshot|Build)([\d.]+)-Media', loc) if m is None: raise Exception("failed to parse %s"%loc) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/leaper.py new/openSUSE-release-tools-20181025.5558473/leaper.py --- old/openSUSE-release-tools-20181023.9b1618e/leaper.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/leaper.py 2018-10-25 20:44:10.000000000 +0200 @@ -164,7 +164,7 @@ if review_result == None: other_projects_to_check = [] - m = re.match('SUSE:SLE-(\d+)(?:-SP(\d+)):', target_project) + m = re.match(r'SUSE:SLE-(\d+)(?:-SP(\d+)):', target_project) if m: sle_version = int(m.group(1)) sp_version = int(m.group(2)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/manager_42.py new/openSUSE-release-tools-20181025.5558473/manager_42.py --- old/openSUSE-release-tools-20181023.9b1618e/manager_42.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/manager_42.py 2018-10-25 20:44:10.000000000 +0200 @@ -268,7 +268,6 @@ return srcmd5, historyrevs[srcmd5] return None, None - # check if we can find the srcmd5 in any of our underlay # projects def check_one_package(self, package): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/metrics.py new/openSUSE-release-tools-20181025.5558473/metrics.py --- old/openSUSE-release-tools-20181023.9b1618e/metrics.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/metrics.py 2018-10-25 20:44:10.000000000 +0200 @@ -331,7 +331,7 @@ # Extract Factory "release schedule" from Tumbleweed snapshot list. command = 'rsync rsync.opensuse.org::opensuse-full/opensuse/tumbleweed/iso/Changes.* | ' \ - 'grep -oP "Changes\.\K\d{5,}"' + 'grep -oP "' + r'Changes\.\K\d{5,}' + '"' snapshots = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).communicate()[0] for date in snapshots.split(): release_schedule[datetime.strptime(date, '%Y%m%d')] = 'Snapshot {}'.format(date) @@ -547,9 +547,9 @@ if args.wipe_cache: Cache.delete_all() if args.heavy_cache: - Cache.PATTERNS['/search/request'] = sys.maxint - Cache.PATTERNS['/source/[^/]+/{}/_history'.format(package)] = sys.maxint - Cache.PATTERNS['/source/[^/]+/{}/[^/]+\?rev=.*'.format(package)] = sys.maxint + Cache.PATTERNS[r'/search/request'] = sys.maxint + Cache.PATTERNS[r'/source/[^/]+/{}/_history'.format(package)] = sys.maxint + Cache.PATTERNS[r'/source/[^/]+/{}/[^/]+\?rev=.*'.format(package)] = sys.maxint Cache.init('metrics') Config(apiurl, args.project) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/osclib/cache.py new/openSUSE-release-tools-20181025.5558473/osclib/cache.py --- old/openSUSE-release-tools-20181023.9b1618e/osclib/cache.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/osclib/cache.py 2018-10-25 20:44:10.000000000 +0200 @@ -71,32 +71,32 @@ TTL_SHORT = 5 * 60 TTL_DUPLICATE = 3 PATTERNS = { - '/build/[^/]+/_result': TTL_DUPLICATE, + r'/build/[^/]+/_result': TTL_DUPLICATE, # For cycles when run via repo-checker cache non-stagings. - '/build/(?:[^/](?!:Staging:))+/[^/]+/[^/]+/_builddepinfo$': TTL_MEDIUM, + r'/build/(?:[^/](?!:Staging:))+/[^/]+/[^/]+/_builddepinfo$': TTL_MEDIUM, # Group members cannot be guaranteed, but change rarely. - '/group/[^/?]+$': TTL_SHORT, + r'/group/[^/?]+$': TTL_SHORT, # Clear target project cache upon request acceptance. - '/request/(\d+)\?.*newstate=accepted': TTL_DUPLICATE, - "/search/package\?match=\[@project='([^']+)'\]$": TTL_LONG, + r'/request/(\d+)\?.*newstate=accepted': TTL_DUPLICATE, + r"/search/package\?match=\[@project='([^']+)'\]$": TTL_LONG, # Potentially expire the latest_updated since it will be the only way to # tell after an adi staging is removed. For now just cache the calls # that occur in rapid succession. - "/search/project/id\?match=starts-with\(@name,'([^']+)\:'\)$": TTL_DUPLICATE, + r"/search/project/id\?match=starts-with\(@name,'([^']+)\:'\)$": TTL_DUPLICATE, # List of all projects may change, but relevant ones rarely. - '/source$': TTL_LONG, + r'/source$': TTL_LONG, # Sources will be expired with project, could be done on package level. - '/source/([^/?]+)(?:\?.*)?$': TTL_LONG, + r'/source/([^/?]+)(?:\?.*)?$': TTL_LONG, # Project will be marked changed when packages are added/removed. - '/source/([^/]+)/_meta$': TTL_LONG, - '/source/([^/]+)/(?:[^/]+)/(?:_meta|_link)$': TTL_LONG, - '/source/([^/]+)/dashboard/[^/]+': TTL_LONG, - '/source/([^/]+)/_attribute/[^/]+': TTL_MEDIUM, + r'/source/([^/]+)/_meta$': TTL_LONG, + r'/source/([^/]+)/(?:[^/]+)/(?:_meta|_link)$': TTL_LONG, + r'/source/([^/]+)/dashboard/[^/]+': TTL_LONG, + r'/source/([^/]+)/_attribute/[^/]+': TTL_MEDIUM, # Handles clearing local cache on package deletes. Lots of queries like # updating project info, comment, and package additions. - '/source/([^/]+)/(?:[^/?]+)(?:\?[^/]+)?$': TTL_LONG, + r'/source/([^/]+)/(?:[^/?]+)(?:\?[^/]+)?$': TTL_LONG, # Presumably users are not interweaving in short windows. - '/statistics/latest_updated': TTL_SHORT, + r'/statistics/latest_updated': TTL_SHORT, } last_updated = {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/osclib/core.py new/openSUSE-release-tools-20181025.5558473/osclib/core.py --- old/openSUSE-release-tools-20181023.9b1618e/osclib/core.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/osclib/core.py 2018-10-25 20:44:10.000000000 +0200 @@ -28,7 +28,7 @@ from osclib.memoize import memoize BINARY_REGEX = r'(?:.*::)?(?P<filename>(?P<name>.*)-(?P<version>[^-]+)-(?P<release>[^-]+)\.(?P<arch>[^-\.]+))' -RPM_REGEX = BINARY_REGEX + '\.rpm' +RPM_REGEX = BINARY_REGEX + r'\.rpm' BinaryParsed = namedtuple('BinaryParsed', ('package', 'filename', 'name', 'arch')) @memoize(session=True) @@ -392,31 +392,34 @@ from osclib.util import sha1_short return sha1_short(http_GET(url).read()) -def repository_state(apiurl, project, repository): +def repository_state(apiurl, project, repository, archs=[]): + if not len(archs): + archs = target_archs(apiurl, project, repository) + # Unfortunately, the state hash reflects the published state and not the # binaries published in repository. As such request binary list and hash. combined_state = [] - for arch in target_archs(apiurl, project, repository): + for arch in archs: combined_state.append(repository_arch_state(apiurl, project, repository, arch)) from osclib.util import sha1_short return sha1_short(combined_state) -def repositories_states(apiurl, repository_pairs): +def repositories_states(apiurl, repository_pairs, archs=[]): states = [] for project, repository in repository_pairs: - states.append(repository_state(apiurl, project, repository)) + states.append(repository_state(apiurl, project, repository, archs)) return states -def repository_published(apiurl, project, repository): +def repository_published(apiurl, project, repository, archs=[]): root = ETL.fromstringlist(show_results_meta( - apiurl, project, multibuild=True, repository=[repository])) + apiurl, project, multibuild=True, repository=[repository], arch=archs)) return not len(root.xpath('result[@state!="published" and @state!="unpublished"]')) -def repositories_published(apiurl, repository_pairs): +def repositories_published(apiurl, repository_pairs, archs=[]): for project, repository in repository_pairs: - if not repository_published(apiurl, project, repository): + if not repository_published(apiurl, project, repository, archs): return (project, repository) return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/osclib/stagingapi.py new/openSUSE-release-tools-20181025.5558473/osclib/stagingapi.py --- old/openSUSE-release-tools-20181023.9b1618e/osclib/stagingapi.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/osclib/stagingapi.py 2018-10-25 20:44:10.000000000 +0200 @@ -265,7 +265,7 @@ return package_info def extract_specfile_short(self, filelist): - packages = [spec[:-5] for spec in filelist if re.search('\.spec$', spec)] + packages = [spec[:-5] for spec in filelist if re.search(r'\.spec$', spec)] return packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/pkglistgen.py new/openSUSE-release-tools-20181025.5558473/pkglistgen.py --- old/openSUSE-release-tools-20181023.9b1618e/pkglistgen.py 2018-10-23 06:38:17.000000000 +0200 +++ new/openSUSE-release-tools-20181025.5558473/pkglistgen.py 2018-10-25 20:44:10.000000000 +0200 @@ -487,7 +487,7 @@ # only comment first time comment = None x = ET.tostring(x, pretty_print=True) - x = re.sub('\s* Reply