Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2022-03-06 18:15:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Sun Mar 6 18:15:47 2022 rev:390 rq:959618 version:20220305.b51fd11b
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2022-03-05 14:45:20.839730145 +0100
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1958/openSUSE-release-tools.changes
2022-03-06 18:16:02.587828179 +0100
@@ -1,0 +2,8 @@
+Sat Mar 05 14:21:38 UTC 2022 - [email protected]
+
+- Update to version 20220305.b51fd11b:
+ * gocd: Fix rare failure to push to notifications repo
+ * pkglistgen: Only solve one project at a time
+ * Installcheck: Ignore requires to packages with delete requests
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20220304.1479a628.obscpio
New:
----
openSUSE-release-tools-20220305.b51fd11b.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.4ghEip/_old 2022-03-06 18:16:04.667828461 +0100
+++ /var/tmp/diff_new_pack.4ghEip/_new 2022-03-06 18:16:04.675828462 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20220304.1479a628
+Version: 20220305.b51fd11b
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.4ghEip/_old 2022-03-06 18:16:04.735828470 +0100
+++ /var/tmp/diff_new_pack.4ghEip/_new 2022-03-06 18:16:04.739828470 +0100
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">e3f0a13b96dd1a69f70b7fb5884176b3bf142646</param>
+ <param
name="changesrevision">b51fd11be1a2f0dfc9dbaaa55bbb52e26b59835a</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20220304.1479a628.obscpio ->
openSUSE-release-tools-20220305.b51fd11b.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220304.1479a628/gocd/notify-obs_rsync.py
new/openSUSE-release-tools-20220305.b51fd11b/gocd/notify-obs_rsync.py
--- old/openSUSE-release-tools-20220304.1479a628/gocd/notify-obs_rsync.py
2022-03-04 14:18:20.000000000 +0100
+++ new/openSUSE-release-tools-20220305.b51fd11b/gocd/notify-obs_rsync.py
2022-03-05 15:21:03.000000000 +0100
@@ -58,6 +58,11 @@
openqa = OpenQA_Client(server=args.openqa)
+ # make sure we avoid a race between gocd polling the notifications repo and
+ # scheduling a notify job because of other changes. In that case gocd
schedules
+ # a new job on outdated notifications repo and we can't push
+ subprocess.run(f'cd {args.to} && git pull')
+
interesting_repos = dict()
list = openqa.openqa_request('GET', 'obs_rsync')
for repopair in list:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml
new/openSUSE-release-tools-20220305.b51fd11b/gocd/pkglistgen.opensuse.gocd.yaml
---
old/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml
2022-03-04 14:18:20.000000000 +0100
+++
new/openSUSE-release-tools-20220305.b51fd11b/gocd/pkglistgen.opensuse.gocd.yaml
2022-03-05 15:21:03.000000000 +0100
@@ -23,13 +23,13 @@
- script: |
python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory -s target --only-release-packages
python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory -s target
- openSUSE_Factory_rings:
+ openSUSE_Factory_ring1:
resources:
- repo-checker
tasks:
- script: |
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory -s rings --only-release-packages
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory -s rings
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory -s ring1 --only-release-packages
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory -s ring1
openSUSE_Factory_ARM_target:
resources:
- repo-checker
@@ -37,13 +37,13 @@
- script: |
python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:ARM -s target --only-release-packages
python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:ARM -s target
- openSUSE_Factory_ARM_rings:
+ openSUSE_Factory_ARM_ring1:
resources:
- repo-checker
tasks:
- script: |
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:ARM -s rings --only-release-packages
- python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:ARM -s rings
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:ARM -s ring1 --only-release-packages
+ python3 -u ./pkglistgen.py -d -A https://api.opensuse.org
update_and_solve -p openSUSE:Factory:ARM -s ring1
openSUSE_Factory_PowerPC:
resources:
- repo-checker
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml.erb
new/openSUSE-release-tools-20220305.b51fd11b/gocd/pkglistgen.opensuse.gocd.yaml.erb
---
old/openSUSE-release-tools-20220304.1479a628/gocd/pkglistgen.opensuse.gocd.yaml.erb
2022-03-04 14:18:20.000000000 +0100
+++
new/openSUSE-release-tools-20220305.b51fd11b/gocd/pkglistgen.opensuse.gocd.yaml.erb
2022-03-05 15:21:03.000000000 +0100
@@ -16,7 +16,7 @@
approval:
type: manual
jobs:
-<% ['openSUSE:Factory/target', 'openSUSE:Factory/rings',
'openSUSE:Factory:ARM/target', 'openSUSE:Factory:ARM/rings',
'openSUSE:Factory:PowerPC', 'openSUSE:Factory:zSystems',
'openSUSE:Factory:RISCV'].each do |project|
+<% ['openSUSE:Factory/target', 'openSUSE:Factory/ring1',
'openSUSE:Factory:ARM/target', 'openSUSE:Factory:ARM/ring1',
'openSUSE:Factory:PowerPC', 'openSUSE:Factory:zSystems',
'openSUSE:Factory:RISCV'].each do |project|
project=project.split('/')
name=project[0].gsub(':', '_')
if project.size > 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220304.1479a628/pkglistgen/cli.py
new/openSUSE-release-tools-20220305.b51fd11b/pkglistgen/cli.py
--- old/openSUSE-release-tools-20220304.1479a628/pkglistgen/cli.py
2022-03-04 14:18:20.000000000 +0100
+++ new/openSUSE-release-tools-20220305.b51fd11b/pkglistgen/cli.py
2022-03-05 15:21:03.000000000 +0100
@@ -7,18 +7,17 @@
import re
import ToolBase
-import traceback
import logging
from osc import conf
from osclib.conf import Config
from osclib.stagingapi import StagingAPI
-from pkglistgen.tool import PkgListGen
+from pkglistgen.tool import PkgListGen, MismatchedRepoException
from pkglistgen.update_repo_handler import update_project
class CommandLineInterface(ToolBase.CommandLineInterface):
- SCOPES = ['target', 'rings', 'staging']
+ SCOPES = ['target', 'ring1']
def __init__(self, *args, **kwargs):
ToolBase.CommandLineInterface.__init__(self, args, kwargs)
@@ -45,7 +44,7 @@
@cmdln.option('-f', '--force', action='store_true', help='continue even if
build is in progress')
@cmdln.option('-p', '--project', help='target project')
- @cmdln.option('-s', '--scope', action='append', help='scope on which to
operate ({}, staging:$letter)'.format(', '.join(SCOPES)))
+ @cmdln.option('-s', '--scope', help='scope on which to operate ({},
staging:$letter)'.format(', '.join(SCOPES)))
@cmdln.option('--no-checkout', action='store_true', help='reuse checkout
in cache')
@cmdln.option('--stop-after-solve', action='store_true', help='only create
group files')
@cmdln.option('--staging', help='Only solve that one staging')
@@ -57,9 +56,10 @@
${cmd_option_list}
"""
+ print(opts.scope)
if opts.staging:
match = re.match('(.*):Staging:(.*)', opts.staging)
- opts.scope = ['staging:' + match.group(2)]
+ opts.scope = 'staging:' + match.group(2)
if opts.project:
raise ValueError('--staging and --project conflict')
opts.project = match.group(1)
@@ -93,34 +93,22 @@
try:
self.tool.reset()
self.tool.dry_run = self.options.dry
- if self.tool.update_and_solve_target(api, target_project,
target_config, main_repo,
- project=project,
scope=scope, force=opts.force,
-
no_checkout=opts.no_checkout,
-
only_release_packages=opts.only_release_packages,
-
stop_after_solve=opts.stop_after_solve):
- self.error_occured = True
- except Exception:
- # Print exception, but continue to prevent problems effecting
one
- # project from killing the whole process. Downside being a
common
- # error will be duplicated for each project. Common exceptions
could
- # be excluded if a set list is determined, but that is likely
not
- # practical.
- traceback.print_exc()
- self.error_occured = True
-
- for scope in opts.scope:
- if scope.startswith('staging:'):
- letter = re.match('staging:(.*)', scope).group(1)
- solve_project(api.prj_from_short(letter), 'staging')
- elif scope == 'target':
- solve_project(target_project, scope)
- elif scope == 'rings':
- solve_project(api.rings[1], scope)
- elif scope == 'staging':
- letters = api.get_staging_projects_short()
- for letter in letters:
- solve_project(api.prj_from_short(letter), scope)
- else:
- raise ValueError('scope "{}" must be one of: {}'.format(scope,
', '.join(self.SCOPES)))
-
- return self.error_occured
+ return self.tool.update_and_solve_target(api, target_project,
target_config, main_repo,
+ project=project,
scope=scope, force=opts.force,
+
no_checkout=opts.no_checkout,
+
only_release_packages=opts.only_release_packages,
+
stop_after_solve=opts.stop_after_solve)
+ except MismatchedRepoException:
+ logging.error("Failed to create weakremovers.inc due to
mismatch in repos - project most likey started building again.")
+ return True
+
+ scope = opts.scope
+ if scope.startswith('staging:'):
+ letter = re.match('staging:(.*)', scope).group(1)
+ return solve_project(api.prj_from_short(letter), 'staging')
+ elif scope == 'target':
+ return solve_project(target_project, scope)
+ elif scope == 'ring1':
+ return solve_project(api.rings[1], scope)
+ else:
+ raise ValueError('scope "{}" must be one of: {}'.format(scope, ',
'.join(self.SCOPES)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220304.1479a628/staging-installcheck.py
new/openSUSE-release-tools-20220305.b51fd11b/staging-installcheck.py
--- old/openSUSE-release-tools-20220304.1479a628/staging-installcheck.py
2022-03-04 14:18:20.000000000 +0100
+++ new/openSUSE-release-tools-20220305.b51fd11b/staging-installcheck.py
2022-03-05 15:21:03.000000000 +0100
@@ -70,17 +70,23 @@
comments.append('Error: missing alternative provides for
{}'.format(provide))
return False
- def check_delete_request(self, req, to_ignore, comments):
+ def check_delete_request(self, req, to_ignore, to_delete, comments):
package = req.get('package')
if package in to_ignore or self.ignore_deletes:
self.logger.info('Delete request for package {}
ignored'.format(package))
return True
- built_binaries = set([])
+ built_binaries = set()
file_infos = []
for fileinfo in fileinfo_ext_all(self.api.apiurl, self.api.project,
self.api.cmain_repo, 'x86_64', package):
built_binaries.add(fileinfo.find('name').text)
file_infos.append(fileinfo)
+ # extend the others - this asks for a refactoring, but we don't handle
tons of delete requests often
+ for ptd in to_delete:
+ if package == ptd:
+ continue
+ for fileinfo in fileinfo_ext_all(self.api.apiurl,
self.api.project, self.api.cmain_repo, 'x86_64', ptd):
+ built_binaries.add(fileinfo.find('name').text)
result = True
for fileinfo in file_infos:
@@ -90,10 +96,10 @@
what_depends_on = depends_on(api.apiurl, api.project, api.cmain_repo,
[package], True)
- # filter out dependency on package itself (happens with eg
- # java bootstrapping itself with previous build)
- if package in what_depends_on:
- what_depends_on.remove(package)
+ # filter out packages to be deleted
+ for package in to_delete:
+ if package in what_depends_on:
+ what_depends_on.remove(package)
if len(what_depends_on):
comments.append('{} is still a build requirement of:\n\n-
{}'.format(
@@ -165,9 +171,15 @@
self.logger.error('no project status for {}'.format(project))
return False
+ # collect packages to be deleted
+ to_delete = set()
+ for req in status.findall('staged_requests/request'):
+ if req.get('type') == 'delete':
+ to_delete.add(req.get('package'))
+
for req in status.findall('staged_requests/request'):
if req.get('type') == 'delete':
- result = result and self.check_delete_request(req, to_ignore,
result_comment)
+ result = result and self.check_delete_request(req, to_ignore,
to_delete, result_comment)
for arch in architectures:
# hit the first repository in the target project (if existant)
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.4ghEip/_old 2022-03-06 18:16:05.427828564 +0100
+++ /var/tmp/diff_new_pack.4ghEip/_new 2022-03-06 18:16:05.431828565 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20220304.1479a628
-mtime: 1646399900
-commit: 1479a628529da330c8b79c3c72580caa185e4bc9
+version: 20220305.b51fd11b
+mtime: 1646490063
+commit: b51fd11be1a2f0dfc9dbaaa55bbb52e26b59835a