Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Factory checked in at 2019-03-10 09:40:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Sun Mar 10 09:40:08 2019 rev:167 rq:682832 version:20190308.7f2195f

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
    2019-03-06 15:51:24.936435685 +0100
+++ 
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.28833/openSUSE-release-tools.changes
 2019-03-10 09:40:13.488106563 +0100
@@ -1,0 +2,34 @@
+Fri Mar 08 12:49:04 UTC 2019 - [email protected]
+
+- Update to version 20190308.7f2195f:
+  * No longer add repo checker as reviewer for Factory
+  * Remove 15.1:ARM:Live
+
+-------------------------------------------------------------------
+Fri Mar 08 06:47:12 UTC 2019 - [email protected]
+
+- Update to version 20190308.44cbc3a:
+  * Block adi command from accepting if checks aren't succeeding
+  * Add all checks from staging-required-checks-adi to main repo of adi 
projects
+
+-------------------------------------------------------------------
+Wed Mar 06 22:04:11 UTC 2019 - [email protected]
+
+- Update to version 20190306.819d437:
+  * dist: provide origin-manager report service and timer.
+  * dist/package: provide osc-plugin-origin package.
+  * osc-origin: provide initial origin osc subcommand.
+  * osclib/core: package_list_without_links(): ignore meta packages (00 
prefix).
+  * osclib/origin: provide __str__ method that indicates pending.
+  * osclib/origin: config_resolve_create_family(): force origin_expanded to 
string.
+  * osclib/util: mail_send(): allow a from_key of None to indicate osc user.
+  * osclib/util: mail_send() utilize Config.get() pattern.
+  * osclib/util: mail_send(): use to as config key if no at sign.
+
+-------------------------------------------------------------------
+Wed Mar 06 21:07:39 UTC 2019 - [email protected]
+
+- Update to version 20190306.ef6e30c:
+  * dist/ci/Dockerfile: change from Tumbleweed to Leap for build host.
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20190305.9f97c15.obscpio

New:
----
  openSUSE-release-tools-20190308.7f2195f.obscpio

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

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.urdSj3/_old  2019-03-10 09:40:15.116106173 +0100
+++ /var/tmp/diff_new_pack.urdSj3/_new  2019-03-10 09:40:15.120106172 +0100
@@ -20,7 +20,7 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20190305.9f97c15
+Version:        20190308.7f2195f
 Release:        0
 Summary:        Tools to aid in staging and release work for openSUSE/SUSE
 License:        GPL-2.0-or-later AND MIT
@@ -192,6 +192,7 @@
 Summary:        Package origin management tools
 Group:          Development/Tools/Other
 BuildArch:      noarch
+Requires:       osc-plugin-origin = %{version}
 Requires:       osclib = %{version}
 Requires(pre):  shadow
 
@@ -296,6 +297,15 @@
 %description -n osc-plugin-cycle
 OSC plugin for cycle visualization, see `osc cycle --help`.
 
+%package -n osc-plugin-origin
+Summary:        OSC plugin for origin management
+Group:          Development/Tools/Other
+BuildArch:      noarch
+Requires:       osc >= 0.159.0
+
+%description -n osc-plugin-origin
+OSC plugin for for working with origin information, see `osc origin --help`.
+
 %package -n osc-plugin-staging
 Summary:        OSC plugin for the staging workflow
 Group:          Development/Tools/Other
@@ -497,6 +507,7 @@
 %exclude %{_datadir}/%{source_dir}/osclib
 %exclude %{_datadir}/%{source_dir}/osc-check_dups.py
 %exclude %{_datadir}/%{source_dir}/osc-cycle.py
+%exclude %{_datadir}/%{source_dir}/osc-origin.py
 %exclude %{_datadir}/%{source_dir}/osc-staging.py
 %exclude %{_datadir}/%{source_dir}/osc-vdelreq.py
 %exclude %{_datadir}/%{source_dir}/update_crawler.py
@@ -597,6 +608,8 @@
 %{_datadir}/%{source_dir}/origin-manager.py
 %{_unitdir}/osrt-origin-manager.service
 %{_unitdir}/osrt-origin-manager.timer
+%{_unitdir}/[email protected]
+%{_unitdir}/[email protected]
 
 %files repo-checker
 %defattr(-,root,root,-)
@@ -668,6 +681,11 @@
 %{_datadir}/%{source_dir}/osc-cycle.py
 %{osc_plugin_dir}/osc-cycle.py
 
+%files -n osc-plugin-origin
+%defattr(-,root,root,-)
+%{_datadir}/%{source_dir}/osc-origin.py
+%{osc_plugin_dir}/osc-origin.py
+
 %files -n osc-plugin-staging
 %defattr(-,root,root,-)
 %{_datadir}/%{source_dir}/osc-staging.py

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.urdSj3/_old  2019-03-10 09:40:15.456106092 +0100
+++ /var/tmp/diff_new_pack.urdSj3/_new  2019-03-10 09:40:15.460106091 +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">9f97c150b8efc516cc5f824771be3b667db6f5ab</param>
+    <param 
name="changesrevision">7f2195fb575e100404ab88b3af710c00c88b2c2e</param>
   </service>
 </servicedata>
\ No newline at end of file

++++++ openSUSE-release-tools-20190305.9f97c15.obscpio -> 
openSUSE-release-tools-20190308.7f2195f.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/devel-project.py 
new/openSUSE-release-tools-20190308.7f2195f/devel-project.py
--- old/openSUSE-release-tools-20190305.9f97c15/devel-project.py        
2019-03-05 16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/devel-project.py        
2019-03-08 13:48:06.000000000 +0100
@@ -117,7 +117,6 @@
                 maintainer_map.setdefault(userid, set())
                 maintainer_map[userid].add(devel_package_identifier)
 
-    Config(apiurl, args.project) # Ensure mail-* options are loaded for 
mail_send().
     subject = 'Packages you maintain are present in {}'.format(args.project)
     for userid, package_identifiers in maintainer_map.items():
         email = entity_email(apiurl, userid)
@@ -139,7 +138,7 @@
 - {}""".format(
             args.project, '\n- '.join(sorted(package_identifiers)))
 
-        mail_send(args.project, email, subject, message, dry=args.dry)
+        mail_send(apiurl, args.project, email, subject, message, dry=args.dry)
         print('notified {} of {} packages'.format(userid, 
len(package_identifiers)))
 
 def requests(args):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/dist/ci/Dockerfile 
new/openSUSE-release-tools-20190308.7f2195f/dist/ci/Dockerfile
--- old/openSUSE-release-tools-20190305.9f97c15/dist/ci/Dockerfile      
2019-03-05 16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/dist/ci/Dockerfile      
2019-03-08 13:48:06.000000000 +0100
@@ -1,7 +1,7 @@
 # https://docs.docker.com/engine/reference/builder/
 # Used for TEST_SUITE=distribution and deployment to OBS.
 
-FROM opensuse/tumbleweed
+FROM opensuse/leap
 MAINTAINER Jimmy Berry <[email protected]>
 
 # https://github.com/openSUSE/obs-service-set_version/issues/44 
python-packaging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/dist/package/openSUSE-release-tools.spec
 
new/openSUSE-release-tools-20190308.7f2195f/dist/package/openSUSE-release-tools.spec
--- 
old/openSUSE-release-tools-20190305.9f97c15/dist/package/openSUSE-release-tools.spec
        2019-03-05 16:44:43.000000000 +0100
+++ 
new/openSUSE-release-tools-20190308.7f2195f/dist/package/openSUSE-release-tools.spec
        2019-03-08 13:48:06.000000000 +0100
@@ -193,6 +193,7 @@
 Group:          Development/Tools/Other
 BuildArch:      noarch
 Requires:       osclib = %{version}
+Requires:       osc-plugin-origin = %{version}
 Requires(pre):  shadow
 
 %description origin-manager
@@ -296,6 +297,15 @@
 %description -n osc-plugin-cycle
 OSC plugin for cycle visualization, see `osc cycle --help`.
 
+%package -n osc-plugin-origin
+Summary:        OSC plugin for origin management
+Group:          Development/Tools/Other
+BuildArch:      noarch
+Requires:       osc >= 0.159.0
+
+%description -n osc-plugin-origin
+OSC plugin for for working with origin information, see `osc origin --help`.
+
 %package -n osc-plugin-staging
 Summary:        OSC plugin for the staging workflow
 Group:          Development/Tools/Other
@@ -497,6 +507,7 @@
 %exclude %{_datadir}/%{source_dir}/osclib
 %exclude %{_datadir}/%{source_dir}/osc-check_dups.py
 %exclude %{_datadir}/%{source_dir}/osc-cycle.py
+%exclude %{_datadir}/%{source_dir}/osc-origin.py
 %exclude %{_datadir}/%{source_dir}/osc-staging.py
 %exclude %{_datadir}/%{source_dir}/osc-vdelreq.py
 %exclude %{_datadir}/%{source_dir}/update_crawler.py
@@ -597,6 +608,8 @@
 %{_datadir}/%{source_dir}/origin-manager.py
 %{_unitdir}/osrt-origin-manager.service
 %{_unitdir}/osrt-origin-manager.timer
+%{_unitdir}/[email protected]
+%{_unitdir}/[email protected]
 
 %files repo-checker
 %defattr(-,root,root,-)
@@ -668,6 +681,11 @@
 %{_datadir}/%{source_dir}/osc-cycle.py
 %{osc_plugin_dir}/osc-cycle.py
 
+%files -n osc-plugin-origin
+%defattr(-,root,root,-)
+%{_datadir}/%{source_dir}/osc-origin.py
+%{osc_plugin_dir}/osc-origin.py
+
 %files -n osc-plugin-staging
 %defattr(-,root,root,-)
 %{_datadir}/%{source_dir}/osc-staging.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osc-origin.py 
new/openSUSE-release-tools-20190308.7f2195f/osc-origin.py
--- old/openSUSE-release-tools-20190305.9f97c15/osc-origin.py   1970-01-01 
01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osc-origin.py   2019-03-08 
13:48:06.000000000 +0100
@@ -0,0 +1,203 @@
+import logging
+import os
+import os.path
+from osc import cmdln
+from osc import core
+from osc import oscerr
+from osclib.cache import Cache
+from osclib.cache_manager import CacheManager
+from osclib.core import package_list_without_links
+from osclib.origin import config_load
+from osclib.origin import origin_find
+from osclib.origin import config_origin_list
+from osclib.util import mail_send
+from shutil import copyfile
+import time
+import yaml
+
+OSRT_ORIGIN_LOOKUP_TTL = 60 * 60 * 24 * 7
+
[email protected]('--debug', action='store_true', help='output debug information')
[email protected]('--diff', action='store_true', help='diff against previous 
report')
[email protected]('--dry', action='store_true', help='perform a dry-run where 
applicable')
[email protected]('--force-refresh', action='store_true', help='force refresh of 
data')
[email protected]('--mail', action='store_true', help='mail report to 
<confg:mail-release-list>')
[email protected]('--origins-only', action='store_true', help='list origins 
instead of expanded config')
[email protected]('-p', '--project', help='project on which to operate (default is 
openSUSE:Factory)')
+def do_origin(self, subcmd, opts, *args):
+    """${cmd_name}: tools for working with origin information
+
+    ${cmd_option_list}
+
+    config: print expanded OSRT:OriginConfig
+    list: print all packages and their origin
+    package: print the origin of package
+    report: print origin summary report
+
+    Usage:
+        osc origin config [--origins-only]
+        osc origin list [--force-refresh]
+        osc origin package [--debug] PACKAGE
+        osc origin report [--diff] [--force-refresh] [--mail]
+    """
+
+    if len(args) == 0:
+        raise oscerr.WrongArgs('A command must be indicated.')
+    command = args[0]
+    if command not in ['config', 'list', 'package', 'report']:
+        raise oscerr.WrongArgs('Unknown command: {}'.format(command))
+    if command == 'package' and len(args) < 2:
+        raise oscerr.WrongArgs('A package must be indicated.')
+
+    level = logging.DEBUG if opts.debug else None
+    logging.basicConfig(level=level, format='[%(levelname).1s] %(message)s')
+
+    # Allow for determining project from osc store.
+    if not opts.project:
+        if core.is_project_dir('.'):
+            opts.project = core.store_read_project('.')
+        else:
+            opts.project = 'openSUSE:Factory'
+
+    Cache.init()
+    apiurl = self.get_api_url()
+    config = config_load(apiurl, opts.project)
+    if not config:
+        raise oscerr.WrongArgs('OSRT:OriginConfig attribute missing from 
{}'.format(opts.project))
+
+    function = 'osrt_origin_{}'.format(command)
+    globals()[function](apiurl, opts, *args[1:])
+
+def osrt_origin_config(apiurl, opts, *args):
+    config = config_load(apiurl, opts.project)
+
+    if opts.origins_only:
+        print('\n'.join(config_origin_list(config)))
+    else:
+        yaml.Dumper.ignore_aliases = lambda *args : True
+        print(yaml.dump(config))
+
+def osrt_origin_lookup_file(previous=False):
+    lookup_name = 'lookup.yaml' if not previous else 'lookup.previous.yaml'
+    cache_dir = CacheManager.directory('origin-manager')
+    return os.path.join(cache_dir, lookup_name)
+
+def osrt_origin_lookup(apiurl, project, force_refresh=False, previous=False):
+    lookup_path = osrt_origin_lookup_file(previous)
+    if not force_refresh and os.path.exists(lookup_path):
+        if not previous and time.time() - os.stat(lookup_path).st_mtime > 
OSRT_ORIGIN_LOOKUP_TTL:
+            return osrt_origin_lookup(apiurl, project, True)
+
+        with open(lookup_path, 'r') as lookup_stream:
+            lookup = yaml.safe_load(lookup_stream)
+    else:
+        if previous:
+            return None
+
+        packages = package_list_without_links(apiurl, project)
+        logging.debug('{} packages found in {}'.format(len(packages), project))
+
+        lookup = {}
+        for package in packages:
+            lookup[str(package)] = str(origin_find(apiurl, project, package))
+
+        if os.path.exists(lookup_path):
+            lookup_path_previous = osrt_origin_lookup_file(True)
+            copyfile(lookup_path, lookup_path_previous)
+
+        with open(lookup_path, 'w+') as lookup_stream:
+            yaml.dump(lookup, lookup_stream, default_flow_style=False)
+
+    return lookup
+
+def osrt_origin_max_key(dictionary, minimum):
+    return max(len(max(dictionary.keys(), key=len)), minimum)
+
+def osrt_origin_list(apiurl, opts, *args):
+    lookup = osrt_origin_lookup(apiurl, opts.project, opts.force_refresh)
+
+    line_format = '{:<' + str(osrt_origin_max_key(lookup, 7)) + '}  {}'
+    print(line_format.format('package', 'origin'))
+
+    for package, origin in lookup.items():
+        print(line_format.format(package, origin))
+
+def osrt_origin_package(apiurl, opts, *packages):
+    origin_info = origin_find(apiurl, opts.project, packages[0])
+    print(origin_info)
+
+def osrt_origin_report_count(lookup):
+    origin_count = {}
+    for package, origin in lookup.items():
+        origin_count.setdefault(origin, 0)
+        origin_count[origin] += 1
+
+    return origin_count
+
+def osrt_origin_report_count_diff(origin_count, origin_count_previous):
+    origin_count_change = {}
+    for origin, count in origin_count.items():
+        delta = count - origin_count_previous.get(origin, 0)
+        delta = '+' + str(delta) if delta > 0 else str(delta)
+        origin_count_change[origin] = delta
+
+    return origin_count_change
+
+def osrt_origin_report_diff(lookup, lookup_previous):
+    diff = {}
+    for package, origin in lookup.items():
+        origin_previous = lookup_previous.get(package)
+        if origin != origin_previous:
+            diff[package] = (origin, origin_previous)
+
+    return diff
+
+def osrt_origin_report(apiurl, opts, *args):
+    lookup = osrt_origin_lookup(apiurl, opts.project, opts.force_refresh)
+    origin_count = osrt_origin_report_count(lookup)
+
+    columns = ['origin', 'count', 'percent']
+    column_formats = [
+        '{:<' + str(osrt_origin_max_key(origin_count, 6)) + '}',
+        '{:>5}',
+        '{:>7}',
+    ]
+
+    if opts.diff:
+        columns.insert(2, 'change')
+        column_formats.insert(2, '{:>6}')
+
+        lookup_previous = osrt_origin_lookup(apiurl, opts.project, 
previous=True)
+        if lookup_previous is not None:
+            origin_count_previous = osrt_origin_report_count(lookup_previous)
+            origin_count_change = osrt_origin_report_count_diff(origin_count, 
origin_count_previous)
+            package_diff = osrt_origin_report_diff(lookup, lookup_previous)
+        else:
+            origin_count_change = {}
+            package_diff = []
+
+    line_format = '  '.join(column_formats)
+    report = [line_format.format(*columns)]
+
+    total = len(lookup)
+    for origin, count in sorted(origin_count.items(), key=lambda x : x[1], 
reverse=True):
+        values = [origin, count, round(float(count) / total * 100, 2)]
+        if opts.diff:
+            values.insert(2, origin_count_change.get(origin, 0))
+        report.append(line_format.format(*values))
+
+    if opts.diff and len(package_diff):
+        line_format = '{:<' + str(osrt_origin_max_key(package_diff, 7)) + '}  
' + \
+            '  '.join([column_formats[0]] * 2)
+        report.append('')
+        report.append(line_format.format('package', 'origin', 'origin 
previous'))
+        for package, origins in sorted(package_diff.items()):
+            report.append(line_format.format(package, *origins))
+
+
+    body = '\n'.join(report)
+    print(body)
+
+    if opts.mail:
+        mail_send(apiurl, opts.project, 'release-list', '{} origin 
report'.format(opts.project),
+                  body, None, dry=opts.dry)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osclib/adi_command.py 
new/openSUSE-release-tools-20190308.7f2195f/osclib/adi_command.py
--- old/openSUSE-release-tools-20190305.9f97c15/osclib/adi_command.py   
2019-03-05 16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osclib/adi_command.py   
2019-03-08 13:48:06.000000000 +0100
@@ -29,31 +29,39 @@
     def check_adi_project(self, project):
         query_project = self.api.extract_staging_short(project)
         info = self.api.project_status(project, True)
+
         if len(info['selected_requests']):
             if len(info['building_repositories']):
-                print(query_project + " " + Fore.MAGENTA + 'building')
+                print(query_project + ' ' + Fore.MAGENTA + 'building')
                 return
             if len(info['untracked_requests']):
-                print(query_project + " " + Fore.YELLOW + 'untracked: ' + ', 
'.join(['{}[{}]'.format(
+                print(query_project + ' ' + Fore.YELLOW + 'untracked: ' + ', 
'.join(['{}[{}]'.format(
                     Fore.CYAN + req['package'] + Fore.RESET, req['number']) 
for req in info['untracked_requests']]))
                 return
             if len(info['obsolete_requests']):
-                print(query_project + " " + Fore.YELLOW + 'obsolete: ' + ', 
'.join(['{}[{}]'.format(
+                print(query_project + ' ' + Fore.YELLOW + 'obsolete: ' + ', 
'.join(['{}[{}]'.format(
                     Fore.CYAN + req['package'] + Fore.RESET, req['number']) 
for req in info['obsolete_requests']]))
                 return
             if len(info['broken_packages']):
-                print(query_project + " " + Fore.RED + 'broken: ' + ', '.join([
+                print(query_project + ' ' + Fore.RED + 'broken: ' + ', '.join([
                     Fore.CYAN + p['package'] + Fore.RESET for p in 
info['broken_packages']]))
                 return
             for review in info['missing_reviews']:
-                print(query_project + " " + Fore.WHITE + 'review: ' + '{} for 
{}[{}]'.format(
+                print(query_project + ' ' + Fore.WHITE + 'review: ' + '{} for 
{}[{}]'.format(
                     Fore.YELLOW + review['by'] + Fore.RESET,
                     Fore.CYAN + review['package'] + Fore.RESET,
                     review['request']))
                 return
+            for check in info['missing_checks']:
+                print(query_project + ' ' + Fore.MAGENTA + 'missing: 
{}'.format(check))
+                return
+            for check in project.get('checks', []):
+                if check['state'] != 'success':
+                    print(query_project + '{} {} check: 
{}'.format(Fore.MAGENTA, check['state'], check['name']))
+                    return
 
         if self.api.is_user_member_of(self.api.user, self.api.cstaging_group):
-            print(query_project + " " + Fore.GREEN + 'ready')
+            print(query_project + ' ' + Fore.GREEN + 'ready')
             packages = []
             for req in info['selected_requests']:
                 print(' - {} [{}]'.format(Fore.CYAN + req['package'] + 
Fore.RESET, req['number']))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osclib/conf.py 
new/openSUSE-release-tools-20190308.7f2195f/osclib/conf.py
--- old/openSUSE-release-tools-20190305.9f97c15/osclib/conf.py  2019-03-05 
16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osclib/conf.py  2019-03-08 
13:48:06.000000000 +0100
@@ -40,7 +40,6 @@
         'devel-project-enforce': 'True',
         'review-team': 'opensuse-review-team',
         'legal-review-group': 'legal-auto',
-        'repo-checker': 'repo-checker',
         'repo_checker-no-filter': 'True',
         'repo_checker-package-comment-devel': 'True',
         'pkglistgen-product-family-include': 'openSUSE:Leap:N',
@@ -161,6 +160,7 @@
         'staging-group': None,
         'staging-archs': '',
         'staging-dvd-archs': '',
+        'staging-required-checks-adi': '',
         'onlyadi': False,
         'rings': None,
         'nonfree': None,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osclib/core.py 
new/openSUSE-release-tools-20190308.7f2195f/osclib/core.py
--- old/openSUSE-release-tools-20190305.9f97c15/osclib/core.py  2019-03-05 
16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osclib/core.py  2019-03-08 
13:48:06.000000000 +0100
@@ -309,7 +309,9 @@
     url = makeurl(apiurl, ['source', project], query)
     root = ETL.parse(http_GET(url)).getroot()
     return root.xpath(
-        '//sourceinfo[not(./linked[@project="{}"]) and not(contains(@package, 
":"))]/@package'.format(project))
+        '//sourceinfo[not(./linked[@project="{}"]) and '
+        'not(contains(@package, ":"))'
+        'and not(starts-with(@package, "00"))]/@package'.format(project))
 
 def attribute_value_load(apiurl, project, name, namespace='OSRT'):
     url = makeurl(apiurl, ['source', project, '_attribute', namespace + ':' + 
name])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osclib/origin.py 
new/openSUSE-release-tools-20190308.7f2195f/osclib/origin.py
--- old/openSUSE-release-tools-20190305.9f97c15/osclib/origin.py        
2019-03-05 16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osclib/origin.py        
2019-03-08 13:48:06.000000000 +0100
@@ -43,6 +43,10 @@
 PendingRequestInfo = namedtuple('PendingRequestInfo', ['identifier', 
'reviews_remaining'])
 PolicyResult = namedtuple('PolicyResult', ['wait', 'accept', 'reviews', 
'comments'])
 
+def origin_info_str(self):
+    return self.project + ('+' if self.pending else '')
+OriginInfo.__str__ = origin_info_str
+
 @memoize(session=True)
 def config_load(apiurl, project):
     config = attribute_value_load(apiurl, project, 'OriginConfig')
@@ -164,7 +168,7 @@
 def config_resolve_create_family(apiurl, project, config, position, origin, 
values):
     projects = project_list_family_prior_pattern(apiurl, origin, project)
     for origin_expanded in reversed(projects):
-        config['origins'].insert(position, { origin_expanded: values })
+        config['origins'].insert(position, { str(origin_expanded): values })
 
 def config_resolve_apply(config, values_apply, key=None, workaround=False, 
until=None):
     for origin, values in config_origin_generator(config['origins']):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osclib/stagingapi.py 
new/openSUSE-release-tools-20190308.7f2195f/osclib/stagingapi.py
--- old/openSUSE-release-tools-20190305.9f97c15/osclib/stagingapi.py    
2019-03-05 16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osclib/stagingapi.py    
2019-03-08 13:48:06.000000000 +0100
@@ -1234,11 +1234,13 @@
 
         return tar_pkg
 
-    def ensure_staging_archs(self, project):
-        url = self.makeurl(['source', project, '_meta'])
-        meta = ET.parse(http_GET(url))
+    def project_meta_url(self, project):
+        return self.makeurl(['source', project, '_meta'])
 
+    def ensure_staging_archs(self, project):
+        meta = ET.parse(http_GET(self.project_meta_url(project)))
         repository = 
meta.find('repository[@name="{}"]'.format(self.cmain_repo))
+
         changed = False
         for arch in self.cstaging_archs:
             if not repository.xpath('./arch[text()="{}"]'.format(arch)):
@@ -1246,9 +1248,11 @@
                 elm.text = arch
                 changed = True
 
-        if changed:
-            meta = ET.tostring(meta)
-            http_PUT(url, data=meta)
+        if not changed:
+            return
+
+        meta = ET.tostring(meta)
+        http_PUT(self.project_meta_url(project), data=meta)
 
     def prj_from_letter(self, letter):
         if ':' in letter:  # not a letter
@@ -1703,8 +1707,24 @@
         if use_frozenlinks:
             self.update_adi_frozenlinks(name, src_prj)
 
+        for required_check in self.cstaging_required_checks_adi.split():
+            self.add_required_check(name, required_check)
         return name
 
+    def add_required_check(self, project, check):
+        root = ET.Element('required_checks')
+        name = ET.SubElement(root, 'name')
+        name.text = check
+
+        meta = ET.parse(http_GET(self.project_meta_url(project)))
+        repository = 
meta.find('repository[@name="{}"]'.format(self.cmain_repo))
+
+        for arch_element in repository.findall('arch'):
+            architecture = arch_element.text
+            url = self.makeurl(['status_reports', 'built_repositories', 
project,
+                                self.cmain_repo, architecture, 
'required_checks'])
+            http_POST(url, data=ET.tostring(root))
+
     def is_user_member_of(self, user, group):
         root = ET.fromstring(get_group(self.apiurl, group))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/osclib/util.py 
new/openSUSE-release-tools-20190308.7f2195f/osclib/util.py
--- old/openSUSE-release-tools-20190305.9f97c15/osclib/util.py  2019-03-05 
16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/osclib/util.py  2019-03-08 
13:48:06.000000000 +0100
@@ -1,4 +1,6 @@
 from osc import conf
+from osclib.conf import Config
+from osclib.core import entity_email
 from osclib.core import project_list_prefix
 from osclib.memoize import memoize
 
@@ -121,16 +123,22 @@
 
     return 0
 
-def mail_send(project, to, subject, body, from_key='maintainer', 
followup_to_key='release-list', dry=False):
+def mail_send(apiurl, project, to, subject, body, from_key='maintainer',
+              followup_to_key='release-list', dry=False):
     from email.mime.text import MIMEText
     import email.utils
     import smtplib
 
-    config = conf.config[project]
+    config = Config.get(apiurl, project)
     msg = MIMEText(body)
     msg['Message-ID'] = email.utils.make_msgid()
     msg['Date'] = email.utils.formatdate(localtime=1)
-    msg['From'] = config['mail-{}'.format(from_key)]
+    if from_key is None:
+        msg['From'] = entity_email(apiurl, conf.get_apiurl_usr(apiurl), 
include_name=True)
+    else:
+        msg['From'] = config['mail-{}'.format(from_key)]
+    if '@' not in to:
+        to = config['mail-{}'.format(to)]
     msg['To'] = to
     followup_to = config.get('mail-{}'.format(followup_to_key))
     if followup_to:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/systemd/[email protected]
 
new/openSUSE-release-tools-20190308.7f2195f/systemd/[email protected]
--- 
old/openSUSE-release-tools-20190305.9f97c15/systemd/[email protected]
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/openSUSE-release-tools-20190308.7f2195f/systemd/[email protected]
     2019-03-08 13:48:06.000000000 +0100
@@ -0,0 +1,11 @@
+[Unit]
+Description=openSUSE Release Tools: origin-manager report for %i
+
+[Service]
+User=osrt-origin-manager
+SyslogIdentifier=osrt-origin-manager
+ExecStart=/usr/bin/osc origin -p "%i" report --diff --force-refresh --mail
+RuntimeMaxSec=12 hour
+
+[Install]
+WantedBy=multi-user.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/systemd/[email protected]
 
new/openSUSE-release-tools-20190308.7f2195f/systemd/[email protected]
--- 
old/openSUSE-release-tools-20190305.9f97c15/systemd/[email protected]
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/openSUSE-release-tools-20190308.7f2195f/systemd/[email protected]
       2019-03-08 13:48:06.000000000 +0100
@@ -0,0 +1,9 @@
+[Unit]
+Description=openSUSE Release Tools: origin-manager report for %i
+
+[Timer]
+OnCalendar=weekly
+Unit=osrt-origin-manager-report@%i.service
+
+[Install]
+WantedBy=timers.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20190305.9f97c15/totest-manager.py 
new/openSUSE-release-tools-20190308.7f2195f/totest-manager.py
--- old/openSUSE-release-tools-20190305.9f97c15/totest-manager.py       
2019-03-05 16:44:43.000000000 +0100
+++ new/openSUSE-release-tools-20190308.7f2195f/totest-manager.py       
2019-03-08 13:48:06.000000000 +0100
@@ -911,11 +911,6 @@
                     '000product:openSUSE-ftp-ftp-armv7hl',
                     ]
 
-    livecd_products = [ImageProduct('JeOS', ['armv7l'])]
-
-    # JeOS doesn't follow build numbers of main isos
-    need_same_build_number = False
-
     def openqa_group(self):
         return 'openSUSE Leap 15 AArch64'
 

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.urdSj3/_old  2019-03-10 09:40:16.148105926 +0100
+++ /var/tmp/diff_new_pack.urdSj3/_new  2019-03-10 09:40:16.148105926 +0100
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20190305.9f97c15
-mtime: 1551800683
-commit: 9f97c150b8efc516cc5f824771be3b667db6f5ab
+version: 20190308.7f2195f
+mtime: 1552049286
+commit: 7f2195fb575e100404ab88b3af710c00c88b2c2e
 


Reply via email to