Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2019-07-30 12:38:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "openSUSE-release-tools" Tue Jul 30 12:38:20 2019 rev:197 rq:719658 version:20190729.b3ec5fd8 Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2019-07-29 17:31:27.350167588 +0200 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4126/openSUSE-release-tools.changes 2019-07-30 12:38:24.502941964 +0200 @@ -1,0 +2,24 @@ +Mon Jul 29 16:28:59 UTC 2019 - opensuse-releaseteam@opensuse.org + +- Update to version 20190729.b3ec5fd8: + * Filter out release numbers from problem output + +------------------------------------------------------------------- +Mon Jul 29 14:11:54 UTC 2019 - opensuse-releaseteam@opensuse.org + +- Update to version 20190729.e13c08e3: + * Have the storage commit include the details what is was for + +------------------------------------------------------------------- +Mon Jul 29 13:51:37 UTC 2019 - opensuse-releaseteam@opensuse.org + +- Update to version 20190729.36a995fe: + * Combine project_only and rebuild into check + +------------------------------------------------------------------- +Mon Jul 29 09:44:30 UTC 2019 - opensuse-releaseteam@opensuse.org + +- Update to version 20190729.9f0aee45: + * Remove project_only for Factory and update projects + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20190729.70133114.obscpio New: ---- openSUSE-release-tools-20190729.b3ec5fd8.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.1jRb2a/_old 2019-07-30 12:38:25.514941836 +0200 +++ /var/tmp/diff_new_pack.1jRb2a/_new 2019-07-30 12:38:25.514941836 +0200 @@ -20,7 +20,7 @@ %define source_dir openSUSE-release-tools %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20190729.70133114 +Version: 20190729.b3ec5fd8 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.1jRb2a/_old 2019-07-30 12:38:25.554941831 +0200 +++ /var/tmp/diff_new_pack.1jRb2a/_new 2019-07-30 12:38:25.554941831 +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">071bbf8d66c4120446ca65ed41ba9ae4d811adc1</param> + <param name="changesrevision">350027d8f3ac609de25317d9041374e5c7ece326</param> </service> </servicedata> ++++++ openSUSE-release-tools-20190729.70133114.obscpio -> openSUSE-release-tools-20190729.b3ec5fd8.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/gocd/checkers.suse.gocd.yaml new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/checkers.suse.gocd.yaml --- old/openSUSE-release-tools-20190729.70133114/gocd/checkers.suse.gocd.yaml 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/checkers.suse.gocd.yaml 2019-07-29 18:26:30.000000000 +0200 @@ -41,13 +41,13 @@ resources: - repo-checker tasks: - - script: ./project-installcheck.py -A https://api.suse.de --debug project_only SUSE:SLE-15-SP2:GA + - script: ./project-installcheck.py -A https://api.suse.de --debug check --store SUSE:SLE-15-SP2:GA:Staging/dashboard --no-rebuild SUSE:SLE-15-SP2:GA SLE_12_SP5: timeout: 0 resources: - repo-checker tasks: - - script: ./project-installcheck.py -A https://api.suse.de --debug project_only SUSE:SLE-12-SP5:GA + - script: ./project-installcheck.py -A https://api.suse.de --debug check --store SUSE:SLE-12-SP5:GA:Staging/dashboard --no-rebuild SUSE:SLE-12-SP5:GA SLE-SP2.Manager42: group: SLE.Checkers lock_behavior: unlockWhenFinished diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/gocd/checkers.suse.gocd.yaml.erb new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/checkers.suse.gocd.yaml.erb --- old/openSUSE-release-tools-20190729.70133114/gocd/checkers.suse.gocd.yaml.erb 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/checkers.suse.gocd.yaml.erb 2019-07-29 18:26:30.000000000 +0200 @@ -41,13 +41,13 @@ resources: - repo-checker tasks: - - script: ./project-installcheck.py -A https://api.suse.de --debug project_only SUSE:SLE-15-SP2:GA + - script: ./project-installcheck.py -A https://api.suse.de --debug check --store SUSE:SLE-15-SP2:GA:Staging/dashboard --no-rebuild SUSE:SLE-15-SP2:GA SLE_12_SP5: timeout: 0 resources: - repo-checker tasks: - - script: ./project-installcheck.py -A https://api.suse.de --debug project_only SUSE:SLE-12-SP5:GA + - script: ./project-installcheck.py -A https://api.suse.de --debug check --store SUSE:SLE-12-SP5:GA:Staging/dashboard --no-rebuild SUSE:SLE-12-SP5:GA SLE-SP2.Manager42: group: SLE.Checkers lock_behavior: unlockWhenFinished diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/gocd/rebuild-trigger.gocd.yaml new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/rebuild-trigger.gocd.yaml --- old/openSUSE-release-tools-20190729.70133114/gocd/rebuild-trigger.gocd.yaml 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/rebuild-trigger.gocd.yaml 2019-07-29 18:26:30.000000000 +0200 @@ -1,6 +1,6 @@ format_version: 3 pipelines: - Trigger.Rebuilds: + Trigger.Rebuild.Factory: group: openSUSE.Checkers lock_behavior: unlockWhenFinished environment_variables: @@ -19,22 +19,67 @@ tasks: - script: |- echo "openSUSE:Factory" - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory standard i586 - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory standard x86_64 + ./project-installcheck.py --debug check --store openSUSE:Factory:Staging/dashboard openSUSE:Factory + Trigger.Rebuild.Factory.Power: + group: openSUSE.Checkers + lock_behavior: unlockWhenFinished + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-factory-maintainer + materials: + script: + git: https://github.com/openSUSE/openSUSE-release-tools.git + timer: + spec: 0 0 * ? * * + only_on_changes: false + stages: + - Run: + approval: manual + resources: + - repo-checker + tasks: - script: |- echo "openSUSE:Factory:PowerPC" - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC standard ppc - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC standard ppc64 - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC standard ppc64le + ./project-installcheck.py --debug check --store openSUSE:Factory:Staging/dashboard openSUSE:Factory:PowerPC + Trigger.Rebuild.Leap.152: + group: openSUSE.Checkers + lock_behavior: unlockWhenFinished + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-factory-maintainer + materials: + script: + git: https://github.com/openSUSE/openSUSE-release-tools.git + timer: + spec: 0 0 * ? * * + only_on_changes: false + stages: + - Run: + approval: manual + resources: + - repo-checker + tasks: - script: |- echo "openSUSE Leap 15.2" - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Leap:15.2:Staging/dashboard openSUSE:Leap:15.2 standard i586 - ./project-installcheck.py --osc-debug --debug rebuild --store openSUSE:Leap:15.2:Staging/dashboard openSUSE:Leap:15.2 standard x86_64 + ./project-installcheck.py --debug check --store openSUSE:Leap:15.2:Staging/dashboard openSUSE:Leap:15.2 + Trigger.Rebuild.GNOME: + group: openSUSE.Checkers + lock_behavior: unlockWhenFinished + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-factory-maintainer + materials: + script: + git: https://github.com/openSUSE/openSUSE-release-tools.git + timer: + spec: 0 0 * ? * * + only_on_changes: false + stages: + - Run: + approval: manual + resources: + - repo-checker + tasks: - script: |- echo "GNOME devel projects" - ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Factory openSUSE_Factory i586 - ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Factory openSUSE_Factory x86_64 - ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Factory openSUSE_PPC ppc64le - ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Next openSUSE_Factory i586 - ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Next openSUSE_Factory x86_64 - ./project-installcheck.py --osc-debug --debug rebuild --store home:repo-checker/rebuilds GNOME:Next openSUSE_PPC ppc64le + ./project-installcheck.py --debug check --store home:repo-checker/rebuilds -r openSUSE_Factory GNOME:Factory + ./project-installcheck.py --debug check --store home:repo-checker/rebuilds -r openSUSE_PPC GNOME:Factory + ./project-installcheck.py --debug check --store home:repo-checker/rebuilds -r openSUSE_Factory GNOME:Next + ./project-installcheck.py --debug check --store home:repo-checker/rebuilds -r openSUSE_PPC GNOME:Next diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/gocd/staging.bot.gocd.yaml new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/staging.bot.gocd.yaml --- old/openSUSE-release-tools-20190729.70133114/gocd/staging.bot.gocd.yaml 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/staging.bot.gocd.yaml 2019-07-29 18:26:30.000000000 +0200 @@ -120,43 +120,3 @@ osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.2 repair --cleanup rm -rf $tempdir - Project.Only: - group: openSUSE.Checkers - lock_behavior: unlockWhenFinished - timer: - spec: 0 0 * ? * * - only_on_changes: false - materials: - scripts: - git: https://github.com/openSUSE/openSUSE-release-tools.git - stages: - - Run: - approval: - type: manual - environment_variables: - OSC_CONFIG: /home/go/config/oscrc-repo-checker - jobs: - openSUSE.Factory: - timeout: 0 - resources: - - repo-checker - tasks: - - script: ./project-installcheck.py -A https://api.opensuse.org --debug project_only openSUSE:Factory - openSUSE.Leap.15.0.Update: - timeout: 0 - resources: - - repo-checker - tasks: - - script: ./project-installcheck.py -A https://api.opensuse.org --debug project_only openSUSE:Leap:15.0:Update - openSUSE.Leap.42.3.Update: - timeout: 0 - resources: - - repo-checker - tasks: - - script: ./project-installcheck.py -A https://api.opensuse.org --debug project_only openSUSE:Leap:42.3:Update - openSUSE.Leap.15.2.Update: - timeout: 0 - resources: - - repo-checker - tasks: - - script: ./project-installcheck.py -A https://api.opensuse.org --debug project_only openSUSE:Leap:15.2:Update diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/gocd/staging.bot.gocd.yaml.erb new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/staging.bot.gocd.yaml.erb --- old/openSUSE-release-tools-20190729.70133114/gocd/staging.bot.gocd.yaml.erb 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/gocd/staging.bot.gocd.yaml.erb 2019-07-29 18:26:30.000000000 +0200 @@ -63,27 +63,3 @@ rm -rf $tempdir <% end -%> - Project.Only: - group: openSUSE.Checkers - lock_behavior: unlockWhenFinished - timer: - spec: 0 0 * ? * * - only_on_changes: false - materials: - scripts: - git: https://github.com/openSUSE/openSUSE-release-tools.git - stages: - - Run: - approval: - type: manual - environment_variables: - OSC_CONFIG: /home/go/config/oscrc-repo-checker - jobs: -<% %w(openSUSE:Factory openSUSE:Leap:15.0:Update openSUSE:Leap:42.3:Update openSUSE:Leap:15.2:Update).each do |project| -%> - <%= project.gsub(':', '.') %>: - timeout: 0 - resources: - - repo-checker - tasks: - - script: ./project-installcheck.py -A https://api.opensuse.org --debug project_only <%= project %> -<% end -%> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/osclib/repochecks.py new/openSUSE-release-tools-20190729.b3ec5fd8/osclib/repochecks.py --- old/openSUSE-release-tools-20190729.70133114/osclib/repochecks.py 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/osclib/repochecks.py 2019-07-29 18:26:30.000000000 +0200 @@ -81,6 +81,11 @@ if len(output): return output +def filter_release(line): + line = re.sub(r'(package [^ ]*\-[^-]*)\-[^-]*(\.\w+) ', r'\1\2 ', line) + line = re.sub(r'(needed by [^ ]*\-[^-]*)\-[^-]*(\.\w+)$', r'\1\2', line) + line = re.sub(r'(provided by [^ ]*\-[^-]*)\-[^-]*(\.\w+)$', r'\1\2', line) + return line def parsed_installcheck(pfile, arch, target_packages, whitelist): reported_problems = dict() @@ -109,7 +114,7 @@ in_problem = True continue if in_problem: - reported_problems[package]['output'].append(line[2:]) + reported_problems[package]['output'].append(filter_release(line[2:])) return reported_problems diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190729.70133114/project-installcheck.py new/openSUSE-release-tools-20190729.b3ec5fd8/project-installcheck.py --- old/openSUSE-release-tools-20190729.70133114/project-installcheck.py 2019-07-29 10:19:25.000000000 +0200 +++ new/openSUSE-release-tools-20190729.b3ec5fd8/project-installcheck.py 2019-07-29 18:26:30.000000000 +0200 @@ -30,32 +30,28 @@ self.logger = logging.getLogger('RepoChecker') self.store_project = None self.store_package = None + self.rebuild = None def parse_store(self, project_package): if project_package: self.store_project, self.store_package = project_package.split('/') - def project_only(self, project): - repository = self.project_repository(project) + def check(self, project, repository): + if not repository: + repository = self.project_repository(project) if not repository: self.logger.error('a repository must be specified via OSRT:Config main-repo for {}'.format(project)) return config = Config.get(self.apiurl, project) - arch_whitelist = config.get('repo_checker-arch-whitelist') - - repository_pairs = repository_path_expand(self.apiurl, project, repository) - self.repository_check(repository_pairs, arch_whitelist=arch_whitelist) - def target_archs(self, project, repository, arch_whitelist=None): archs = target_archs(self.apiurl, project, repository) + if not len(archs): + self.logger.debug('{} has no relevant architectures'.format(project)) + return None - # Check for arch whitelist and use intersection. - if arch_whitelist: - archs = list(set(arch_whitelist.split(' ')).intersection(set(archs))) - - # Trick to prioritize x86_64. - return sorted(archs, reverse=True) + for arch in archs: + self.check_pra(project, repository, arch) def project_pseudometa_file_name(self, project, repository): filename = 'repo_checker' @@ -66,40 +62,8 @@ return filename - def repository_check(self, repository_pairs, arch_whitelist=None): - project, repository = repository_pairs[0] - self.logger.info('checking {}/{}@[{}]'.format( - project, repository, len(repository_pairs))) - - archs = self.target_archs(project, repository, arch_whitelist) - if not len(archs): - self.logger.debug('{} has no relevant architectures'.format(project)) - return None - - result = True - comment = [] - for arch in archs: - directories = [] - for pair_project, pair_repository in repository_pairs: - directories.append(mirror(self.apiurl, pair_project, pair_repository, arch)) - - parts = installcheck(directories, arch, [], []) - if len(parts): - comment.append('## {}/{}\n'.format(repository_pairs[0][1], arch)) - comment.extend(parts) - - text = '\n'.join(comment).strip() - if not self.dryrun: - filename = self.project_pseudometa_file_name(project, repository) - project_pseudometa_file_ensure(self.apiurl, project, filename, text + '\n', 'repo_checker project_only run') - else: - print(text) - - return result - def _split_and_filter(self, output): output = output.split("\n") - rebuild_counter_re = re.compile(r'(needed by [^ ]*\-[^-]*)\-[^-]*\.\w+$') for lnr, line in enumerate(output): if line.startswith('FOLLOWUP'): # there can be multiple lines with missing providers @@ -111,7 +75,7 @@ if output[lnr].find('(we have') >= 0: del output[lnr] else: - output[lnr] = rebuild_counter_re.sub(r'\1', output[lnr]) + output[lnr] = output[lnr] return output def project_repository(self, project): @@ -131,12 +95,13 @@ return repository - def store_yaml(self, state): + def store_yaml(self, state, project, repository, arch): state_yaml = yaml.dump(state, default_flow_style=False) + comment = 'Updated rebuild infos for {}/{}/{}'.format(project, repository, arch) source_file_ensure(self.apiurl, self.store_project, self.store_package, - self.store_filename, state_yaml, comment='Updated rebuild infos') + self.store_filename, state_yaml, comment=comment) - def rebuild(self, project, repository, arch): + def check_pra(self, project, repository, arch): config = Config.get(self.apiurl, project) oldstate = None @@ -232,6 +197,8 @@ del oldstate['check'][source] packages = config.get('rebuildpacs-leafs', '').split() + if not self.rebuild: # ignore in this case + packages = [] # first round: collect all infos from obs infos = dict() @@ -270,20 +237,21 @@ 'rebuild': str(datetime.datetime.now())} if self.dryrun: - self.logger.info("To rebuild: %s", ' '.join(rebuilds)) + if self.rebuild: + self.logger.info("To rebuild: %s", ' '.join(rebuilds)) return - if not len(rebuilds): + if not self.rebuild or not len(rebuilds): self.logger.debug("Nothing to rebuild") # in case we do rebuild, wait for it to succeed before saving - self.store_yaml(oldstate) + self.store_yaml(oldstate, project, repository, arch) return query = {'cmd': 'rebuild', 'repository': repository, 'arch': arch, 'package': rebuilds} url = makeurl(self.apiurl, ['build', project], urlencode(query, doseq=True)) http_POST(url) - self.store_yaml(oldstate) + self.store_yaml(oldstate, project, repository, arch) def check_leaf_package(self, project, repository, arch, package): url = makeurl(self.apiurl, ['build', project, repository, arch, package, '_buildinfo']) @@ -308,25 +276,18 @@ return RepoChecker() @cmdln.option('--store', help='Project/Package to store the rebuild infos in') - def do_rebuild(self, subcmd, opts, project, repository, arch): + @cmdln.option('-r', '--repo', dest='repo', help='Repository to check') + @cmdln.option('--no-rebuild', dest='rebuild', action='store_false', help='Only track issues, do not rebuild') + def do_check(self, subcmd, opts, project): """${cmd_name}: Rebuild packages in rebuild=local projects ${cmd_usage} ${cmd_option_list} """ + self.tool.rebuild = opts.rebuild self.tool.parse_store(opts.store) self.tool.apiurl = conf.config['apiurl'] - self.tool.rebuild(project, repository, arch) - - def do_project_only(self, subcmd, opts, project): - """${cmd_name}: Update repository repo of a project - - ${cmd_usage} - ${cmd_option_list} - """ - self.tool.apiurl = conf.config['apiurl'] - self.tool.project_only(project) - + self.tool.check(project, opts.repo) if __name__ == '__main__': app = CommandLineInterface() ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.1jRb2a/_old 2019-07-30 12:38:26.042941769 +0200 +++ /var/tmp/diff_new_pack.1jRb2a/_new 2019-07-30 12:38:26.046941769 +0200 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20190729.70133114 -mtime: 1564388365 -commit: 701331142b98affdd7eeda304ef8a6b7d8596b2a +version: 20190729.b3ec5fd8 +mtime: 1564417590 +commit: b3ec5fd88f7ac07a41af5242721771cb278cc3e4