Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Factory checked in at 2019-12-06 12:12:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Fri Dec  6 12:12:06 2019 rev:257 rq:754607 version:20191205.67ccc5ae

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
    2019-12-05 17:34:56.329443084 +0100
+++ 
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4691/openSUSE-release-tools.changes
  2019-12-06 12:12:31.964020444 +0100
@@ -1,0 +2,21 @@
+Thu Dec 05 16:22:57 UTC 2019 - [email protected]
+
+- Update to version 20191205.67ccc5ae:
+  * Improve _multibuild on accept
+  * Extend tests for accept command
+  * Add test for selecting multibuild with 2 spec
+  * Remove support for ring2
+
+-------------------------------------------------------------------
+Thu Dec 05 11:16:52 UTC 2019 - [email protected]
+
+- Update to version 20191205.24345fd4:
+  * Pass the packages to rebuild in the POST's body
+
+-------------------------------------------------------------------
+Wed Dec 04 19:19:48 UTC 2019 - [email protected]
+
+- Update to version 20191204.660ec7a7:
+  * No longer close acceptable adi stagings
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20191204.fe8bfc2c.obscpio

New:
----
  openSUSE-release-tools-20191205.67ccc5ae.obscpio

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

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.SoW8ID/_old  2019-12-06 12:12:33.196019846 +0100
+++ /var/tmp/diff_new_pack.SoW8ID/_new  2019-12-06 12:12:33.200019844 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package openSUSE-release-tools
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,12 +20,12 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20191204.fe8bfc2c
+Version:        20191205.67ccc5ae
 Release:        0
 Summary:        Tools to aid in staging and release work for openSUSE/SUSE
 License:        GPL-2.0-or-later AND MIT
 Group:          Development/Tools/Other
-Url:            https://github.com/openSUSE/openSUSE-release-tools
+URL:            https://github.com/openSUSE/openSUSE-release-tools
 Source:         %{name}-%{version}.tar.xz
 BuildArch:      noarch
 # Requires sr#704176

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.SoW8ID/_old  2019-12-06 12:12:33.252019819 +0100
+++ /var/tmp/diff_new_pack.SoW8ID/_new  2019-12-06 12:12:33.256019817 +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">fe8bfc2c1014fed04d63ffbb0b0713c10294c470</param>
+    <param 
name="changesrevision">0eb12a53c4b4cc455e626585c2a91f93c31bdf22</param>
   </service>
 </servicedata>

++++++ openSUSE-release-tools-20191204.fe8bfc2c.obscpio -> 
openSUSE-release-tools-20191205.67ccc5ae.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/accept_command.py 
new/openSUSE-release-tools-20191205.67ccc5ae/osclib/accept_command.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/accept_command.py       
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/osclib/accept_command.py       
2019-12-05 17:21:59.000000000 +0100
@@ -75,7 +75,7 @@
             status = self.api.project_status(project)
             if status.get('state') != 'acceptable' and not force:
                 print('The project "{}" is not yet 
acceptable.'.format(project))
-                #return False
+                return False
 
             staging_packages[project] = []
             for request in status.findall('staged_requests/request'):
@@ -153,13 +153,17 @@
     def fix_linking_packages(self, package, dry=False):
         project = self.api.project
         file_list = self.api.get_filelist_for_package(package, project)
-        # ignore
-        if '_multibuild' in file_list or '_link' in file_list:
+        # ignore linked packages
+        if '_link' in file_list:
             return
         needed_links = set()
-        for file in file_list:
-            if file.endswith('.spec') and file != f'{package}.spec':
-                needed_links.add(file[:-5])
+        # if there's a multibuild we assume all flavors are built
+        # using multibuild. So any potential previous links have to
+        # be removed ie set of needed_links left empty.
+        if '_multibuild' not in file_list:
+            for file in file_list:
+                if file.endswith('.spec') and file != f'{package}.spec':
+                    needed_links.add(file[:-5])
         local_links = set()
         for link in self.api.linked_packages(package):
             if link['project'] == project:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/adi_command.py 
new/openSUSE-release-tools-20191205.67ccc5ae/osclib/adi_command.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/adi_command.py  
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/osclib/adi_command.py  
2019-12-05 17:21:59.000000000 +0100
@@ -59,6 +59,9 @@
         if overall_state != 'acceptable' and overall_state != 'empty':
             raise oscerr.WrongArgs('Missed some case')
 
+        # no longer accept/delete adi projects
+        return
+
         if self.api.is_user_member_of(self.api.user, self.api.cstaging_group):
             print(query_project + ' ' + Fore.GREEN + 'ready')
             packages = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/cleanup_rings.py 
new/openSUSE-release-tools-20191205.67ccc5ae/osclib/cleanup_rings.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/cleanup_rings.py        
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/osclib/cleanup_rings.py        
2019-12-05 17:21:59.000000000 +0100
@@ -152,7 +152,7 @@
 
     def check_requiredby(self, project, package):
         # Prioritize x86_64 bit.
-        for arch in reversed(self.api.ring_archs(project)):
+        for arch in reversed(self.api.cstaging_archs):
             for fileinfo in fileinfo_ext_all(self.api.apiurl, project, 
'standard', arch, package):
                 for requiredby in 
fileinfo.findall('provides_ext/requiredby[@name]'):
                     b = self.bin2src[requiredby.get('name')]
@@ -168,14 +168,13 @@
             return False
 
         self.find_inner_ring_links(prj)
-        for arch in self.api.ring_archs(prj):
+        for arch in self.api.cstaging_archs:
             self.fill_pkgdeps(prj, 'standard', arch)
 
         if self.api.rings.index(prj) == 0:
             self.check_buildconfig(prj)
-        else: # Ring 1 or 2.
-            # Always look at DVD archs for image, even in ring 1.
-            for arch in self.api.cstaging_dvd_archs:
+        else:
+            for arch in self.api.cstaging_archs:
                 self.check_image_bdeps(prj, arch)
 
         for source in self.sources:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/select_command.py 
new/openSUSE-release-tools-20191205.67ccc5ae/osclib/select_command.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/select_command.py       
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/osclib/select_command.py       
2019-12-05 17:21:59.000000000 +0100
@@ -1,5 +1,3 @@
-from __future__ import print_function
-
 from xml.etree import cElementTree as ET
 
 from osc import oscerr
@@ -7,8 +5,6 @@
 
 from osclib.request_finder import RequestFinder
 from osclib.freeze_command import MAX_FROZEN_AGE
-# from osclib.freeze_command import FreezeCommand
-
 
 SELECT = 'select'
 # SUPERSEDE = 'supersede'
@@ -127,7 +123,6 @@
             print('Project needs to be frozen or there was no change for last 
%d days.' % MAX_FROZEN_AGE)
             print('Please freeze the project or use an option to ignore the 
time from the last freee.')
             return False
-            # FreezeCommand(self.api).perform(self.target_project)
 
         # picks new candidate requests only if it's not to move requests
         # ie. the review state of staging-project must be new if newcand is 
True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/stagingapi.py 
new/openSUSE-release-tools-20191205.67ccc5ae/osclib/stagingapi.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/osclib/stagingapi.py   
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/osclib/stagingapi.py   
2019-12-05 17:21:59.000000000 +0100
@@ -936,12 +936,16 @@
         # guarantee the sub-pacakges are created according to the
         # specfiles of main package. Therefore, main package must be
         # created before through get_sub_packages().
-        filelist = self.get_filelist_for_package(pkgname=package, 
project=project, expand='1', extension='spec')
+        filelist = self.get_filelist_for_package(pkgname=package, 
project=project, expand='1')
+        if '_multibuild' in filelist:
+            return [package]
+
         mainspec = "{}{}".format(package, '.spec')
         if mainspec in filelist:
             filelist.remove(mainspec)
-        for spec in filelist:
-            ret.append(spec[:-5])
+        for file in filelist:
+            if file.endswith('.spec'):
+                ret.append(file[:-5])
 
         return ret
 
@@ -1460,11 +1464,6 @@
 
         self.build_switch_staging_project(project, 'disable')
 
-    def ring_archs(self, ring):
-        if self.rings.index(ring) == 2:
-            return self.cstaging_dvd_archs
-        return self.cstaging_archs
-
     def ignore_format(self, request_id):
         requests_ignored = self.get_ignored_requests()
         if int(request_id) in requests_ignored.keys():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/project-installcheck.py 
new/openSUSE-release-tools-20191205.67ccc5ae/project-installcheck.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/project-installcheck.py        
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/project-installcheck.py        
2019-12-05 17:21:59.000000000 +0100
@@ -16,6 +16,7 @@
 import yaml
 from lxml import etree as ET
 from osc import conf
+from osc.core import http_request
 
 import ToolBase
 from osclib.conf import Config
@@ -248,8 +249,9 @@
             return
 
         query = {'cmd': 'rebuild', 'repository': repository, 'arch': arch, 
'package': rebuilds}
-        url = makeurl(self.apiurl, ['build', project], urlencode(query, 
doseq=True))
-        http_POST(url)
+        url = makeurl(self.apiurl, ['build', project])
+        headers = { 'Content-Type': 'application/x-www-form-urlencoded' }
+        http_request('POST', url, headers, data=urlencode(query, doseq=True))
 
         self.store_yaml(oldstate, project, repository, arch)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/tests/accept_tests.py 
new/openSUSE-release-tools-20191205.67ccc5ae/tests/accept_tests.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/tests/accept_tests.py  
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/tests/accept_tests.py  
2019-12-05 17:21:59.000000000 +0100
@@ -5,6 +5,7 @@
 from osclib.conf import Config
 from osclib.comments import CommentAPI
 from osclib.stagingapi import StagingAPI
+from osclib.core import package_list
 
 from mock import MagicMock
 from . import OBSLocal
@@ -49,3 +50,69 @@
         new_id = (set(comments.keys()) - set(self.comments.keys())).pop()
         comment = comments[new_id]['comment']
         self.assertEqual('Project "{}" accepted. The following packages have 
been submitted to openSUSE:Factory: wine.'.format(self.prj), comment)
+
+    def test_accept_new_multibuild_package(self):
+        wf = self.setup_wf()
+
+        staging = wf.create_staging('A', freeze=True)
+
+        project = wf.create_project('devel:gcc')
+        package = OBSLocal.Package(name='gcc9', project=project)
+        package.create_commit(filename='gcc9.spec')
+        package.create_commit(filename='gcc9-tests.spec')
+        
package.create_commit('<multibuild><flavor>gcc9-tests.spec</flavor></multibuild>',
 filename='_multibuild')
+        wf.submit_package(package)
+
+        ret = SelectCommand(wf.api, staging.name).perform(['gcc9'])
+        ac = AcceptCommand(wf.api)
+        self.assertEqual(True, ac.accept_all(['A'], True))
+
+        # no stale links
+        self.assertEqual([], package_list(wf.apiurl, staging.name))
+        self.assertEqual(['gcc9', 'wine'], package_list(wf.apiurl, wf.project))
+
+    def test_accept_new_multispec_package(self):
+        wf = self.setup_wf()
+
+        staging = wf.create_staging('A', freeze=True)
+
+        project = wf.create_project('devel:gcc')
+        package = OBSLocal.Package(name='gcc9', project=project)
+        package.create_commit(filename='gcc9.spec')
+        package.create_commit(filename='gcc9-tests.spec')
+        wf.submit_package(package)
+
+        ret = SelectCommand(wf.api, staging.name).perform(['gcc9'])
+        ac = AcceptCommand(wf.api)
+        self.assertEqual(True, ac.accept_all(['A'], True))
+
+        # no stale links
+        self.assertEqual([], package_list(wf.apiurl, staging.name))
+        self.assertEqual(['gcc9', 'gcc9-tests', 'wine'], 
package_list(wf.apiurl, wf.project))
+
+    def test_accept_switch_to_multibuild_package(self):
+        wf = self.setup_wf()
+
+        staging = wf.create_staging('A', freeze=True)
+
+        tpackage = wf.create_package('target', 'gcc9')
+        tpackage.create_commit(filename='gcc9.spec')
+        tpackage.create_commit(filename='gcc9-tests.spec')
+        lpackage = wf.create_package('target', 'gcc9-tests')
+        lpackage.create_commit('<link package="gcc9" cicount="copy" />', 
filename='_link')
+
+        project = wf.create_project('devel:gcc')
+        package = OBSLocal.Package(name='gcc9', project=project)
+        package.create_commit(filename='gcc9.spec')
+        package.create_commit(filename='gcc9-tests.spec')
+        
package.create_commit('<multibuild><flavor>gcc9-tests.spec</flavor></multibuild>',
 filename='_multibuild')
+
+        wf.submit_package(package)
+
+        ret = SelectCommand(wf.api, staging.name).perform(['gcc9'])
+        ac = AcceptCommand(wf.api)
+        self.assertEqual(True, ac.accept_all(['A'], True))
+
+        # no stale links
+        self.assertEqual([], package_list(wf.apiurl, staging.name))
+        self.assertEqual(['gcc9', 'wine'], package_list(wf.apiurl, wf.project))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20191204.fe8bfc2c/tests/select_tests.py 
new/openSUSE-release-tools-20191205.67ccc5ae/tests/select_tests.py
--- old/openSUSE-release-tools-20191204.fe8bfc2c/tests/select_tests.py  
2019-12-04 16:24:23.000000000 +0100
+++ new/openSUSE-release-tools-20191205.67ccc5ae/tests/select_tests.py  
2019-12-05 17:21:59.000000000 +0100
@@ -68,3 +68,24 @@
 
         # no stale links
         self.assertEqual([], package_list(self.wf.apiurl, staging.name))
+
+    def test_select_multibuild_package(self):
+        self.wf.setup_rings()
+        staging = self.wf.create_staging('A', freeze=True)
+
+        project = self.wf.create_project('devel:gcc')
+        package = OBSLocal.Package(name='gcc9', project=project)
+        package.create_commit(filename='gcc9.spec')
+        package.create_commit(filename='gcc9-tests.spec')
+        
package.create_commit('<multibuild><flavor>gcc9-tests.spec</flavor></multibuild>',
 filename='_multibuild')
+        self.wf.submit_package(package)
+
+        ret = SelectCommand(self.wf.api, staging.name).perform(['gcc9'])
+        self.assertEqual(True, ret)
+
+        self.assertEqual(package_list(self.wf.apiurl, staging.name), ['gcc9'])
+        uc = UnselectCommand(self.wf.api)
+        self.assertIsNone(uc.perform(['gcc9'], False, None))
+
+        # no stale links
+        self.assertEqual([], package_list(self.wf.apiurl, staging.name))

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.SoW8ID/_old  2019-12-06 12:12:33.760019573 +0100
+++ /var/tmp/diff_new_pack.SoW8ID/_new  2019-12-06 12:12:33.760019573 +0100
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20191204.fe8bfc2c
-mtime: 1575473063
-commit: fe8bfc2c1014fed04d63ffbb0b0713c10294c470
+version: 20191205.67ccc5ae
+mtime: 1575562919
+commit: 67ccc5ae1bf9c4f97ced12acd8c4ce86d4c0b5e6
 


Reply via email to