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