Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2018-12-04 20:58:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Tue Dec 4 20:58:25 2018 rev:152 rq:653862 version:20181204.aa1c004
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2018-11-29 23:01:23.843432674 +0100
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.19453/openSUSE-release-tools.changes
2018-12-04 20:58:35.116570009 +0100
@@ -1,0 +2,25 @@
+Tue Dec 04 13:34:32 UTC 2018 - [email protected]
+
+- Update to version 20181204.aa1c004:
+ * droplist: Ignore Leap:15.1 for Leap:15.1:ARM
+ * Do not generate drop list for leap:15.1:arm at the moment
+ * No longer default to all scopes but make it configurable
+ * Also remove 'arm' scope
+ * Remove 'ports' scope - powerpc uses target project
+ * Fix deleting of files
+ * Delete kiwi by glob
+ * Add option to only generate release packages
+ * Remove skip_release option
+ * Set OBS_NAME ourselves on api.suse.de
+ * pkglistgen: Add --staging option for easier scoping
+
+-------------------------------------------------------------------
+Thu Nov 29 02:55:22 UTC 2018 - [email protected]
+
+- Update to version 20181129.f45087d:
+ * osclib/cache: remove double comment introduced in #1802.
+ * metrics: sync config key with recent Leap changes.
+ * tests/metrics: add basic test to ensure code is executable.
+ * travis: use ecrypted e-mail address to avoid spam from forks.
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20181127.ad48ebf.obscpio
New:
----
openSUSE-release-tools-20181204.aa1c004.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.qtlxiM/_old 2018-12-04 20:58:36.212568799 +0100
+++ /var/tmp/diff_new_pack.qtlxiM/_new 2018-12-04 20:58:36.216568795 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20181127.ad48ebf
+Version: 20181204.aa1c004
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.qtlxiM/_old 2018-12-04 20:58:36.248568759 +0100
+++ /var/tmp/diff_new_pack.qtlxiM/_new 2018-12-04 20:58:36.248568759 +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">ad48ebfe20c1bf4a9f3d81438a99c52779306af4</param>
+ <param
name="changesrevision">53595a24bffe9c8d92b7c44bd3675059c6d6b328</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20181127.ad48ebf.obscpio ->
openSUSE-release-tools-20181204.aa1c004.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20181127.ad48ebf/.travis.yml
new/openSUSE-release-tools-20181204.aa1c004/.travis.yml
--- old/openSUSE-release-tools-20181127.ad48ebf/.travis.yml 2018-11-27
06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/.travis.yml 2018-12-04
14:28:52.000000000 +0100
@@ -156,4 +156,6 @@
notifications:
email:
recipients:
- - [email protected]
+ # Avoid spam from forks by using secure value that is only available in
+ # main project (see travis-ci/travis-ci#5063).
+ - secure:
"CpMzZ1W2x9KCCsrWiYXy8PVfR8vJfuR6ewm/oui7F/hCQ736YHbtQpCbC7GjVoDNpsnWc0XbvFjOl0ehwFBRo1FM1ejy4Zc+XdZSgVFvJ6zUHW/S7uxBZ3YuC07YCzQnHIHh0TCFkFK9GCw0lrcPpsjgneux+C8JQ6tz16H5AmA="
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20181127.ad48ebf/metrics.py
new/openSUSE-release-tools-20181204.aa1c004/metrics.py
--- old/openSUSE-release-tools-20181127.ad48ebf/metrics.py 2018-11-27
06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/metrics.py 2018-12-04
14:28:52.000000000 +0100
@@ -28,7 +28,7 @@
# Duplicate Leap config to handle 13.2 without issue.
osclib.conf.DEFAULT[
r'openSUSE:(?P<project>[\d.]+)$'] = osclib.conf.DEFAULT[
- r'openSUSE:(?P<project>Leap:(?P<version>[\d.]+)(?::Ports)?)$']
+ r'openSUSE:(?P<project>Leap:(?P<version>[\d.]+))(?::NonFree)?$']
# Provide osc.core.get_request_list() that swaps out search() implementation to
# capture the generated query, paginate over and yield each request to avoid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20181127.ad48ebf/osclib/cache.py
new/openSUSE-release-tools-20181204.aa1c004/osclib/cache.py
--- old/openSUSE-release-tools-20181127.ad48ebf/osclib/cache.py 2018-11-27
06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/osclib/cache.py 2018-12-04
14:28:52.000000000 +0100
@@ -107,8 +107,8 @@
# Use TTL_DUPLICATE for project _meta as only description changes are
listed in latest_updated:
# https://github.com/openSUSE/open-build-service/issues/6323
r'/source/([^/]+)/_meta$': TTL_DUPLICATE,
- ## Handles clearing local cache on package deletes. Lots of queries
like
- ## updating project info, comment, and package additions.
+ # Handles clearing local cache on package deletes. Lots of queries like
+ # updating project info, comment, and package additions.
r'/source/([^/]+)/(?:[^/?]+)(?:\?[^/]+)?$': TTL_DUPLICATE,
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20181127.ad48ebf/osclib/conf.py
new/openSUSE-release-tools-20181204.aa1c004/osclib/conf.py
--- old/openSUSE-release-tools-20181127.ad48ebf/osclib/conf.py 2018-11-27
06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/osclib/conf.py 2018-12-04
14:28:52.000000000 +0100
@@ -98,8 +98,7 @@
# - F-C-C submitter requests (maxlin_factory)
'unselect-cleanup-whitelist': 'leaper maxlin_factory',
'pkglistgen-archs': 'x86_64',
- 'pkglistgen-archs-arm': 'aarch64',
- 'pkglistgen-archs-ports': 'aarch64 ppc64le',
+ 'pkglistgen-scopes': 'target rings staging',
'pkglistgen-locales-from': 'openSUSE.product',
'pkglistgen-include-suggested': 'False',
'pkglistgen-delete-kiwis-rings': 'openSUSE-ftp-ftp-x86_64.kiwi
openSUSE-cd-mini-x86_64.kiwi',
@@ -114,7 +113,8 @@
'openqa': 'https://openqa.opensuse.org',
'main-repo': 'ports',
'pseudometa_package': 'openSUSE:%(project)s:ARM:Staging/dashboard',
- 'download-baseurl':
'http://download.opensuse.org/ports/aarch64/distribution/leap/%(version)s/',
+ 'pkglistgen-product-family-include': 'openSUSE:Leap:15.0:ARM',
+ 'download-baseurl-openSUSE-Leap-15.0-ARM':
'http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/',
'mail-list': '[email protected]',
'mail-maintainer': 'Dirk Mueller <[email protected]>',
'mail-noreply': '[email protected]',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20181127.ad48ebf/osclib/util.py
new/openSUSE-release-tools-20181204.aa1c004/osclib/util.py
--- old/openSUSE-release-tools-20181127.ad48ebf/osclib/util.py 2018-11-27
06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/osclib/util.py 2018-12-04
14:28:52.000000000 +0100
@@ -11,6 +11,9 @@
if project == 'openSUSE:Factory':
return [project]
+ if project.endswith(':ARM') or project.endswith(':PowerPC'):
+ return [project]
+
count_original = project.count(':')
if project.startswith('SUSE:SLE'):
project = ':'.join(project.split(':')[:2])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20181127.ad48ebf/pkglistgen.py
new/openSUSE-release-tools-20181204.aa1c004/pkglistgen.py
--- old/openSUSE-release-tools-20181127.ad48ebf/pkglistgen.py 2018-11-27
06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/pkglistgen.py 2018-12-04
14:28:52.000000000 +0100
@@ -747,7 +747,7 @@
class CommandLineInterface(ToolBase.CommandLineInterface):
- SCOPES = ['all', 'target', 'rings', 'staging', 'arm']
+ SCOPES = ['all', 'target', 'rings', 'staging']
def __init__(self, *args, **kwargs):
ToolBase.CommandLineInterface.__init__(self, args, kwargs)
@@ -1071,7 +1071,7 @@
if name is not None and '-Build' in name:
return name, 'build'
- raise Exception('media.1/{media,build} includes no build number')
+ raise Exception(baseurl + '/media.1/{media,build} includes no build
number')
@cmdln.option('--ignore-unresolvable', action='store_true', help='ignore
unresolvable and missing packges')
@cmdln.option('--ignore-recommended', action='store_true', help='do not
include recommended packages automatically')
@@ -1154,6 +1154,8 @@
@cmdln.option('-s', '--scope', action='append', default=['all'],
help='scope on which to operate ({}, staging:$letter)'.format(',
'.join(SCOPES)))
@cmdln.option('--no-checkout', action='store_true', help='reuse checkout
in cache')
@cmdln.option('--stop-after-solve', action='store_true', help='only create
group files')
+ @cmdln.option('--staging', help='Only solve that one staging')
+ @cmdln.option('--only-release-packages', action='store_true',
help='Generate 000release-packages only')
def do_update_and_solve(self, subcmd, opts):
"""${cmd_name}: update and solve for given scope
@@ -1163,13 +1165,26 @@
self.error_occured = False
+ if opts.staging:
+ match = re.match('(.*):Staging:(.*)', opts.staging)
+ opts.scope = ['staging:' + match.group(2)]
+ opts.project = match.group(1)
+
if not opts.project:
raise ValueError('project is required')
opts.staging_project = None
+ apiurl = conf.config['apiurl']
+ config = Config(apiurl, opts.project)
+ target_config = conf.config[opts.project]
+
+ if apiurl.find('suse.de') > 0:
+ # used by product converter
+ os.environ['OBS_NAME'] = 'build.suse.de'
+
# special case for all
if opts.scope == ['all']:
- opts.scope = self.SCOPES[1:]
+ opts.scope = target_config.get('pkglistgen-scopes',
'target').split(' ')
for scope in opts.scope:
if scope.startswith('staging:'):
@@ -1179,25 +1194,18 @@
if scope not in self.SCOPES:
raise ValueError('scope "{}" must be one of: {}'.format(scope,
', '.join(self.SCOPES)))
opts.scope = scope
- self.real_update_and_solve(copy.deepcopy(opts))
+ self.real_update_and_solve(target_config, copy.deepcopy(opts))
return self.error_occured
# note: scope is a value here - while it's an array above
- def real_update_and_solve(self, opts):
+ def real_update_and_solve(self, target_config, opts):
# Store target project as opts.project will contain subprojects.
target_project = opts.project
apiurl = conf.config['apiurl']
- config = Config(apiurl, target_project)
api = StagingAPI(apiurl, target_project)
- target_config = conf.config[target_project]
- if opts.scope == 'ports':
- archs_key = 'pkglistgen-archs-ports'
- elif opts.scope == 'arm':
- archs_key = 'pkglistgen-archs-arm'
- else:
- archs_key = 'pkglistgen-archs'
+ archs_key = 'pkglistgen-archs'
if archs_key in target_config:
self.options.architectures = target_config.get(archs_key).split('
')
@@ -1206,25 +1214,10 @@
if opts.scope == 'target':
self.repos = self.tool.expand_repos(target_project, main_repo)
self.update_and_solve_target_wrapper(api, target_project,
target_config, main_repo, opts, drop_list=True)
- return self.error_occured
- elif opts.scope == 'arm':
- main_repo = 'ports'
- opts.project += ':ARM'
- self.repos = self.tool.expand_repos(opts.project, main_repo)
- self.update_and_solve_target_wrapper(api, target_project,
target_config, main_repo, opts, drop_list=True)
- return self.error_occured
- elif opts.scope == 'ports':
- # TODO Continue supporting #1297, but should be abstracted.
- main_repo = 'ports'
- opts.project += ':Ports'
- self.repos = self.tool.expand_repos(opts.project, main_repo)
- self.update_and_solve_target_wrapper(api, target_project,
target_config, main_repo, opts, drop_list=True)
- return self.error_occured
elif opts.scope == 'rings':
opts.project = api.rings[1]
self.repos = self.tool.expand_repos(api.rings[1], main_repo)
self.update_and_solve_target_wrapper(api, target_project,
target_config, main_repo, opts)
- return self.error_occured
elif opts.scope == 'staging':
letters = api.get_staging_projects_short()
for letter in letters:
@@ -1233,7 +1226,7 @@
opts.project = api.prj_from_short(letter)
self.repos = self.tool.expand_repos(opts.project, main_repo)
self.update_and_solve_target_wrapper(api, target_project,
target_config, main_repo, opts)
- return self.error_occured
+ return self.error_occured
def update_and_solve_target_wrapper(self, *args, **kwargs):
try:
@@ -1248,7 +1241,7 @@
self.error_occured = True
def update_and_solve_target(self, api, target_project, target_config,
main_repo, opts,
- skip_release=False, drop_list=False):
+ drop_list=False):
print('[{}] {}/{}: update and solve'.format(opts.scope, opts.project,
main_repo))
group = target_config.get('pkglistgen-group', '000package-groups')
@@ -1276,15 +1269,13 @@
print('{}/{} build in progress'.format(opts.project, product))
return
- checkout_list = [group, product]
- if not skip_release:
- checkout_list.append(release)
-
- if packages.find('entry[@name="{}"]'.format(release)) is None:
- if not self.options.dry:
- undelete_package(api.apiurl, opts.project, release,
'revive')
- print('{} undeleted, skip dvd until next
cycle'.format(release))
- return
+ checkout_list = [group, product, release]
+
+ if packages.find('entry[@name="{}"]'.format(release)) is None:
+ if not self.options.dry:
+ undelete_package(api.apiurl, opts.project, release, 'revive')
+ print('{} undeleted, skip dvd until next cycle'.format(release))
+ return
# Cache dir specific to hostname and project.
host = urlparse(api.apiurl).hostname
@@ -1305,9 +1296,9 @@
continue
checkout_package(api.apiurl, opts.project, package,
expand_link=True, prj_dir=cache_dir)
- if not skip_release:
- self.unlink_all_except(release_dir)
- self.unlink_all_except(product_dir)
+ self.unlink_all_except(release_dir)
+ if not opts.only_release_packages:
+ self.unlink_all_except(product_dir)
self.copy_directory_contents(group_dir, product_dir,
['supportstatus.txt', 'groups.yml',
'package-groups.changes'])
self.change_extension(product_dir, '.spec.in', '.spec')
@@ -1321,7 +1312,7 @@
self.tool.update_repos(opts)
nonfree = target_config.get('nonfree')
- if opts.scope not in ('arm', 'ports') and nonfree and drop_list:
+ if nonfree and drop_list:
print('-> do_update nonfree')
# Switch to nonfree repo (ugly, but that's how the code was setup).
@@ -1343,7 +1334,8 @@
opts.include_suggested =
str2bool(target_config.get('pkglistgen-include-suggested'))
opts.locale = target_config.get('pkglistgen-local')
opts.locales_from = target_config.get('pkglistgen-locales-from')
- summary = self.do_solve('solve', opts)
+ if not opts.only_release_packages:
+ summary = self.do_solve('solve', opts)
if opts.stop_after_solve:
return
@@ -1377,28 +1369,28 @@
print(subprocess.check_output(
[PRODUCT_SERVICE, product_file, product_dir, opts.project]))
- delete_kiwis =
target_config.get('pkglistgen-delete-kiwis-{}'.format(opts.scope), '').split('
')
- self.tool.unlink_list(product_dir, delete_kiwis)
+ for delete_kiwi in
target_config.get('pkglistgen-delete-kiwis-{}'.format(opts.scope), '').split('
'):
+ delete_kiwis = glob.glob(os.path.join(product_dir, delete_kiwi))
+ self.tool.unlink_list(product_dir, delete_kiwis)
if opts.scope == 'staging':
self.strip_medium_from_staging(product_dir)
spec_files = glob.glob(os.path.join(product_dir, '*.spec'))
- if skip_release:
- self.tool.unlink_list(None, spec_files)
- else:
- self.move_list(spec_files, release_dir)
- inc_files = glob.glob(os.path.join(group_dir, '*.inc'))
- self.move_list(inc_files, release_dir)
+ self.move_list(spec_files, release_dir)
+ inc_files = glob.glob(os.path.join(group_dir, '*.inc'))
+ self.move_list(inc_files, release_dir)
+
+ self.multibuild_from_glob(release_dir, '*.spec')
+ self.build_stub(release_dir, 'spec')
+ self.commit_package(release_dir)
+
+ if opts.only_release_packages:
+ return
self.multibuild_from_glob(product_dir, '*.kiwi')
self.build_stub(product_dir, 'kiwi')
self.commit_package(product_dir)
- if not skip_release:
- self.multibuild_from_glob(release_dir, '*.spec')
- self.build_stub(release_dir, 'spec')
- self.commit_package(release_dir)
-
if api.item_exists(opts.project, '000product-summary'):
summary_str = "# Summary of packages in groups"
for group in sorted(summary.keys()):
@@ -1432,6 +1424,8 @@
project_config = conf.config[project]
baseurl = project_config.get('download-baseurl')
+ if not baseurl:
+ baseurl = project_config.get('download-baseurl-' +
project.replace(':', '-'))
baseurl_update = project_config.get('download-baseurl-update')
if not baseurl:
logger.warning('no baseurl configured for {}'.format(project))
@@ -1530,14 +1524,15 @@
f.close()
def commit_package(self, path):
- package = Package(path)
if self.options.dry:
+ package = Package(path)
for i in package.get_diff():
print(''.join(i))
else:
# No proper API function to perform the same operation.
print(subprocess.check_output(
' '.join(['cd', path, '&&', 'osc', 'addremove']), shell=True))
+ package = Package(path)
package.commit(msg='Automatic update', skip_local_service_run=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20181127.ad48ebf/requirements.txt
new/openSUSE-release-tools-20181204.aa1c004/requirements.txt
--- old/openSUSE-release-tools-20181127.ad48ebf/requirements.txt
2018-11-27 06:34:31.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/requirements.txt
2018-12-04 14:28:52.000000000 +0100
@@ -7,6 +7,7 @@
pyxdg
cmdln
git+https://github.com/openSUSE/osc
+influxdb
# Dependencies for testing
httpretty<0.9.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20181127.ad48ebf/tests/metrics_tests.py
new/openSUSE-release-tools-20181204.aa1c004/tests/metrics_tests.py
--- old/openSUSE-release-tools-20181127.ad48ebf/tests/metrics_tests.py
1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20181204.aa1c004/tests/metrics_tests.py
2018-12-04 14:28:52.000000000 +0100
@@ -0,0 +1,12 @@
+from OBSLocal import OBSLocalTestCase
+import unittest
+
+
+class TestMetrics(OBSLocalTestCase):
+ script = './metrics.py'
+ script_debug_osc = False
+
+ def test_all(self):
+ self.osc_user('staging-bot')
+ self.execute_script(['--help']) # Avoids the need to influxdb instance.
+ self.assertOutput('metrics.py')
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.qtlxiM/_old 2018-12-04 20:58:36.840568105 +0100
+++ /var/tmp/diff_new_pack.qtlxiM/_new 2018-12-04 20:58:36.844568101 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20181127.ad48ebf
-mtime: 1543296871
-commit: ad48ebfe20c1bf4a9f3d81438a99c52779306af4
+version: 20181204.aa1c004
+mtime: 1543930132
+commit: aa1c004dda2bcf88d30f055c35657a5d2a63e1a2