<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-infrastructure.

</pre>
<p><a href="https://github.com/macports/macports-infrastructure/commit/f6050e9d115f77a68487e6a57413d50eb1fdb7c9">https://github.com/macports/macports-infrastructure/commit/f6050e9d115f77a68487e6a57413d50eb1fdb7c9</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new f6050e9  Email notification improvements
</span>f6050e9 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit f6050e9d115f77a68487e6a57413d50eb1fdb7c9
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Jan 29 18:45:03 2017 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Email notification improvements
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Only compile the regex used in portWatcherMessageFormatter once.
</span><span style='display:block; white-space:pre;color:#404040;'>    Remove unneeded replacement of ';' with '@'.
</span><span style='display:block; white-space:pre;color:#404040;'>    Add support for testing mail notifications in non-production mode.
</span>---
 buildbot/master.cfg | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/buildbot/master.cfg b/buildbot/master.cfg
</span><span style='display:block; white-space:pre;color:#808080;'>index b281353..87c80ce 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/buildbot/master.cfg
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/buildbot/master.cfg
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -822,6 +822,8 @@ class PortsMailNotifier(status.MailNotifier, object):
</span> #            dl.append(d)
         return defer.gatherResults(dl)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+portWatcherMessageFormatter_pattern = re.compile(r"^Building '(?P<port>.*?)'.*?(\(failed to install dependency '(?P<dependency>.*?)'\))?( maintainers: (?P<maintainers>.*?)\.)?$")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> def portWatcherMessageFormatter(mode, name, build, results, master_status):
     interested_users = set()
     result = util.Results[results]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -845,13 +847,13 @@ def portWatcherMessageFormatter(mode, name, build, results, master_status):
</span>         summary_log  = [x for x in summary_step.getLogs() if x.getName() == 'stdio'][0]
         failed_ports = set()
         maintainers_to_notify = set()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        pattern = re.compile(r"^Building '(?P<port>.*?)'.*?(\(failed to install dependency '(?P<dependency>.*?)'\))?( maintainers: (?P<maintainers>.*?)[.])?$")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        global portWatcherMessageFormatter_pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pattern = portWatcherMessageFormatter_pattern
</span>         # iterate through all the ports being built
         for line in summary_log.getText().splitlines():
             if 'ERROR' not in line:
                 continue
             # in case of a build error, print the error and add the broken port(s) to the list
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            line = line.replace(';', '@')
</span>             text.append('\t' + line.replace(' maintainers:', '\n\t> maintainers:'))
             match = pattern.match(line)
             if match:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -887,6 +889,16 @@ def portWatcherMessageFormatter(mode, name, build, results, master_status):
</span>             interested_users)
 
 if config['production']:
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    notifyUsers = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    exception_recipients = ['macports-builds@lists.macports.org', 'admin@macports.org']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build_recipients = ['macports-builds@lists.macports.org']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    notifyUsers = False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if 'notifyemail' in config:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        exception_recipients = [config['notifyemail']]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build_recipients = [config['notifyemail']]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if config['production'] or 'notifyemail' in config:
</span>     c['status'].extend((
         # send mail about base failures to users on the blamelist
         status.MailNotifier(
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -897,28 +909,28 @@ if config['production']:
</span>             lookup='',
             mode=('problem'),
             builders=base_buildernames,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            extraRecipients=['macports-builds@lists.macports.org'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extraRecipients=build_recipients,
</span>             #smtpPort=25,
             #relayhost='localhost',
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            sendToInterestedUsers=True),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            sendToInterestedUsers=notifyUsers),
</span>         PortsMailNotifier(
             fromaddr='buildbot@macports.org',
             extraHeaders={'Reply-To': 'noreply@macports.org'},
             lookup='',
             mode=('failing'),
             builders=portwatcher_buildernames,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            extraRecipients=['macports-builds@lists.macports.org'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extraRecipients=build_recipients,
</span>             #smtpPort=25,
             #relayhost='localhost',
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            sendToInterestedUsers=True,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            sendToInterestedUsers=notifyUsers,
</span>             portMessageFormatter=portWatcherMessageFormatter),
         # notifications about exceptions
         status.MailNotifier(
             fromaddr='buildbot@macports.org',
             extraHeaders={'Reply-To': 'noreply@macports.org'},
             mode=('exception'),
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            extraRecipients=['macports-builds@lists.macports.org', 'admin@macports.org'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            sendToInterestedUsers=False)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extraRecipients=exception_recipients,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            sendToInterestedUsers=notifyUsers)
</span>         ))
 
 ####### PROJECT IDENTITY #######
</pre><pre style='margin:0'>

</pre>