Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2018-04-16 12:47:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Mon Apr 16 12:47:46 2018 rev:80 rq:595658 version:20180411.820d103
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2018-04-07 20:55:30.689746959 +0200
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes
2018-04-16 12:48:01.755207226 +0200
@@ -1,0 +2,9 @@
+Wed Apr 11 12:36:59 UTC 2018 - [email protected]
+
+- Update to version 20180411.820d103:
+ * issue-diff: utilize entity_mail() as adapted into osclib.core.
+ * devel-project: provide notify sub-command.
+ * osclib/util: provide mail_send(), modified from announcer.py.
+ * osclib/core: provide entity_email(), modified from issue-diff.py.
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20180406.ace73fe.obscpio
New:
----
openSUSE-release-tools-20180411.820d103.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.LzjGEx/_old 2018-04-16 12:48:05.739062300 +0200
+++ /var/tmp/diff_new_pack.LzjGEx/_new 2018-04-16 12:48:05.739062300 +0200
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20180406.ace73fe
+Version: 20180411.820d103
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.LzjGEx/_old 2018-04-16 12:48:05.783060700 +0200
+++ /var/tmp/diff_new_pack.LzjGEx/_new 2018-04-16 12:48:05.783060700 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">ace73fecaf4995fb8714639901ece1b6d276f570</param>
+ <param
name="changesrevision">1102e3cebcce638d3f2a241f6a9131482140619d</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20180406.ace73fe.obscpio ->
openSUSE-release-tools-20180411.820d103.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180406.ace73fe/devel-project.py
new/openSUSE-release-tools-20180411.820d103/devel-project.py
--- old/openSUSE-release-tools-20180406.ace73fe/devel-project.py
2018-04-06 15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/devel-project.py
2018-04-11 14:30:51.000000000 +0200
@@ -12,12 +12,16 @@
from osc.core import get_review_list
from osc.core import http_GET
from osc.core import makeurl
+from osc.core import meta_get_packagelist
from osc.core import show_package_meta
from osc.core import show_project_meta
from osclib.comments import CommentAPI
from osclib.conf import Config
+from osclib.core import devel_project_fallback
+from osclib.core import entity_email
from osclib.core import request_age
from osclib.stagingapi import StagingAPI
+from osclib.util import mail_send
BOT_NAME = 'devel-project'
@@ -96,6 +100,32 @@
if len(intersection) != len(desired):
print('{} missing {}'.format(devel_project, ', '.join(desired -
intersection)))
+def notify(args):
+ apiurl = osc.conf.config['apiurl']
+
+ # devel_projects_get() only works for Factory as such
+ # devel_project_fallback() must be used on a per package basis.
+ packages = meta_get_packagelist(apiurl, args.project)
+ maintainer_map = {}
+ for package in packages:
+ devel_project, devel_package = devel_project_fallback(apiurl,
args.project, package)
+ if devel_project and devel_package:
+ devel_package_identifier = '/'.join([devel_project, devel_package])
+ userids = maintainers_get(apiurl, devel_project, devel_package)
+ for userid in userids:
+ maintainer_map.setdefault(userid, set())
+ maintainer_map[userid].add(devel_package_identifier)
+
+ Config(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)
+ message = 'The following packages you maintain are in {}:\n\n-
{}'.format(
+ args.project, '\n- '.join(sorted(package_identifiers)))
+
+ mail_send(args.project, email, subject, message, dry=args.dry)
+ print('notified {} of {} packages'.format(userid,
len(package_identifiers)))
+
def requests(args):
apiurl = osc.conf.config['apiurl']
devel_projects = devel_projects_load(args)
@@ -227,6 +257,10 @@
parser_maintainer.set_defaults(func=maintainer)
parser_maintainer.add_argument('-g', '--group', action='append',
help='group for which to check')
+ parser_notify = subparsers.add_parser('notify', help='notify maintainers
of their packages')
+ parser_notify.set_defaults(func=notify)
+ parser_notify.add_argument('--dry', action='store_true', help='dry run
emails')
+
parser_requests = subparsers.add_parser('requests', help='List open
requests.')
parser_requests.set_defaults(func=requests)
common_args_add(parser_requests)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180406.ace73fe/issue-diff.py
new/openSUSE-release-tools-20180411.820d103/issue-diff.py
--- old/openSUSE-release-tools-20180406.ace73fe/issue-diff.py 2018-04-06
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/issue-diff.py 2018-04-11
14:30:51.000000000 +0200
@@ -21,6 +21,7 @@
import osc.core
from osclib.cache import Cache
+from osclib.core import entity_email
from osclib.core import package_list
from osclib.git import CACHE_DIR
from osclib.git import sync
@@ -54,12 +55,6 @@
return newbug.id
-def entity_email(apiurl, entity, key):
- url = osc.core.makeurl(apiurl, (entity, key))
- root = ET.parse(osc.core.http_GET(url)).getroot()
- email = root.find('email')
- return email.text if email is not None else None
-
def bug_owner(apiurl, package, entity='person'):
query = {
'binary': package,
@@ -69,10 +64,10 @@
bugowner = root.find('.//{}[@role="bugowner"]'.format(entity))
if bugowner is not None:
- return entity_email(apiurl, entity, bugowner.get('name'))
+ return entity_email(apiurl, bugowner.get('name'), entity)
maintainer = root.find('.//{}[@role="maintainer"]'.format(entity))
if maintainer is not None:
- return entity_email(apiurl, entity, maintainer.get('name'))
+ return entity_email(apiurl, maintainer.get('name'), entity)
if entity == 'person':
return bug_owner(apiurl, package, 'group')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180406.ace73fe/osclib/conf.py
new/openSUSE-release-tools-20180411.820d103/osclib/conf.py
--- old/openSUSE-release-tools-20180406.ace73fe/osclib/conf.py 2018-04-06
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/osclib/conf.py 2018-04-11
14:30:51.000000000 +0200
@@ -54,6 +54,10 @@
'legal-review-group': 'legal-auto',
'repo-checker': 'repo-checker',
'pkglistgen-product-family-include': 'openSUSE:Leap:N',
+ 'mail-list': '[email protected]',
+ 'mail-maintainer': 'Dominique Leuenberger <[email protected]>',
+ 'mail-noreply': '[email protected]',
+ 'mail-release-list': '[email protected]',
},
r'openSUSE:(?P<project>Leap:(?P<version>[\d.]+))': {
'staging': 'openSUSE:%(project)s:Staging',
@@ -94,6 +98,10 @@
'pkglistgen-include-suggested': '1',
'pkglistgen-delete-kiwis-rings': 'openSUSE-ftp-ftp-x86_64.kiwi
openSUSE-cd-mini-x86_64.kiwi',
'pkglistgen-delete-kiwis-staging': 'openSUSE-ftp-ftp-x86_64.kiwi
openSUSE-cd-mini-x86_64.kiwi',
+ 'mail-list': '[email protected]',
+ 'mail-maintainer': 'Ludwig Nussel <[email protected]>',
+ 'mail-noreply': '[email protected]',
+ 'mail-release-list': '[email protected]',
},
r'SUSE:(?P<project>SLE-15.*$)': {
'staging': 'SUSE:%(project)s:Staging',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180406.ace73fe/osclib/core.py
new/openSUSE-release-tools-20180411.820d103/osclib/core.py
--- old/openSUSE-release-tools-20180406.ace73fe/osclib/core.py 2018-04-06
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/osclib/core.py 2018-04-11
14:30:51.000000000 +0200
@@ -207,3 +207,18 @@
['build', project, repo, arch, package, filename],
{'view': 'fileinfo_ext'})
return ET.parse(http_GET(url)).getroot()
+
+def entity_email(apiurl, key, entity_type='person', include_name=False):
+ url = makeurl(apiurl, [entity_type, key])
+ root = ET.parse(http_GET(url)).getroot()
+
+ email = root.find('email')
+ if email is None:
+ return None
+ email = email.text
+
+ realname = root.find('realname')
+ if include_name and realname is not None:
+ email = '{} <{}>'.format(realname.text, email)
+
+ return email
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20180406.ace73fe/osclib/util.py
new/openSUSE-release-tools-20180411.820d103/osclib/util.py
--- old/openSUSE-release-tools-20180406.ace73fe/osclib/util.py 2018-04-06
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/osclib/util.py 2018-04-11
14:30:51.000000000 +0200
@@ -1,3 +1,4 @@
+from osc import conf
from osclib.core import project_list_prefix
@@ -79,3 +80,27 @@
return version
return None
+
+def mail_send(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]
+ msg = MIMEText(body)
+ msg['Message-ID'] = email.utils.make_msgid()
+ msg['Date'] = email.utils.formatdate(localtime=1)
+ msg['From'] = config['mail-{}'.format(from_key)]
+ msg['To'] = to
+ followup_to = config.get('mail-{}'.format(followup_to_key))
+ if followup_to:
+ msg['Mail-Followup-To'] = followup_to
+ msg['Subject'] = subject
+
+ if dry:
+ print(msg.as_string())
+ return
+
+ s = smtplib.SMTP(config.get('mail-relay', 'relay.suse.de'))
+ s.sendmail(msg['From'], [msg['To']], msg.as_string())
+ s.quit()
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.LzjGEx/_old 2018-04-16 12:48:06.479035381 +0200
+++ /var/tmp/diff_new_pack.LzjGEx/_new 2018-04-16 12:48:06.479035381 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20180406.ace73fe
-mtime: 1523021296
-commit: ace73fecaf4995fb8714639901ece1b6d276f570
+version: 20180411.820d103
+mtime: 1523449851
+commit: 820d1030e54f5c9bbfe9aeb69ca5b3b44a838aaa