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 - opensuse-releaset...@opensuse.org + +- 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 - opensuse-releaset...@opensuse.org + +- 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: - - opensuse-releaset...@suse.de + # 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': 'opensuse-...@opensuse.org', 'mail-maintainer': 'Dirk Mueller <dmuel...@suse.com>', 'mail-noreply': 'nore...@opensuse.org', 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