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 - opensuse-releaset...@opensuse.org
+
+- Update to version 20180629.4355859:
+  * No longer have Ring2 and staging :DVD subproject
+
+-------------------------------------------------------------------
+Fri Jun 29 08:39:50 UTC 2018 - opensuse-releaset...@opensuse.org
+
+- 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 - opensuse-releaset...@opensuse.org
+
+- 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
 


Reply via email to