Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Factory checked in at 2018-11-08 09:47:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Thu Nov  8 09:47:23 2018 rev:141 rq:644728 version:20181025.5558473

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
    2018-10-23 20:42:24.836399257 +0200
+++ 
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes
       2018-11-08 09:47:43.277154111 +0100
@@ -1,0 +2,25 @@
+Thu Oct 25 18:49:00 UTC 2018 - opensuse-releaset...@opensuse.org
+
+- Update to version 20181025.5558473:
+  * repo_checker: filter repository published check by arch.
+  * repo_checker: repository_state_last(): switch to simulate_merge as arg.
+  * repo_checker: repository_state(): limit meta revision to simulate merge.
+  * repo_checker: repository_state(): filter by relevant archs.
+  * repo_checker: extract arch determination as target_archs_from_prairs().
+  * osclib/core: provide archs filter for repository state and published 
queries.
+
+-------------------------------------------------------------------
+Thu Oct 25 18:24:53 UTC 2018 - opensuse-releaset...@opensuse.org
+
+- Update to version 20181025.3ad87ff:
+  * manager_42: remove extra newline to avoid flake8 E301.
+  * flake8: utilize raw strings to avoid invalid escape character warnings.
+  * flake8: ignore W504.
+
+-------------------------------------------------------------------
+Tue Oct 23 08:01:54 UTC 2018 - opensuse-releaset...@opensuse.org
+
+- Update to version 20181023.f7ea85e:
+  * Fix deployment problems on rabbit-openqa
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20181023.9b1618e.obscpio

New:
----
  openSUSE-release-tools-20181025.5558473.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.NWsuR8/_old  2018-11-08 09:47:44.909152192 +0100
+++ /var/tmp/diff_new_pack.NWsuR8/_new  2018-11-08 09:47:44.909152192 +0100
@@ -20,7 +20,7 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20181023.9b1618e
+Version:        20181025.5558473
 Release:        0
 Summary:        Tools to aid in staging and release work for openSUSE/SUSE
 License:        GPL-2.0-or-later AND MIT
@@ -222,7 +222,7 @@
 BuildArch:      noarch
 # TODO Update requirements.
 Requires:       osclib = %{version}
-Requires:       python-openqa_client
+Requires:       python2-openqa_client
 Requires:       python2-pika
 
 %description totest-manager
@@ -298,6 +298,8 @@
 Group:          Development/Tools/Other
 BuildArch:      noarch
 Requires:       osc >= 0.159.0
+Requires:       python2-openqa_client
+Requires:       python2-pika
 
 %description rabbit-openqa
 Bot listening to AMQP bus and syncs openQA job status into OBS for
@@ -399,8 +401,8 @@
 %systemd_postun
 
 %pre rabbit-openqa
-getent passwd osrt-rabit-openqa > /dev/null || \
-  useradd -r -m -s /sbin/nologin -c "user for 
openSUSE-release-tools-rabbit-openqa" osrt-rabit-openqa
+getent passwd osrt-rabbit-openqa > /dev/null || \
+  useradd -r -m -s /sbin/nologin -c "user for 
openSUSE-release-tools-rabbit-openqa" osrt-rabbit-openqa
 exit 0
 
 %postun rabbit-openqa

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.NWsuR8/_old  2018-11-08 09:47:44.957152136 +0100
+++ /var/tmp/diff_new_pack.NWsuR8/_new  2018-11-08 09:47:44.957152136 +0100
@@ -1,6 +1,6 @@
 <servicedata>
   <service name="tar_scm">
     <param 
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
-    <param 
name="changesrevision">9b1618e7c51660bb6870efcbdf686cb8645abcbb</param>
+    <param 
name="changesrevision">55584739996331a3660216cb8ea4bcadca3bc60a</param>
   </service>
 </servicedata>

++++++ openSUSE-release-tools-20181023.9b1618e.obscpio -> 
openSUSE-release-tools-20181025.5558473.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/.flake8 
new/openSUSE-release-tools-20181025.5558473/.flake8
--- old/openSUSE-release-tools-20181023.9b1618e/.flake8 2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/.flake8 2018-10-25 
20:44:10.000000000 +0200
@@ -1,4 +1,4 @@
 [flake8]
 exclude = .open-build-service/, abichecker, openqa, openqa-maintenance.py
 max-line-length = 100
-ignore = 
E501,F401,E302,E228,E128,E251,E201,E202,E203,E305,F841,E265,E261,E266,E712,E401,E126,E502,E222,E241,E711,E226,E125,E123,W293,W391,E731,E101,E227,E713,E225,E124,E221,E127,E701,E714,W503,E129,E303,E741,E722
+ignore = 
E501,F401,E302,E228,E128,E251,E201,E202,E203,E305,F841,E265,E261,E266,E712,E401,E126,E502,E222,E241,E711,E226,E125,E123,W293,W391,E731,E101,E227,E713,E225,E124,E221,E127,E701,E714,W503,W504,E129,E303,E741,E722
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/dist/package/openSUSE-release-tools.spec
 
new/openSUSE-release-tools-20181025.5558473/dist/package/openSUSE-release-tools.spec
--- 
old/openSUSE-release-tools-20181023.9b1618e/dist/package/openSUSE-release-tools.spec
        2018-10-23 06:38:17.000000000 +0200
+++ 
new/openSUSE-release-tools-20181025.5558473/dist/package/openSUSE-release-tools.spec
        2018-10-25 20:44:10.000000000 +0200
@@ -222,7 +222,7 @@
 BuildArch:      noarch
 # TODO Update requirements.
 Requires:       osclib = %{version}
-Requires:       python-openqa_client
+Requires:       python2-openqa_client
 Requires:       python2-pika
 
 %description totest-manager
@@ -298,6 +298,8 @@
 Group:          Development/Tools/Other
 BuildArch:      noarch
 Requires:       osc >= 0.159.0
+Requires:       python2-openqa_client
+Requires:       python2-pika
 
 %description rabbit-openqa
 Bot listening to AMQP bus and syncs openQA job status into OBS for
@@ -399,8 +401,8 @@
 %systemd_postun
 
 %pre rabbit-openqa
-getent passwd osrt-rabit-openqa > /dev/null || \
-  useradd -r -m -s /sbin/nologin -c "user for 
openSUSE-release-tools-rabbit-openqa" osrt-rabit-openqa
+getent passwd osrt-rabbit-openqa > /dev/null || \
+  useradd -r -m -s /sbin/nologin -c "user for 
openSUSE-release-tools-rabbit-openqa" osrt-rabbit-openqa
 exit 0
 
 %postun rabbit-openqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/factory-package-news/announcer.py 
new/openSUSE-release-tools-20181025.5558473/factory-package-news/announcer.py
--- 
old/openSUSE-release-tools-20181023.9b1618e/factory-package-news/announcer.py   
    2018-10-23 06:38:17.000000000 +0200
+++ 
new/openSUSE-release-tools-20181025.5558473/factory-package-news/announcer.py   
    2018-10-25 20:44:10.000000000 +0200
@@ -99,7 +99,7 @@
     if loc is None:
         raise Exception("empty location!")
 
-    m = re.search('(?:Snapshot|Build)([\d.]+)-Media', loc)
+    m = re.search(r'(?:Snapshot|Build)([\d.]+)-Media', loc)
     if m is None:
         raise Exception("failed to parse %s"%loc)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/leaper.py 
new/openSUSE-release-tools-20181025.5558473/leaper.py
--- old/openSUSE-release-tools-20181023.9b1618e/leaper.py       2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/leaper.py       2018-10-25 
20:44:10.000000000 +0200
@@ -164,7 +164,7 @@
 
             if review_result == None:
                 other_projects_to_check = []
-                m = re.match('SUSE:SLE-(\d+)(?:-SP(\d+)):', target_project)
+                m = re.match(r'SUSE:SLE-(\d+)(?:-SP(\d+)):', target_project)
                 if m:
                     sle_version = int(m.group(1))
                     sp_version = int(m.group(2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/manager_42.py 
new/openSUSE-release-tools-20181025.5558473/manager_42.py
--- old/openSUSE-release-tools-20181023.9b1618e/manager_42.py   2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/manager_42.py   2018-10-25 
20:44:10.000000000 +0200
@@ -268,7 +268,6 @@
                 return srcmd5, historyrevs[srcmd5]
         return None, None
 
-
     # check if we can find the srcmd5 in any of our underlay
     # projects
     def check_one_package(self, package):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/metrics.py 
new/openSUSE-release-tools-20181025.5558473/metrics.py
--- old/openSUSE-release-tools-20181023.9b1618e/metrics.py      2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/metrics.py      2018-10-25 
20:44:10.000000000 +0200
@@ -331,7 +331,7 @@
 
         # Extract Factory "release schedule" from Tumbleweed snapshot list.
         command = 'rsync 
rsync.opensuse.org::opensuse-full/opensuse/tumbleweed/iso/Changes.* | ' \
-            'grep -oP "Changes\.\K\d{5,}"'
+            'grep -oP "' + r'Changes\.\K\d{5,}' + '"'
         snapshots = subprocess.Popen(command, shell=True, 
stdout=subprocess.PIPE).communicate()[0]
         for date in snapshots.split():
             release_schedule[datetime.strptime(date, '%Y%m%d')] = 'Snapshot 
{}'.format(date)
@@ -547,9 +547,9 @@
     if args.wipe_cache:
         Cache.delete_all()
     if args.heavy_cache:
-        Cache.PATTERNS['/search/request'] = sys.maxint
-        Cache.PATTERNS['/source/[^/]+/{}/_history'.format(package)] = 
sys.maxint
-    Cache.PATTERNS['/source/[^/]+/{}/[^/]+\?rev=.*'.format(package)] = 
sys.maxint
+        Cache.PATTERNS[r'/search/request'] = sys.maxint
+        Cache.PATTERNS[r'/source/[^/]+/{}/_history'.format(package)] = 
sys.maxint
+    Cache.PATTERNS[r'/source/[^/]+/{}/[^/]+\?rev=.*'.format(package)] = 
sys.maxint
     Cache.init('metrics')
 
     Config(apiurl, args.project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/osclib/cache.py 
new/openSUSE-release-tools-20181025.5558473/osclib/cache.py
--- old/openSUSE-release-tools-20181023.9b1618e/osclib/cache.py 2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/osclib/cache.py 2018-10-25 
20:44:10.000000000 +0200
@@ -71,32 +71,32 @@
     TTL_SHORT = 5 * 60
     TTL_DUPLICATE = 3
     PATTERNS = {
-        '/build/[^/]+/_result': TTL_DUPLICATE,
+        r'/build/[^/]+/_result': TTL_DUPLICATE,
         # For cycles when run via repo-checker cache non-stagings.
-        '/build/(?:[^/](?!:Staging:))+/[^/]+/[^/]+/_builddepinfo$': TTL_MEDIUM,
+        r'/build/(?:[^/](?!:Staging:))+/[^/]+/[^/]+/_builddepinfo$': 
TTL_MEDIUM,
         # Group members cannot be guaranteed, but change rarely.
-        '/group/[^/?]+$': TTL_SHORT,
+        r'/group/[^/?]+$': TTL_SHORT,
         # Clear target project cache upon request acceptance.
-        '/request/(\d+)\?.*newstate=accepted': TTL_DUPLICATE,
-        "/search/package\?match=\[@project='([^']+)'\]$": TTL_LONG,
+        r'/request/(\d+)\?.*newstate=accepted': TTL_DUPLICATE,
+        r"/search/package\?match=\[@project='([^']+)'\]$": TTL_LONG,
         # Potentially expire the latest_updated since it will be the only way 
to
         # tell after an adi staging is removed. For now just cache the calls
         # that occur in rapid succession.
-        "/search/project/id\?match=starts-with\(@name,'([^']+)\:'\)$": 
TTL_DUPLICATE,
+        r"/search/project/id\?match=starts-with\(@name,'([^']+)\:'\)$": 
TTL_DUPLICATE,
         # List of all projects may change, but relevant ones rarely.
-        '/source$': TTL_LONG,
+        r'/source$': TTL_LONG,
         # Sources will be expired with project, could be done on package level.
-        '/source/([^/?]+)(?:\?.*)?$': TTL_LONG,
+        r'/source/([^/?]+)(?:\?.*)?$': TTL_LONG,
         # Project will be marked changed when packages are added/removed.
-        '/source/([^/]+)/_meta$': TTL_LONG,
-        '/source/([^/]+)/(?:[^/]+)/(?:_meta|_link)$': TTL_LONG,
-        '/source/([^/]+)/dashboard/[^/]+': TTL_LONG,
-        '/source/([^/]+)/_attribute/[^/]+': TTL_MEDIUM,
+        r'/source/([^/]+)/_meta$': TTL_LONG,
+        r'/source/([^/]+)/(?:[^/]+)/(?:_meta|_link)$': TTL_LONG,
+        r'/source/([^/]+)/dashboard/[^/]+': TTL_LONG,
+        r'/source/([^/]+)/_attribute/[^/]+': TTL_MEDIUM,
         # Handles clearing local cache on package deletes. Lots of queries like
         # updating project info, comment, and package additions.
-        '/source/([^/]+)/(?:[^/?]+)(?:\?[^/]+)?$': TTL_LONG,
+        r'/source/([^/]+)/(?:[^/?]+)(?:\?[^/]+)?$': TTL_LONG,
         # Presumably users are not interweaving in short windows.
-        '/statistics/latest_updated': TTL_SHORT,
+        r'/statistics/latest_updated': TTL_SHORT,
     }
 
     last_updated = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/osclib/core.py 
new/openSUSE-release-tools-20181025.5558473/osclib/core.py
--- old/openSUSE-release-tools-20181023.9b1618e/osclib/core.py  2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/osclib/core.py  2018-10-25 
20:44:10.000000000 +0200
@@ -28,7 +28,7 @@
 from osclib.memoize import memoize
 
 BINARY_REGEX = 
r'(?:.*::)?(?P<filename>(?P<name>.*)-(?P<version>[^-]+)-(?P<release>[^-]+)\.(?P<arch>[^-\.]+))'
-RPM_REGEX = BINARY_REGEX + '\.rpm'
+RPM_REGEX = BINARY_REGEX + r'\.rpm'
 BinaryParsed = namedtuple('BinaryParsed', ('package', 'filename', 'name', 
'arch'))
 
 @memoize(session=True)
@@ -392,31 +392,34 @@
     from osclib.util import sha1_short
     return sha1_short(http_GET(url).read())
 
-def repository_state(apiurl, project, repository):
+def repository_state(apiurl, project, repository, archs=[]):
+    if not len(archs):
+        archs = target_archs(apiurl, project, repository)
+
     # Unfortunately, the state hash reflects the published state and not the
     # binaries published in repository. As such request binary list and hash.
     combined_state = []
-    for arch in target_archs(apiurl, project, repository):
+    for arch in archs:
         combined_state.append(repository_arch_state(apiurl, project, 
repository, arch))
     from osclib.util import sha1_short
     return sha1_short(combined_state)
 
-def repositories_states(apiurl, repository_pairs):
+def repositories_states(apiurl, repository_pairs, archs=[]):
     states = []
 
     for project, repository in repository_pairs:
-        states.append(repository_state(apiurl, project, repository))
+        states.append(repository_state(apiurl, project, repository, archs))
 
     return states
 
-def repository_published(apiurl, project, repository):
+def repository_published(apiurl, project, repository, archs=[]):
     root = ETL.fromstringlist(show_results_meta(
-        apiurl, project, multibuild=True, repository=[repository]))
+        apiurl, project, multibuild=True, repository=[repository], arch=archs))
     return not len(root.xpath('result[@state!="published" and 
@state!="unpublished"]'))
 
-def repositories_published(apiurl, repository_pairs):
+def repositories_published(apiurl, repository_pairs, archs=[]):
     for project, repository in repository_pairs:
-        if not repository_published(apiurl, project, repository):
+        if not repository_published(apiurl, project, repository, archs):
             return (project, repository)
 
     return True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/osclib/stagingapi.py 
new/openSUSE-release-tools-20181025.5558473/osclib/stagingapi.py
--- old/openSUSE-release-tools-20181023.9b1618e/osclib/stagingapi.py    
2018-10-23 06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/osclib/stagingapi.py    
2018-10-25 20:44:10.000000000 +0200
@@ -265,7 +265,7 @@
         return package_info
 
     def extract_specfile_short(self, filelist):
-        packages = [spec[:-5] for spec in filelist if re.search('\.spec$', 
spec)]
+        packages = [spec[:-5] for spec in filelist if re.search(r'\.spec$', 
spec)]
 
         return packages
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/pkglistgen.py 
new/openSUSE-release-tools-20181025.5558473/pkglistgen.py
--- old/openSUSE-release-tools-20181023.9b1618e/pkglistgen.py   2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/pkglistgen.py   2018-10-25 
20:44:10.000000000 +0200
@@ -487,7 +487,7 @@
                     # only comment first time
                     comment = None
                     x = ET.tostring(x, pretty_print=True)
-                    x = re.sub('\s*<!-- reason:', ' <!-- reason:', x)
+                    x = re.sub(r'\s*<!-- reason:', ' <!-- reason:', x)
                     # fh.write(ET.tostring(x, pretty_print = True, doctype = 
'<?xml version="1.0" encoding="UTF-8"?>'))
                     fh.write(x)
         return summary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/rabbit-openqa.py 
new/openSUSE-release-tools-20181025.5558473/rabbit-openqa.py
--- old/openSUSE-release-tools-20181023.9b1618e/rabbit-openqa.py        
2018-10-23 06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/rabbit-openqa.py        
2018-10-25 20:44:10.000000000 +0200
@@ -227,7 +227,7 @@
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(
         description='Bot to sync openQA status to OBS')
-    parser.add_argument("--apiurl", '-A', type=str, 
default='https://api.opensuse.org', help='API URL of OBS')
+    parser.add_argument("--apiurl", '-A', type=str, help='API URL of OBS')
     parser.add_argument('-s', '--staging', type=str, default=None,
                         help='staging project letter')
     parser.add_argument('-f', '--force', action='store_true', default=False,
@@ -239,10 +239,10 @@
 
     args = parser.parse_args()
 
-    osc.conf.get_config()
+    osc.conf.get_config(override_apiurl = args.apiurl)
     osc.conf.config['debug'] = args.debug
 
-    apiurl = args.apiurl
+    apiurl = osc.conf.config['apiurl']
 
     if apiurl.endswith('suse.de'):
         amqp_prefix = 'suse'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20181023.9b1618e/repo_checker.py 
new/openSUSE-release-tools-20181025.5558473/repo_checker.py
--- old/openSUSE-release-tools-20181023.9b1618e/repo_checker.py 2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/repo_checker.py 2018-10-25 
20:44:10.000000000 +0200
@@ -64,7 +64,7 @@
             return
 
         repository_pairs = repository_path_expand(self.apiurl, project, 
repository)
-        state_hash = self.repository_state(repository_pairs)
+        state_hash = self.repository_state(repository_pairs, False)
         self.repository_check(repository_pairs, state_hash, False, 
bool(post_comments))
 
     def package_comments(self, project, repository):
@@ -117,6 +117,15 @@
         # Trick to prioritize x86_64.
         return sorted(archs, reverse=True)
 
+    @memoize(session=True)
+    def target_archs_from_prairs(self, repository_pairs, simulate_merge):
+        if simulate_merge:
+            # Restrict top layer archs to the whitelisted archs from merge 
layer.
+            return set(target_archs(self.apiurl, repository_pairs[0][0], 
repository_pairs[0][1])).intersection(
+                   set(self.target_archs(repository_pairs[1][0], 
repository_pairs[1][1])))
+
+        return self.target_archs(repository_pairs[0][0], 
repository_pairs[0][1])
+
     @memoize(ttl=60, session=True, add_invalidate=True)
     def mirror(self, project, repository, arch):
         """Call bs_mirrorfull script to mirror packages."""
@@ -347,24 +356,27 @@
         return filename
 
     @memoize(ttl=60, session=True)
-    def repository_state(self, repository_pairs):
-        states = repositories_states(self.apiurl, repository_pairs)
-        states.append(str(project_meta_revision(self.apiurl, 
repository_pairs[0][0])))
+    def repository_state(self, repository_pairs, simulate_merge):
+        archs = self.target_archs_from_prairs(repository_pairs, simulate_merge)
+        states = repositories_states(self.apiurl, repository_pairs, archs)
+
+        if simulate_merge:
+            states.append(str(project_meta_revision(self.apiurl, 
repository_pairs[0][0])))
 
         return sha1_short(states)
 
     @memoize(ttl=60, session=True)
-    def repository_state_last(self, project, repository, pseudometa):
-        if pseudometa:
-            filename = self.project_pseudometa_file_name(project, repository)
-            content = project_pseudometa_file_load(self.apiurl, project, 
filename)
-            if content:
-                return content.splitlines()[0]
-        else:
+    def repository_state_last(self, project, repository, simulate_merge):
+        if simulate_merge:
             comments = self.comment_api.get_comments(project_name=project)
             _, info = self.comment_api.comment_find(comments, 
'::'.join([self.bot_name, repository]))
             if info:
                 return info.get('build')
+        else:
+            filename = self.project_pseudometa_file_name(project, repository)
+            content = project_pseudometa_file_load(self.apiurl, project, 
filename)
+            if content:
+                return content.splitlines()[0]
 
         return None
 
@@ -375,10 +387,11 @@
         self.logger.info('checking {}/{}@{}[{}]'.format(
             project, repository, state_hash, len(repository_pairs)))
 
-        published = repositories_published(self.apiurl, repository_pairs)
+        archs = self.target_archs_from_prairs(repository_pairs, simulate_merge)
+        published = repositories_published(self.apiurl, repository_pairs, 
archs)
 
         if not self.force:
-            if state_hash == self.repository_state_last(project, repository, 
not simulate_merge):
+            if state_hash == self.repository_state_last(project, repository, 
simulate_merge):
                 self.logger.info('{} build unchanged'.format(project))
                 # TODO keep track of skipped count for cycle summary
                 return None
@@ -395,14 +408,9 @@
         # Drop non-published repository information and thus reduce to boolean.
         published = published is True
 
-        if simulate_merge:
-            # Restrict top layer archs to the whitelisted archs from merge 
layer.
-            archs = set(target_archs(self.apiurl, project, 
repository)).intersection(
-                    set(self.target_archs(repository_pairs[1][0], 
repository_pairs[1][1])))
-        else:
+        if not simulate_merge:
             # Top of pseudometa file.
             comment.append(state_hash)
-            archs = self.target_archs(project, repository)
 
             if post_comments:
                 # Stores parsed install_check() results grouped by package.
@@ -561,7 +569,7 @@
         if not isinstance(repository_pairs, list):
             return repository_pairs
 
-        state_hash = self.repository_state(repository_pairs)
+        state_hash = self.repository_state(repository_pairs, True)
         if not self.repository_check(repository_pairs, state_hash, True):
             return None
 
@@ -603,7 +611,7 @@
         if not isinstance(repository_pairs, list):
             return repository_pairs
 
-        state_hash = self.repository_state(repository_pairs)
+        state_hash = self.repository_state(repository_pairs, True)
         if not self.repository_check(repository_pairs, state_hash, True):
             return None
 
@@ -618,7 +626,7 @@
         if not isinstance(repository_pairs, list):
             return repository_pairs
 
-        state_hash = self.repository_state(repository_pairs)
+        state_hash = self.repository_state(repository_pairs, True)
         if not self.repository_check(repository_pairs, state_hash, True):
             return None
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openSUSE-release-tools-20181023.9b1618e/tests/obs.py 
new/openSUSE-release-tools-20181025.5558473/tests/obs.py
--- old/openSUSE-release-tools-20181023.9b1618e/tests/obs.py    2018-10-23 
06:38:17.000000000 +0200
+++ new/openSUSE-release-tools-20181025.5558473/tests/obs.py    2018-10-25 
20:44:10.000000000 +0200
@@ -689,7 +689,7 @@
 
         return response
 
-    @DELETE(re.compile('/source/openSUSE:Factory:Staging:[B|C]/\w+'))
+    @DELETE(re.compile(r'/source/openSUSE:Factory:Staging:[B|C]/\w+'))
     def delete_package(self, request, uri, headers):
         """Delete a source package from a Staging project."""
         package = re.search(r'/source/([\w:]+/\w+)', uri).group(1)

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.NWsuR8/_old  2018-11-08 09:47:45.629151346 +0100
+++ /var/tmp/diff_new_pack.NWsuR8/_new  2018-11-08 09:47:45.633151341 +0100
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20181023.9b1618e
-mtime: 1540269497
-commit: 9b1618e7c51660bb6870efcbdf686cb8645abcbb
+version: 20181025.5558473
+mtime: 1540493050
+commit: 55584739996331a3660216cb8ea4bcadca3bc60a
 


Reply via email to