Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2018-07-02 23:32:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 Jul 2 23:32:38 2018 rev:110 rq:619947 version:20180629.4355859
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2018-06-29 22:35:57.042025240 +0200
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes
2018-07-02 23:33:05.981275343 +0200
@@ -1,0 +2,28 @@
+Fri Jun 29 11:15:56 UTC 2018 - [email protected]
+
+- Update to version 20180629.4355859:
+ * No longer have Ring2 and staging :DVD subproject
+
+-------------------------------------------------------------------
+Fri Jun 29 08:39:50 UTC 2018 - [email protected]
+
+- Update to version 20180629.2ed2f4e:
+ * check_source: skip adding reviews for incidents in favor of maintbot.
+ * check_source: replace one action limitation with configurable rule.
+ * check_source: override rename project setting for maintenance_incident.
+ * check_source: rework rename check to allow for suffixed :Update packages.
+ * ReviewBot: provide self.action for direct access in sub-classes.
+ * ReviewBot: check_action_maintenance_incident(): clarify src_package magic.
+ * ReviewBot: downgrade patchinfo message to debug and include for release.
+ * check_maintenance_incidencts: utilize _is_patchinfo().
+ * leaper: adjust for SLE 15SP1 and SLE12SP4
+ * Leaper: adjust for 15.1
+
+-------------------------------------------------------------------
+Fri Jun 29 07:51:48 UTC 2018 - [email protected]
+
+- Update to version 20180629.b29cbe4:
+ * Adjust opensuse-leap-image references for multibuild
+ * Add packages for Leap 15.0 JeOS
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20180628.fdc0978.obscpio
New:
----
openSUSE-release-tools-20180629.4355859.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.FsH4KC/_old 2018-07-02 23:33:06.937274159 +0200
+++ /var/tmp/diff_new_pack.FsH4KC/_new 2018-07-02 23:33:06.937274159 +0200
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20180628.fdc0978
+Version: 20180629.4355859
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.FsH4KC/_old 2018-07-02 23:33:06.965274124 +0200
+++ /var/tmp/diff_new_pack.FsH4KC/_new 2018-07-02 23:33:06.965274124 +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">c565d78c6acee219899b673b6df185cb2a8a4c43</param>
+ <param
name="changesrevision">30c32af1aaa4864a0f21649d22e19fb8f2f6d83a</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20180628.fdc0978.obscpio ->
openSUSE-release-tools-20180629.4355859.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20180628.fdc0978/ReviewBot.py
new/openSUSE-release-tools-20180629.4355859/ReviewBot.py
--- old/openSUSE-release-tools-20180628.fdc0978/ReviewBot.py 2018-06-28
18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/ReviewBot.py 2018-06-29
13:06:29.000000000 +0200
@@ -47,6 +47,38 @@
import urllib2
from itertools import count
+class PackageLookup(object):
+ """ helper class to manage 00Meta/lookup.yml
+ """
+
+ def __init__(self, apiurl = None):
+ self.apiurl = apiurl
+ # dict[project][package]
+ self.lookup = {}
+
+ def get(self, project, package):
+ if not project in self.lookup:
+ self.load(project)
+
+ return self.lookup[project].get(package, None)
+
+ def reset(self):
+ self.lookup = {}
+
+ def load(self, project):
+ fh = self._load_lookup_file(project)
+ self.lookup[project] = yaml.safe_load(fh) if fh else {}
+
+ def _load_lookup_file(self, prj):
+ try:
+ return osc.core.http_GET(osc.core.makeurl(self.apiurl,
+ ['source', prj, '00Meta', 'lookup.yml']))
+ except urllib2.HTTPError as e:
+ # in case the project doesn't exist yet (like sle update)
+ if e.code != 404:
+ raise e
+ return None
+
class ReviewBot(object):
"""
@@ -91,6 +123,7 @@
self.comment_handler = False
self.override_allow = True
self.override_group_key =
'{}-override-group'.format(self.bot_name.lower())
+ self.lookup = PackageLookup(self.apiurl)
self.load_config()
@@ -291,7 +324,7 @@
self.review_messages = self.DEFAULT_REVIEW_MESSAGES.copy()
if self.only_one_action and len(req.actions) != 1:
- self.review_messages['declined'] = 'Only one action per request'
+ self.review_messages['declined'] = 'Only one action per request
supported'
return False
if self.comment_handler is not False:
@@ -299,6 +332,9 @@
overall = None
for a in req.actions:
+ # Store in-case sub-classes need direct access to original values.
+ self.action = a
+
fn = 'check_action_%s'%a.type
if not hasattr(self, fn):
fn = 'check_action__default'
@@ -313,21 +349,31 @@
return pkgname == 'patchinfo' or pkgname.startswith('patchinfo.')
def check_action_maintenance_incident(self, req, a):
- dst_package = a.src_package
- # Ignoring patchinfo package for checking
if self._is_patchinfo(a.src_package):
- self.logger.info("package is patchinfo, ignoring")
+ self.logger.debug('ignoring patchinfo action')
return None
- # dirty obs crap
+
+ # Duplicate src_package as tgt_package since prior to assignment to a
+ # specific incident project there is no target package (odd API). After
+ # assignment it is still assumed the target will match the source.
Since
+ # the ultimate goal is the tgt_releaseproject the incident is treated
+ # similar to staging in that the intermediate result is not the final
+ # and thus the true target project (ex. openSUSE:Maintenance) is not
+ # used for check_source_submission().
+ tgt_package = a.src_package
if a.tgt_releaseproject is not None:
- ugly_suffix = '.'+a.tgt_releaseproject.replace(':', '_')
- if dst_package.endswith(ugly_suffix):
- dst_package = dst_package[:-len(ugly_suffix)]
- return self.check_source_submission(a.src_project, a.src_package,
a.src_rev, a.tgt_releaseproject, dst_package)
+ suffix = '.' + a.tgt_releaseproject.replace(':', '_')
+ if tgt_package.endswith(suffix):
+ tgt_package = tgt_package[:-len(suffix)]
+
+ # Note tgt_releaseproject (product) instead of tgt_project
(maintenance).
+ return self.check_source_submission(a.src_project, a.src_package,
a.src_rev,
+ a.tgt_releaseproject, tgt_package)
def check_action_maintenance_release(self, req, a):
pkgname = a.src_package
if self._is_patchinfo(pkgname):
+ self.logger.debug('ignoring patchinfo action')
return None
linkpkg = self._get_linktarget_self(a.src_project, pkgname)
if linkpkg is not None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/check_maintenance_incidents.py
new/openSUSE-release-tools-20180629.4355859/check_maintenance_incidents.py
--- old/openSUSE-release-tools-20180628.fdc0978/check_maintenance_incidents.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/check_maintenance_incidents.py
2018-06-29 13:06:29.000000000 +0200
@@ -88,7 +88,7 @@
(linkprj, linkpkg) = self._get_linktarget(a.src_project, pkgname)
if linkpkg is not None:
pkgname = linkpkg
- if pkgname == 'patchinfo':
+ if self._is_patchinfo(a.src_package):
return None
project = a.tgt_releaseproject
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/check_source.py
new/openSUSE-release-tools-20180629.4355859/check_source.py
--- old/openSUSE-release-tools-20180628.fdc0978/check_source.py 2018-06-28
18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/check_source.py 2018-06-29
13:06:29.000000000 +0200
@@ -27,7 +27,6 @@
ReviewBot.ReviewBot.__init__(self, *args, **kwargs)
# ReviewBot options.
- self.only_one_action = True
self.request_default_return = True
self.maintbot = MaintenanceChecker(*args, **kwargs)
@@ -39,6 +38,7 @@
self.staging_api(project)
config = self.staging_config[project]
+ self.single_action_require =
str2bool(config.get('check-source-single-action-require', 'False'))
self.ignore_devel = not str2bool(config.get('devel-project-enforce',
'False'))
self.in_air_rename_allow =
str2bool(config.get('check-source-in-air-rename-allow', 'False'))
self.add_review_team =
str2bool(config.get('check-source-add-review-team', 'True'))
@@ -46,14 +46,33 @@
self.repo_checker = config.get('repo-checker')
self.devel_whitelist = config.get('devel-whitelist', '').split()
+ if self.action.type == 'maintenance_incident':
+ # The workflow effectively enforces the names to match and the
+ # parent code sets target_package from source_package so this check
+ # becomes useless and awkward to perform.
+ self.in_air_rename_allow = True
+
+ # The target project will be set to product and thus inherit
+ # settings, but override since real target is not product.
+ self.single_action_require = False
+
+ # It might make sense to supersede maintbot, but for now.
+ self.skip_add_reviews = True
+
def check_source_submission(self, source_project, source_package,
source_revision, target_project, target_package):
super(CheckSource, self).check_source_submission(source_project,
source_package, source_revision, target_project, target_package)
self.target_project_config(target_project)
+ if self.single_action_require and len(self.request.actions) != 1:
+ self.review_messages['declined'] = 'Only one action per request
allowed'
+ return False
+
if target_package.startswith('00'):
self.review_messages['accepted'] = 'Skipping all checks for 00*
packages'
return True
+ inair_renamed = target_package != source_package
+
if not self.ignore_devel:
self.logger.info('checking if target package exists and has devel
project')
devel_project, devel_package = devel_project_get(self.apiurl,
target_project, target_package)
@@ -72,6 +91,18 @@
'See
https://en.opensuse.org/openSUSE:How_to_contribute_to_Factory#How_to_request_a_new_devel_project
for details.'
) % (source_project, target_project)
return False
+ else:
+ if source_project.endswith(':Update'):
+ # Allow for submission like:
+ # - source:
openSUSE:Leap:15.0:Update/google-compute-engine.8258
+ # - target: openSUSE:Leap:15.1/google-compute-engine
+ # Note: home:jberry:Update would also be allowed via this
condition,
+ # but that should be handled by leaper and human review.
+ inair_renamed = target_package != source_package.split('.')[0]
+
+ if not self.in_air_rename_allow and inair_renamed:
+ self.review_messages['declined'] = 'Source and target package
names must match'
+ return False
# Checkout and see if renaming package screws up version parsing.
dir = os.path.expanduser('~/co/%s' % self.request.reqid)
@@ -102,11 +133,6 @@
self.review_messages['declined'] = "A package submitted as %s has
to build as 'Name: %s' - found Name '%s'" % (target_package, target_package,
new_info['name'])
return False
- # We want to see the same package name in the devel project as in the
distro; anything else calls for confusion
- if not self.in_air_rename_allow and source_package != target_package:
- self.review_messages['declined'] = "No in-air renames: The package
must be called the same in the devel project as in the target project"
- return False
-
# Run check_source.pl script and interpret output.
source_checker = os.path.join(CheckSource.SCRIPT_PATH,
'check_source.pl')
civs = ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/check_source_in_factory.py
new/openSUSE-release-tools-20180629.4355859/check_source_in_factory.py
--- old/openSUSE-release-tools-20180628.fdc0978/check_source_in_factory.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/check_source_in_factory.py
2018-06-29 13:06:29.000000000 +0200
@@ -45,21 +45,10 @@
def __init__(self, *args, **kwargs):
ReviewBot.ReviewBot.__init__(self, *args, **kwargs)
- self.factory = "openSUSE:Factory"
+ self.factory = [ "openSUSE:Factory" ]
self.review_messages = { 'accepted' : 'ok', 'declined': 'the package
needs to be accepted in Factory first' }
- self.lookup = {}
self.history_limit = 5
- def reset_lookup(self):
- self.lookup = {}
-
- def parse_lookup(self, project):
- self.lookup.update(yaml.safe_load(self._load_lookup_file(project)))
-
- def _load_lookup_file(self, prj):
- return osc.core.http_GET(osc.core.makeurl(self.apiurl,
- ['source', prj, '00Meta', 'lookup.yml']))
-
def check_source_submission(self, src_project, src_package, src_rev,
target_project, target_package):
super(FactorySourceChecker, self).check_source_submission(src_project,
src_package, src_rev, target_project, target_package)
src_srcinfo = self.get_sourceinfo(src_project, src_package, src_rev)
@@ -93,12 +82,14 @@
def _package_get_upstream_projects(self, package):
""" return list of projects where the specified package is supposed to
come
from. Either by lookup table or self.factory """
- projects = self.factory
- if self.lookup and package in self.lookup:
- projects = self.lookup[package]
+ projects = []
+ for prj in self.factory:
+ r = self.lookup.get(prj, package)
+ if r:
+ projects.append(r)
- if isinstance(projects, basestring):
- projects = [projects]
+ if not projects:
+ projects = self.factory
return projects
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/check_tags_in_requests.py
new/openSUSE-release-tools-20180629.4355859/check_tags_in_requests.py
--- old/openSUSE-release-tools-20180628.fdc0978/check_tags_in_requests.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/check_tags_in_requests.py
2018-06-29 13:06:29.000000000 +0200
@@ -54,7 +54,7 @@
def __init__(self, *args, **kwargs):
super(TagChecker, self).__init__(*args, **kwargs)
- self.factory = "openSUSE:Factory"
+ self.factory = [ "openSUSE:Factory" ]
self.review_messages['declined'] = """
(This is a script, so report bugs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20180628.fdc0978/leaper.py
new/openSUSE-release-tools-20180629.4355859/leaper.py
--- old/openSUSE-release-tools-20180628.fdc0978/leaper.py 2018-06-28
18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/leaper.py 2018-06-29
13:06:29.000000000 +0200
@@ -78,14 +78,7 @@
def prepare_review(self):
# update lookup information on every run
- if self.ibs:
- self.factory.parse_lookup('SUSE:SLE-15:GA')
- self.lookup_sle15 = self.factory.lookup.copy()
- return
-
- self.factory.parse_lookup('openSUSE:Leap:15.0')
- self.factory.parse_lookup('openSUSE:Leap:15.0:NonFree')
- self.lookup_150 = self.factory.lookup.copy()
+ self.lookup.reset()
def get_source_packages(self, project, expand=False):
"""Return the list of packages in a project."""
@@ -127,6 +120,9 @@
if origin.startswith('Devel;'):
(dummy, origin, dummy) = origin.split(';')
+ # FIXME: to make the rest of the code easier this should probably check
+ # if the srcmd5 matches the origin project. That way it doesn't really
+ # matter from where something got submitted as long as the sources
match.
return project.startswith(origin)
def check_source_submission(self, src_project, src_package, src_rev,
target_project, target_package):
@@ -141,7 +137,10 @@
src_srcinfo = self.get_sourceinfo(src_project, src_package, src_rev)
package = target_package
- origin = None
+ origin = self.lookup.get(target_project, package)
+ origin_same = True
+ if origin:
+ origin_same = self._check_same_origin(origin, src_project)
if src_srcinfo is None:
# source package does not exist?
@@ -151,63 +150,80 @@
if self.ibs and target_project.startswith('SUSE:SLE'):
- if package in self.lookup_sle15:
- origin = self.lookup_sle15[package]
-
- origin_same = True
- if origin:
- origin_same = self._check_same_origin(origin, src_project)
- self.logger.info("expected origin is '%s' (%s)", origin,
- "unchanged" if origin_same else "changed")
-
+ review_result = None
prj = 'openSUSE.org:openSUSE:Factory'
- # True or None (open request) are acceptable for SLE.
- self.source_in_factory = self._check_factory(package, src_srcinfo,
prj)
- if self.source_in_factory is None:
- self.pending_factory_submission = True
- if self.source_in_factory is not False:
- return self.source_in_factory
-
- # got false. could mean package doesn't exist or no match
if self.is_package_in_project(prj, package):
- self.logger.info('different sources in
{}'.format(self.rdiff_link(src_project, src_package, src_rev, prj, package)))
-
- prj = 'openSUSE.org:openSUSE:Leap:15.0'
- # TODO Ugly save for SLE-15-SP1.
- if False and self.is_package_in_project(prj, package):
- if self._check_factory(package, src_srcinfo, prj) is True:
- self.logger.info('found source match in {}'.format(prj))
+ # True or None (open request) are acceptable for SLE.
+ in_factory = self._check_factory(package, src_srcinfo, prj)
+ if in_factory:
+ review_result = True
+ self.source_in_factory = True
+ elif in_factory is None:
+ self.pending_factory_submission = True
else:
self.logger.info('different sources in
{}'.format(self.rdiff_link(src_project, src_package, src_rev, prj, package)))
+ else:
+ self.logger.info('the package is not in Factory, nor submitted
there')
- devel_project, devel_package = devel_project_get(self.apiurl,
'openSUSE.org:openSUSE:Factory', package)
- if devel_project is not None:
- # specifying devel package is optional
- if devel_package is None:
- devel_package = package
- if self.is_package_in_project(devel_project, devel_package):
- if self._check_matching_srcmd5(devel_project,
devel_package, src_srcinfo.verifymd5) == True:
- self.logger.info('matching sources in
{}/{}'.format(devel_project, devel_package))
- return True
+ if review_result == None:
+ other_projects_to_check = []
+ m = re.match('SUSE:SLE-(\d+)(?:-SP(\d+)):', target_project)
+ if m:
+ sle_version = int(m.group(1))
+ sp_version = int(m.group(2))
+ versions_to_check = []
+ # yeah, too much harcoding here
+ if sle_version == 12:
+ versions_to_check = [ '42.3' ]
+ elif sle_version == 15:
+ versions_to_check = [ '15.%d'%i for i in
range(sp_version+1) ]
else:
- self.logger.info('different sources in
{}'.format(self.rdiff_link(src_project, src_package, src_rev, devel_project,
devel_package)))
- else:
- self.logger.info('no devel project found for
{}/{}'.format('openSUSE.org:openSUSE:Factory', package))
+ self.logger.error("can't handle %d.%d", sle_version,
sp_version)
- #self.logger.info('no matching sources in Factory, Leap:15.0, nor
devel project')
- self.logger.info('no matching sources in Factory, nor devel
project')
+ for version in versions_to_check:
+ leap = 'openSUSE.org:openSUSE:Leap:%s'%(version)
+ other_projects_to_check += [ leap, leap + ':Update',
leap + ':NonFree', leap + ':NonFree:Update' ]
+
+ for prj in other_projects_to_check:
+ if self.is_package_in_project(prj, package):
+ self.logger.info('checking {}'.format(prj))
+ if self._check_factory(package, src_srcinfo, prj) is
True:
+ self.logger.info('found source match in
{}'.format(prj))
+ else:
+ self.logger.info('different sources in
{}'.format(self.rdiff_link(src_project, src_package, src_rev, prj, package)))
+
+ devel_project, devel_package = devel_project_get(self.apiurl,
'openSUSE.org:openSUSE:Factory', package)
+ if devel_project is not None:
+ # specifying devel package is optional
+ if devel_package is None:
+ devel_package = package
+ if self.is_package_in_project(devel_project,
devel_package):
+ if self._check_matching_srcmd5(devel_project,
devel_package, src_srcinfo.verifymd5) == True:
+ self.logger.info('matching sources in
{}/{}'.format(devel_project, devel_package))
+ return True
+ else:
+ self.logger.info('different sources in devel
project {}'.format(self.rdiff_link(src_project, src_package, src_rev,
devel_project, devel_package)))
+ else:
+ self.logger.info('no devel project found for
{}/{}'.format('openSUSE.org:openSUSE:Factory', package))
+
+ self.logger.info('no matching sources found anywhere. Needs a
human to decide whether that is ok. Please provide some justification to help
that person.')
+
+ if not review_result:
+ review_result = origin_same
+ if origin_same:
+ self.logger.info("ok, origin %s unchanged", origin)
+ else:
+ # only log origin state if it's taken into consideration
for the review result
+ self.logger.info("Submitted from a different origin than
expected ('%s')", origin)
- if origin_same is False:
+ if not review_result and self.override_allow:
# Rather than decline, leave review open in-case of change and
# ask release manager for input via override comment.
self.logger.info('Comment `(at){} override accept` to force
accept.'.format(self.review_user))
self.needs_release_manager = True
- return None
+ review_result = None
- return origin_same
-
- if package in self.lookup_150:
- origin = self.lookup_150[package]
+ return review_result
# obviously
if src_project in ('openSUSE:Factory', 'openSUSE:Factory:NonFree'):
@@ -216,9 +232,8 @@
is_fine_if_factory = False
not_in_factory_okish = False
if origin:
- origin_same = self._check_same_origin(origin, src_project)
self.logger.info("expected origin is '%s' (%s)", origin,
- "unchanged" if origin_same else "changed")
+ "unchanged" if origin_same else "changed")
if origin.startswith('Devel;'):
if origin_same == False:
self.logger.debug("not submitted from devel project")
@@ -253,7 +268,7 @@
self.needs_release_manager = True
# fall through to check history and requests
# TODO Ugly save for 15.1 (n-1).
- elif False and origin.startswith('openSUSE:Leap:15.0'):
+ elif origin.startswith('openSUSE:Leap:15.0'):
if self.must_approve_maintenance_updates:
self.needs_release_manager = True
# submitted from :Update
@@ -301,7 +316,7 @@
elif origin.startswith('SUSE:SLE-15'):
if self.must_approve_maintenance_updates:
self.needs_release_manager = True
- for v in ('15.0',):
+ for v in ('15.0', '15.1'):
prj = 'openSUSE:Leap:{}:SLE-workarounds'.format(v)
if self.is_package_in_project( prj, target_package):
self.logger.info("found package in %s", prj)
@@ -350,7 +365,8 @@
# new package submitted from Factory. Check if it was in
# 42.3 before and skip maintainer review if so.
subprj = src_project[len('openSUSE:Factory'):]
- if self.source_in_factory and
target_project.startswith('openSUSE:Leap:15.0') \
+ # disabled for reference. Needed again for 16.0 probably
+ if False and self.source_in_factory and
target_project.startswith('openSUSE:Leap:15.0') \
and self.is_package_in_project('openSUSE:Leap:42.3'+subprj,
package):
self.logger.info('package was in 42.3')
self.do_check_maintainer_review = False
@@ -456,9 +472,9 @@
if self.automatic_submission and creator != bot_name:
self.logger.info('@{}: this request would have been
automatically created by {} after the Factory submission was accepted in order
to eleviate the need to manually create requests for packages sourced from
Factory'.format(creator, bot_name))
elif self.source_in_factory:
- self.logger.info("the submitted sources are in or accepted for
Factory")
+ self.logger.info("perfect. the submitted sources are in or
accepted for Factory")
elif self.source_in_factory == False:
- self.logger.info("the submitted sources are NOT in Factory")
+ self.logger.warn("the submitted sources are NOT in Factory")
if request_ok == False:
self.logger.info("NOTE: if you think the automated review was
wrong here, please talk to the release team before reopening the request")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/osclib/conf.py
new/openSUSE-release-tools-20180629.4355859/osclib/conf.py
--- old/openSUSE-release-tools-20180628.fdc0978/osclib/conf.py 2018-06-28
18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/osclib/conf.py 2018-06-29
13:06:29.000000000 +0200
@@ -38,7 +38,7 @@
'staging': 'openSUSE:%(project)s:Staging',
'staging-group': 'factory-staging',
'staging-archs': 'i586 x86_64',
- 'staging-dvd-archs': 'x86_64',
+ 'staging-dvd-archs': '',
'nocleanup-packages': 'Test-DVD-x86_64 Test-DVD-ppc64le
bootstrap-copy',
'rings': 'openSUSE:%(project)s:Rings',
'nonfree': 'openSUSE:%(project)s:NonFree',
@@ -51,6 +51,7 @@
'main-repo': 'standard',
'download-baseurl': 'http://download.opensuse.org/tumbleweed/',
# check_source.py
+ 'check-source-single-action-require': 'True',
'devel-project-enforce': 'True',
'review-team': 'opensuse-review-team',
'legal-review-group': 'legal-auto',
@@ -65,7 +66,7 @@
'staging': 'openSUSE:%(project)s:Staging',
'staging-group': 'factory-staging',
'staging-archs': 'i586 x86_64',
- 'staging-dvd-archs': 'x86_64',
+ 'staging-dvd-archs': '',
'nocleanup-packages': 'bootstrap-copy 000product 000release-packages',
'rings': 'openSUSE:%(project)s:Rings',
'nonfree': 'openSUSE:%(project)s:NonFree',
@@ -83,6 +84,7 @@
'review-team': 'opensuse-review-team',
'legal-review-group': 'legal-auto',
# check_source.py
+ 'check-source-single-action-require': 'True',
# review-team optionally added by leaper.py.
'repo-checker': 'repo-checker',
'repo_checker-arch-whitelist': 'x86_64',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/osclib/stagingapi.py
new/openSUSE-release-tools-20180629.4355859/osclib/stagingapi.py
--- old/openSUSE-release-tools-20180628.fdc0978/osclib/stagingapi.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/osclib/stagingapi.py
2018-06-29 13:06:29.000000000 +0200
@@ -85,8 +85,7 @@
if self.crings:
self.rings = (
'{}:0-Bootstrap'.format(self.crings),
- '{}:1-MinimalX'.format(self.crings),
- '{}:2-TestDVD'.format(self.crings)
+ '{}:1-MinimalX'.format(self.crings)
)
else:
self.rings = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/staging_templates/create_new_staging
new/openSUSE-release-tools-20180629.4355859/staging_templates/create_new_staging
---
old/openSUSE-release-tools-20180628.fdc0978/staging_templates/create_new_staging
2018-06-28 18:38:22.000000000 +0200
+++
new/openSUSE-release-tools-20180629.4355859/staging_templates/create_new_staging
2018-06-29 13:06:29.000000000 +0200
@@ -19,11 +19,5 @@
osc meta prj "$base:Staging:$letter" -F ${letter}_prj
osc meta prjconf "$base:Staging:$letter" -F ${letter}_prjconf
fi
-if osc meta prj "$base:Staging:$letter:DVD" > /dev/null 2>&1; then
- echo "$base:Staging:$letter:DVD already exists"
-else
- osc meta prj "$base:Staging:$letter:DVD" -F ${letter}_dvd_prj
- osc meta prjconf "$base:Staging:$letter:DVD" -F ${letter}_dvd_prjconf
-fi
echo "done. Don't forget the openQA templates"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/staging_templates/template_dvd_prj
new/openSUSE-release-tools-20180629.4355859/staging_templates/template_dvd_prj
---
old/openSUSE-release-tools-20180628.fdc0978/staging_templates/template_dvd_prj
2018-06-28 18:38:22.000000000 +0200
+++
new/openSUSE-release-tools-20180629.4355859/staging_templates/template_dvd_prj
1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-<project name="@BASE@:Staging:@LETTER@:DVD">
- <title/>
- <description/>
- <link project="@BASE@:Rings:2-TestDVD"/>
- <build>
- <enable/>
- </build>
- <publish>
- <disable/>
- </publish>
- <debuginfo>
- <enable/>
- </debuginfo>
- <repository name="standard" rebuild="direct" linkedbuild="all">
- <path project="@BASE@:Staging:@LETTER@" repository="standard"/>
- <arch>x86_64</arch>
- </repository>
- <repository name="images" rebuild="direct" linkedbuild="all">
- <path project="@BASE@:Staging:@LETTER@:DVD" repository="standard"/>
- <arch>x86_64</arch>
- </repository>
-</project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/staging_templates/template_dvd_prjconf
new/openSUSE-release-tools-20180629.4355859/staging_templates/template_dvd_prjconf
---
old/openSUSE-release-tools-20180628.fdc0978/staging_templates/template_dvd_prjconf
2018-06-28 18:38:22.000000000 +0200
+++
new/openSUSE-release-tools-20180629.4355859/staging_templates/template_dvd_prjconf
1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-Patterntype: rpm-md ymp
-%if "%_repository" == "images"
-Type: kiwi
-Repotype: none
-Patterntype: none
-Prefer: openSUSE-release
-%endif
-
-Ignore: !kiwi:qemu-tools
-Ignore: !kiwi-desc-isoboot-requires:qemu-tools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/tests/api_tests.py
new/openSUSE-release-tools-20180629.4355859/tests/api_tests.py
--- old/openSUSE-release-tools-20180628.fdc0978/tests/api_tests.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/tests/api_tests.py
2018-06-29 13:06:29.000000000 +0200
@@ -62,8 +62,6 @@
'elem-ring-0': 'openSUSE:Factory:Rings:0-Bootstrap',
'elem-ring-1': 'openSUSE:Factory:Rings:0-Bootstrap',
'elem-ring-mini': 'openSUSE:Factory:Rings:0-Bootstrap',
- 'elem-ring-2': 'openSUSE:Factory:Rings:2-TestDVD',
- 'git': 'openSUSE:Factory:Rings:2-TestDVD',
'wine': 'openSUSE:Factory:Rings:1-MinimalX',
}
self.assertEqual(ring_packages, self.api.ring_packages_for_links)
@@ -74,8 +72,6 @@
'elem-ring-0': 'openSUSE:Factory:Rings:0-Bootstrap',
'elem-ring-1': 'openSUSE:Factory:Rings:1-MinimalX',
'elem-ring-mini': 'openSUSE:Factory:Rings:0-Bootstrap',
- 'elem-ring-2': 'openSUSE:Factory:Rings:2-TestDVD',
- 'git': 'openSUSE:Factory:Rings:2-TestDVD',
'wine': 'openSUSE:Factory:Rings:1-MinimalX',
}
self.assertEqual(ring_packages, self.api.ring_packages)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/tests/checktags_tests.py
new/openSUSE-release-tools-20180629.4355859/tests/checktags_tests.py
--- old/openSUSE-release-tools-20180628.fdc0978/tests/checktags_tests.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/tests/checktags_tests.py
2018-06-29 13:06:29.000000000 +0200
@@ -213,6 +213,10 @@
match_querystring=True,
body='<collection matches="0"></collection>')
+ httpretty.register_uri(httpretty.GET,
+ APIURL + "/source/openSUSE:Factory/00Meta/lookup.yml",
+ status = 404)
+
result = {'state_accepted': None}
def change_request(result, method, uri, headers):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/tests/factory_source_tests.py
new/openSUSE-release-tools-20180629.4355859/tests/factory_source_tests.py
--- old/openSUSE-release-tools-20180628.fdc0978/tests/factory_source_tests.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/tests/factory_source_tests.py
2018-06-29 13:06:29.000000000 +0200
@@ -62,6 +62,10 @@
def test_accept_request(self):
httpretty.register_uri(httpretty.GET,
+ rr("/source/openSUSE:Factory/00Meta/lookup.yml"),
+ status = 404)
+
+ httpretty.register_uri(httpretty.GET,
APIURL + "/request/770001",
body = """
<request id="770001" creator="chameleon">
@@ -263,6 +267,10 @@
""")
httpretty.register_uri(httpretty.GET,
+ rr("/source/openSUSE:Factory/00Meta/lookup.yml"),
+ status = 404)
+
+ httpretty.register_uri(httpretty.GET,
rr("/search/request?match=%28state%2F%40name%3D%27new%27+or+state%2F%40name%3D%27review%27%29+and+%28action%2Ftarget%2F%40project%3D%27openSUSE%3AFactory%27+or+submit%2Ftarget%2F%40project%3D%27openSUSE%3AFactory%27+or+action%2Fsource%2F%40project%3D%27openSUSE%3AFactory%27+or+submit%2Fsource%2F%40project%3D%27openSUSE%3AFactory%27%29+and+%28action%2Ftarget%2F%40package%3D%27plan%27+or+submit%2Ftarget%2F%40package%3D%27plan%27+or+action%2Fsource%2F%40package%3D%27plan%27+or+submit%2Fsource%2F%40package%3D%27plan%27%29+and+action%2F%40type%3D%27submit%27"),
match_querystring = True,
body = """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180628.fdc0978/totest-manager.py
new/openSUSE-release-tools-20180629.4355859/totest-manager.py
--- old/openSUSE-release-tools-20180628.fdc0978/totest-manager.py
2018-06-28 18:38:22.000000000 +0200
+++ new/openSUSE-release-tools-20180629.4355859/totest-manager.py
2018-06-29 13:06:29.000000000 +0200
@@ -378,7 +378,7 @@
return None
# docker container has no size limit
- if package == 'opensuse-leap-image':
+ if re.match(r'opensuse-leap-image.*', package):
return None
if '-Addon-NonOss-ftp-ftp' in package:
@@ -846,7 +846,13 @@
'livecd-leap-gnome',
'livecd-leap-kde',
'livecd-leap-x11',
- 'opensuse-leap-image',
+ 'opensuse-leap-image:docker',
+ 'opensuse-leap-image:lxc',
+ 'kiwi-templates-Leap15-JeOS:MS-HyperV',
+ 'kiwi-templates-Leap15-JeOS:OpenStack-Cloud',
+ 'kiwi-templates-Leap15-JeOS:VMware',
+ 'kiwi-templates-Leap15-JeOS:XEN',
+ 'kiwi-templates-Leap15-JeOS:kvm-and-xen',
]
ftp_products = []
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.FsH4KC/_old 2018-07-02 23:33:08.393272355 +0200
+++ /var/tmp/diff_new_pack.FsH4KC/_new 2018-07-02 23:33:08.393272355 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20180628.fdc0978
-mtime: 1530203902
-commit: fdc09782142171aa08d04039aa0abc6fc40ff914
+version: 20180629.4355859
+mtime: 1530270389
+commit: 43558590825d2a9ecfdadde999a32c3aa82644c4