Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2019-12-06 15:06:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 15:06:14 2019 rev:258 rq:754658 version:20191206.8f62f42c Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2019-12-06 12:12:31.964020444 +0100 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.4691/openSUSE-release-tools.changes 2019-12-06 15:06:32.816368731 +0100 @@ -1,0 +2,7 @@ +Fri Dec 06 11:41:08 UTC 2019 - opensuse-releaset...@opensuse.org + +- Update to version 20191206.8f62f42c: + * Don't take multibuild packages as subpackage of itself + * Delete adi projects whenever we'd build disable them + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20191205.67ccc5ae.obscpio New: ---- openSUSE-release-tools-20191206.8f62f42c.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.DL4mCP/_old 2019-12-06 15:06:44.828364275 +0100 +++ /var/tmp/diff_new_pack.DL4mCP/_new 2019-12-06 15:06:44.828364275 +0100 @@ -20,7 +20,7 @@ %define source_dir openSUSE-release-tools %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20191205.67ccc5ae +Version: 20191206.8f62f42c 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.DL4mCP/_old 2019-12-06 15:06:44.888364252 +0100 +++ /var/tmp/diff_new_pack.DL4mCP/_new 2019-12-06 15:06:44.888364252 +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">0eb12a53c4b4cc455e626585c2a91f93c31bdf22</param> + <param name="changesrevision">345321f98d1653df4059ddcb9d5e762ab8d3f99c</param> </service> </servicedata> ++++++ openSUSE-release-tools-20191205.67ccc5ae.obscpio -> openSUSE-release-tools-20191206.8f62f42c.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20191205.67ccc5ae/osclib/accept_command.py new/openSUSE-release-tools-20191206.8f62f42c/osclib/accept_command.py --- old/openSUSE-release-tools-20191205.67ccc5ae/osclib/accept_command.py 2019-12-05 17:21:59.000000000 +0100 +++ new/openSUSE-release-tools-20191206.8f62f42c/osclib/accept_command.py 2019-12-06 12:39:14.000000000 +0100 @@ -116,6 +116,10 @@ time.sleep(1) self.api.accept_status_comment(project, staging_packages[project]) + if self.api.is_adi_project(project): + self.api.delete_empty_adi_project(project) + return + self.api.staging_deactivate(project) self.reset_rebuild_data(prj) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20191205.67ccc5ae/osclib/adi_command.py new/openSUSE-release-tools-20191206.8f62f42c/osclib/adi_command.py --- old/openSUSE-release-tools-20191205.67ccc5ae/osclib/adi_command.py 2019-12-05 17:21:59.000000000 +0100 +++ new/openSUSE-release-tools-20191206.8f62f42c/osclib/adi_command.py 2019-12-06 12:39:14.000000000 +0100 @@ -5,7 +5,6 @@ from osc import oscerr from osc.core import get_request -from osc.core import delete_project from osc.core import show_package_meta from osc import conf @@ -56,33 +55,19 @@ return overall_state = info.get('state') - if overall_state != 'acceptable' and overall_state != 'empty': - raise oscerr.WrongArgs('Missed some case') - # no longer accept/delete adi projects - return + if overall_state == 'empty': + self.api.delete_empty_adi_project(project) + return + + if overall_state != 'acceptable': + raise oscerr.WrongArgs('Missed some case') - if self.api.is_user_member_of(self.api.user, self.api.cstaging_group): - print(query_project + ' ' + Fore.GREEN + 'ready') - packages = [] - for req in info.findall('staged_requests/request'): - msg = 'ready to accept' - print(' - {} [{}]'.format(Fore.CYAN + req.get('package') + Fore.RESET, req.get('id'))) - self.api.rm_from_prj(project, request_id=req.get('id'), msg=msg) - self.api.do_change_review_state(req.get('id'), 'accepted', by_group=self.api.cstaging_group, message=msg) - packages.append(req.get('package')) - self.api.accept_status_comment(project, packages) - try: - delete_project(self.api.apiurl, project, force=True) - except HTTPError as e: - print(e) - pass - else: - ready = [] - for req in info.findall('staged_requests/request'): - ready.append('{}[{}]'.format(Fore.CYAN + req.get('package') + Fore.RESET, req.get('id'))) - if len(ready): - print(query_project, Fore.GREEN + 'ready:', ', '.join(ready)) + ready = [] + for req in info.findall('staged_requests/request'): + ready.append('{}[{}]'.format(Fore.CYAN + req.get('package') + Fore.RESET, req.get('id'))) + if len(ready): + print(query_project, Fore.GREEN + 'ready:', ', '.join(ready)) def check_adi_projects(self): for p in self.api.get_adi_projects(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20191205.67ccc5ae/osclib/stagingapi.py new/openSUSE-release-tools-20191206.8f62f42c/osclib/stagingapi.py --- old/openSUSE-release-tools-20191205.67ccc5ae/osclib/stagingapi.py 2019-12-05 17:21:59.000000000 +0100 +++ new/openSUSE-release-tools-20191206.8f62f42c/osclib/stagingapi.py 2019-12-06 12:39:14.000000000 +0100 @@ -20,6 +20,7 @@ from osc.core import buildlog_strip_time from osc.core import change_review_state from osc.core import delete_package +from osc.core import delete_project from osc.core import get_commitlog from osc.core import get_group from osc.core import get_request @@ -70,6 +71,7 @@ self._package_metas = dict() self._supersede = False self._package_disabled = {} + self._is_staging_manager = None Cache.init() @@ -146,6 +148,12 @@ xpath = 'repository[@name="images"]' return len(meta.xpath(xpath)) > 0 + @property + def is_staging_manager(self): + if self._is_staging_manager is None: + self._is_staging_manager = self.is_user_member_of(self.user, self.cstaging_group) + return self._is_staging_manager + def makeurl(self, l, query=None): """ Wrapper around osc's makeurl passing our apiurl @@ -938,7 +946,7 @@ # created before through get_sub_packages(). filelist = self.get_filelist_for_package(pkgname=package, project=project, expand='1') if '_multibuild' in filelist: - return [package] + return [] mainspec = "{}{}".format(package, '.spec') if mainspec in filelist: @@ -1253,7 +1261,10 @@ root = self.project_status(project, reload=True) if root.get('state') == 'empty': # Cleanup like accept since the staging is now empty. - self.staging_deactivate(project) + if self.is_adi_project(project): + self.api.delete_empty_adi_project(project) + else: + self.staging_deactivate(project) else: self.build_switch_staging_project(project, 'enable') @@ -1483,3 +1494,16 @@ return meta.find(xpath) is not None return False + + def delete_empty_adi_project(self, project): + if not self.is_adi_project(project): + return + + if not self.is_staging_manager: + return + + try: + delete_project(self.apiurl, project, force=True) + except HTTPError as e: + print(e) + pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20191205.67ccc5ae/tests/select_tests.py new/openSUSE-release-tools-20191206.8f62f42c/tests/select_tests.py --- old/openSUSE-release-tools-20191205.67ccc5ae/tests/select_tests.py 2019-12-05 17:21:59.000000000 +0100 +++ new/openSUSE-release-tools-20191206.8f62f42c/tests/select_tests.py 2019-12-06 12:39:14.000000000 +0100 @@ -11,6 +11,7 @@ from osclib.unselect_command import UnselectCommand from osclib.stagingapi import StagingAPI from osclib.memoize import memoize_session_reset +from osclib.core import source_file_load import logging from mock import MagicMock @@ -55,7 +56,7 @@ project = self.wf.create_project('devel:gcc') package = OBSLocal.Package(name='gcc8', project=project) - package.create_commit(filename='gcc8.spec') + package.create_commit(filename='gcc8.spec', text='Name: gcc8') package.create_commit(filename='gcc8-tests.spec') self.wf.submit_package(package) @@ -63,6 +64,12 @@ self.assertEqual(True, ret) self.assertEqual(package_list(self.wf.apiurl, staging.name), ['gcc8', 'gcc8-tests']) + file = source_file_load(self.wf.apiurl, staging.name, 'gcc8', 'gcc8.spec') + self.assertEqual(file, 'Name: gcc8') + # we should see the spec file also in the 2nd package + file = source_file_load(self.wf.apiurl, staging.name, 'gcc8-tests', 'gcc8.spec') + self.assertEqual(file, 'Name: gcc8') + uc = UnselectCommand(self.wf.api) self.assertIsNone(uc.perform(['gcc8'], False, None)) @@ -75,7 +82,7 @@ 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.spec', text='Name: gcc9') package.create_commit(filename='gcc9-tests.spec') package.create_commit('<multibuild><flavor>gcc9-tests.spec</flavor></multibuild>', filename='_multibuild') self.wf.submit_package(package) @@ -84,6 +91,9 @@ self.assertEqual(True, ret) self.assertEqual(package_list(self.wf.apiurl, staging.name), ['gcc9']) + file = source_file_load(self.wf.apiurl, staging.name, 'gcc9', 'gcc9.spec') + self.assertEqual(file, 'Name: gcc9') + uc = UnselectCommand(self.wf.api) self.assertIsNone(uc.perform(['gcc9'], False, None)) ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.DL4mCP/_old 2019-12-06 15:06:45.492364028 +0100 +++ /var/tmp/diff_new_pack.DL4mCP/_new 2019-12-06 15:06:45.492364028 +0100 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20191205.67ccc5ae -mtime: 1575562919 -commit: 67ccc5ae1bf9c4f97ced12acd8c4ce86d4c0b5e6 +version: 20191206.8f62f42c +mtime: 1575632354 +commit: 8f62f42ca560fb0a374701a2c011ffd6da41d0fa