Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2017-11-03 16:26:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools" Fri Nov 3 16:26:10 2017 rev:16 rq:538263 version:20171102.0a45aba Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2017-11-01 11:10:22.832146602 +0100 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2017-11-03 16:27:32.662327227 +0100 @@ -1,0 +2,22 @@ +Thu Nov 02 07:03:40 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171102.0a45aba: + * accept_command: remove the ring package if it is 2nd specfile is removed + * accept_command: force to accept the staging if --force parameter is given + +------------------------------------------------------------------- +Wed Nov 01 01:07:58 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171031.d8cd193: + * systemd/devel-list: allow three retry attempts to handle regular OBS crash. + +------------------------------------------------------------------- +Wed Nov 01 00:40:43 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171031.0e1733f: + * repo_checker: add newline to cycles comment to format properly. + * repo_checker: project_only place dashboard update behind dryrun check. + * repo_checker: project_only ensure project repository is published. + * repo_checker: store and compare build hash to skip more aggressively. + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20171031.c32b59b.obscpio New: ---- openSUSE-release-tools-20171102.0a45aba.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.h5Kb6i/_old 2017-11-03 16:27:38.114128801 +0100 +++ /var/tmp/diff_new_pack.h5Kb6i/_new 2017-11-03 16:27:38.114128801 +0100 @@ -20,7 +20,7 @@ %define source_dir osc-plugin-factory %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20171031.c32b59b +Version: 20171102.0a45aba Release: 0 Summary: Tools to aid in staging and release work for openSUSE/SUSE License: GPL-2.0+ and MIT ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.h5Kb6i/_old 2017-11-03 16:27:38.158127200 +0100 +++ /var/tmp/diff_new_pack.h5Kb6i/_new 2017-11-03 16:27:38.158127200 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/osc-plugin-factory.git</param> - <param name="changesrevision">c32b59bd554556520bdc4334c8cb6dd1b2957a6b</param> + <param name="changesrevision">0a45aba664a73e919c08490b0a8b0e187b0a6a5f</param> </service> </servicedata> ++++++ openSUSE-release-tools-20171031.c32b59b.obscpio -> openSUSE-release-tools-20171102.0a45aba.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171031.c32b59b/osclib/accept_command.py new/openSUSE-release-tools-20171102.0a45aba/osclib/accept_command.py --- old/openSUSE-release-tools-20171031.c32b59b/osclib/accept_command.py 2017-10-31 23:21:12.000000000 +0100 +++ new/openSUSE-release-tools-20171102.0a45aba/osclib/accept_command.py 2017-11-02 07:57:41.000000000 +0100 @@ -138,7 +138,8 @@ change_request_state(self.api.apiurl, str(req['id']), 'accepted', - message='Accept to %s' % self.api.project) + message='Accept to %s' % self.api.project, + force=force) self.create_new_links(self.api.project, req['package'], oldspecs) self.api.accept_status_comment(project, packages) @@ -236,6 +237,11 @@ else: # If the package was there bug could not be delete, raise the error raise + + # Remove package from Rings in case 2nd specfile was removed + if self.api.ring_packages.get(spec[:-5]): + delete_package(self.api.apiurl, self.api.ring_packages.get(spec[:-5]), spec[:-5], force=True, msg="Cleanup package in Rings") + if len(filelist) > 1: # There is more than one .spec file in the package; link package containers as needed origmeta = self.api.load_file_content(project, pkgname, '_meta') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171031.c32b59b/osclib/cache.py new/openSUSE-release-tools-20171102.0a45aba/osclib/cache.py --- old/openSUSE-release-tools-20171031.c32b59b/osclib/cache.py 2017-10-31 23:21:12.000000000 +0100 +++ new/openSUSE-release-tools-20171102.0a45aba/osclib/cache.py 2017-11-02 07:57:41.000000000 +0100 @@ -69,6 +69,7 @@ TTL_SHORT = 5 * 60 TTL_DUPLICATE = 3 PATTERNS = { + '/build/[^/]+/_result': TTL_DUPLICATE, # Group members cannot be guaranteed, but change rarely. '/group/[^/?]+$': TTL_SHORT, # Clear target project cache upon request acceptance. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171031.c32b59b/repo_checker.py new/openSUSE-release-tools-20171102.0a45aba/repo_checker.py --- old/openSUSE-release-tools-20171031.c32b59b/repo_checker.py 2017-10-31 23:21:12.000000000 +0100 +++ new/openSUSE-release-tools-20171102.0a45aba/repo_checker.py 2017-11-02 07:57:41.000000000 +0100 @@ -3,13 +3,16 @@ import cmdln from collections import namedtuple import hashlib +from lxml import etree as ET import os +from osc.core import show_results_meta import pipes import re import subprocess import sys import tempfile +from osclib.comments import CommentAPI from osclib.core import binary_list from osclib.core import depends_on from osclib.core import package_binary_list @@ -41,6 +44,12 @@ # self.staging_config needed by target_archs(). api = self.staging_api(project) + root = ET.fromstringlist(show_results_meta( + self.apiurl, project, multibuild=True, repository=['standard'])) + if len(root.xpath('result[@state!="published"]')): + self.logger.info('{}/standard not published'.format(project)) + return + comment = [] for arch in self.target_archs(project): directory_project = self.mirror(project, arch) @@ -55,7 +64,10 @@ self.result_comment(arch, results, comment) text = '\n'.join(comment).strip() - api.dashboard_content_ensure('repo_checker', text, 'project_only run') + if not self.dryrun: + api.dashboard_content_ensure('repo_checker', text, 'project_only run') + else: + print(text) if post_comments: self.package_comments(project) @@ -89,6 +101,7 @@ # Reset for request batch. self.requests_map = {} self.groups = {} + self.groups_build = {} # Manipulated in ensure_group(). self.group = None @@ -98,6 +111,7 @@ self.package_results = {} # Look for requests of interest and group by staging. + skip_build = set() for request in self.requests: # Only interesting if request is staged. group = request_staged(request) @@ -119,6 +133,30 @@ if request.reqid not in selected: self.logger.debug('{}: inconsistent state'.format(request.reqid)) + if group not in self.groups_build: + # Generate build hash based on hashes from relevant projects. + builds = [] + for staging in api.staging_walk(group): + builds.append(ET.fromstringlist(show_results_meta( + self.apiurl, staging, multibuild=True, repository=['standard'])).get('state')) + builds.append(ET.fromstringlist(show_results_meta( + self.apiurl, api.project, multibuild=True, repository=['standard'])).get('state')) + + # Include meta revision for config changes (like whitelist). + builds.append(str(api.get_prj_meta_revision(group))) + self.groups_build[group] = hashlib.sha1(''.join(builds)).hexdigest()[:7] + + # Determine if build has changed since last comment. + comment_api = CommentAPI(api.apiurl) + comments = comment_api.get_comments(project_name=group) + _, info = comment_api.comment_find(comments, self.bot_name) + if info and self.groups_build[group] == info.get('build'): + skip_build.add(group) + + if group in skip_build: + self.logger.debug('{}: {} build unchanged'.format(request.reqid, group)) + continue + self.requests_map[int(request.reqid)] = group requests = self.groups.get(group, []) @@ -183,15 +221,18 @@ self.group_pass = False self.result_comment(arch, results, comment) + info_extra = {'build': self.groups_build[group]} if not self.group_pass: # Some checks in group did not pass, post comment. self.comment_write(state='seen', result='failed', project=group, - message='\n'.join(comment).strip(), identical=True) + message='\n'.join(comment).strip(), identical=True, + info_extra=info_extra) else: # Post passed comment only if previous failed comment. text = 'Previously reported problems have been resolved.' self.comment_write(state='done', result='passed', project=group, - message=text, identical=True, only_replace=True) + message=text, identical=True, only_replace=True, + info_extra=info_extra) return self.group_pass @@ -374,7 +415,7 @@ if len(comment): # New cycles, post comment. self.logger.info('cycle check: failed') - return CheckResult(False, '\n'.join(comment)) + return CheckResult(False, '\n'.join(comment) + '\n') self.logger.info('cycle check: passed') return CheckResult(True, None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171031.c32b59b/systemd/osrt-staging-bot-devel-list.service new/openSUSE-release-tools-20171102.0a45aba/systemd/osrt-staging-bot-devel-list.service --- old/openSUSE-release-tools-20171031.c32b59b/systemd/osrt-staging-bot-devel-list.service 2017-10-31 23:21:12.000000000 +0100 +++ new/openSUSE-release-tools-20171102.0a45aba/systemd/osrt-staging-bot-devel-list.service 2017-11-02 07:57:41.000000000 +0100 @@ -7,5 +7,10 @@ SyslogIdentifier=osrt-staging-bot ExecStart=/usr/bin/osrt-devel-project list -w +# API query regularly times out, but will be cached if called again. +Restart=on-failure +StartLimitInterval=1 hour +StartLimitBurst=3 + [Install] WantedBy=multi-user.target ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.h5Kb6i/_old 2017-11-03 16:27:38.734106236 +0100 +++ /var/tmp/diff_new_pack.h5Kb6i/_new 2017-11-03 16:27:38.734106236 +0100 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20171031.c32b59b -mtime: 1509488472 -commit: c32b59bd554556520bdc4334c8cb6dd1b2957a6b +version: 20171102.0a45aba +mtime: 1509605861 +commit: 0a45aba664a73e919c08490b0a8b0e187b0a6a5f