<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d72cc9f7effa8082ef6005ef6943285c481e20af">https://github.com/macports/macports-ports/commit/d72cc9f7effa8082ef6005ef6943285c481e20af</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit d72cc9f7effa8082ef6005ef6943285c481e20af
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Sun Jun 2 12:40:50 2019 -0500
<span style='display:block; white-space:pre;color:#404040;'> buildbot-0.8: New port, based on buildbot 0.8.12
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See: https://trac.macports.org/ticket/53006
</span>---
devel/buildbot-0.8/Portfile | 90 ++++++++++++
.../buildbot-0.8/files/GitHubStatus-context.patch | 161 +++++++++++++++++++++
.../files/org.macports.buildmaster.template.plist | 34 +++++
.../files/patch-allowRecent_SQA_Migrate.diff | 60 ++++++++
.../patch-buildbot-status-web-console.py.diff | 11 ++
.../files/patch-buildbot-status-web-grid.py.diff | 28 ++++
.../patch-buildbot-status-web-waterfall.py.diff | 19 +++
.../files/patch-buildbot-steps-trigger.py.diff | 36 +++++
8 files changed, 439 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/Portfile b/devel/buildbot-0.8/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..7a99736
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,90 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name buildbot-0.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 0.8.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 3ec4f77befce8993c0ddca4416a494201be52fa5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 c6b66976dff712268566574d57131ec15e5682f6d4390cd5c8559bab0980c4d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 4834352
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set branch [join [lrange [split ${version} .] 0 1] .]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories devel python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license GPL-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {ryandesign @ryandesign} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description buildmaster for buildbot continuous integration system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description Buildbot is a system to automate the compile/test \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cycle of most software projects to validate code \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ changes. This port provides version 0.8.x of the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ master part of the system. Subsequent versions have \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a redesigned architecture and will be available soon \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in the buildbot port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage http://buildbot.net
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites pypi:b/buildbot/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname buildbot-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dist_subdir buildbot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.default_version 27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:py${python.version}-dateutil \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-jinja2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-sqlalchemy \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-sqlalchemy-migrate \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-twisted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append GitHubStatus-context.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-allowRecent_SQA_Migrate.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-buildbot-status-web-console.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-buildbot-status-web-grid.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-buildbot-status-web-waterfall.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-buildbot-steps-trigger.py.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.env NO_INSTALL_REQS=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set sharedir ${prefix}/share/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set docdir ${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set plistfile org.macports.buildmaster.template.plist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file mkdir ${worksrcpath}/macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ copy ${filespath}/${plistfile} ${worksrcpath}/macports/${plistfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -locale C "s|@PREFIX@|${prefix}|g" ${worksrcpath}/macports/${plistfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 -W ${worksrcpath} README COPYING CREDITS NEWS UPGRADING \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${sharedir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0755 ${worksrcpath}/macports/${plistfile} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${sharedir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_test port:py${python.version}-mock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.env PYTHONPATH=.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.cmd ${prefix}/bin/trial-${python.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target buildbot.test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url https://pypi.python.org/pypi/buildbot/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex buildbot\/([quotemeta ${branch}](?:\\.\\d+)*)/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+An example launchd plist file is available in ${sharedir}. After you have\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+created your build master, copy the plist to /Library/LaunchDaemons (as root)\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and edit the UserName and WorkingDirectory fields as needed. Then instruct\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+launchd to run it with:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo launchctl load -w /Library/LaunchDaemons/your.plist.name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/GitHubStatus-context.patch b/devel/buildbot-0.8/files/GitHubStatus-context.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9013989
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/GitHubStatus-context.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,161 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Add context field to GitHubStatus updates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/buildbot/buildbot/pull/1721
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/status/github.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/status/github.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,7 +60,7 @@ class GitHubStatus(StatusReceiverMultiService):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def __init__(self, token, repoOwner, repoName, sha=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ startDescription=None, endDescription=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- baseURL=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ baseURL=None, context=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Token for GitHub API.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -71,6 +72,7 @@ def __init__(self, token, repoOwner, repoName, sha=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._sha = sha or Interpolate("%(src::revision)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._repoOwner = repoOwner
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._repoName = repoName
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ self._context = context or Interpolate("buildbot/%(prop:buildername)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._startDescription = startDescription or "Build started."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._endDescription = endDescription or "Build done."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,10 +168,11 @@ def _getGitHubRepoProperties(self, build):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Return a dictionary with GitHub related properties from `build`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- repoOwner, repoName, sha = yield defer.gatherResults([
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ repoOwner, repoName, sha, context = yield defer.gatherResults([
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.render(self._repoOwner),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.render(self._repoName),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.render(self._sha),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ build.render(self._context),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not repoOwner or not repoName:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -185,6 +188,7 @@ def _getGitHubRepoProperties(self, build):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': sha,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': self._status.getURLForThing(build),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': str(build.getNumber()),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ defer.returnValue(result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,6 +204,7 @@ def _sendGitHubStatus(self, status):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ state=status['state'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_url=status['targetURL'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description=status['description'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context=status['context'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ success_message = (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/test/unit/test_status_github.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/test/unit/test_status_github.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,6 +132,8 @@ def test_initialization_required_arguments(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertEqual(status._sha, Interpolate("%(src::revision)s"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertEqual(status._startDescription, "Build started.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertEqual(status._endDescription, "Build done.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ self.assertEqual(status._context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Interpolate("buildbot/%(prop:buildername)s"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def test_custom_github_url(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,6 +273,7 @@ def test_sendStartStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._sendGitHubStatus = Mock(return_value=defer.succeed(None))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.build.getTimes = lambda: (1, None)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -286,6 +289,7 @@ def test_sendStartStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Augmented arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': 'pending',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': 'Build started.',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -330,6 +334,7 @@ def test_sendFinishStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._sendGitHubStatus = Mock(return_value=defer.succeed(None))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.build.getTimes = lambda: (1, 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -346,6 +351,7 @@ def test_sendFinishStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Augmented arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': 'success',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': 'Build done.',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -398,6 +404,7 @@ def test_getGitHubRepoProperties_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._repoOwner = Interpolate('owner')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._repoName = Interpolate('name')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._sha = Interpolate('sha')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ self.status._context = Interpolate('context')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._status = Mock()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._status.getURLForThing = lambda build: 'http://example.org'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.build.getNumber = lambda: 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -411,8 +418,8 @@ def test_getGitHubRepoProperties_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'repoOwner': 'owner',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': 'sha',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.org',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }, result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def test_getGitHubState(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -435,6 +442,7 @@ def test_sendGitHubStatus_success(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': u'state-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': u'targetURL-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': u'description-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': u'context-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._github.repos.createStatus = Mock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return_value=defer.succeed(None))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -450,6 +458,7 @@ def test_sendGitHubStatus_success(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ state='state-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_url='targetURL-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description='description-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context='context-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertLog(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -468,6 +477,7 @@ def test_sendGitHubStatus_error(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': u'state',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': u'targetURL',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': u'description',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': u'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error = MarkerError('fail-send-status')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._github.repos.createStatus = Mock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- docs/manual/cfg-statustargets.rst.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ docs/manual/cfg-statustargets.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1564,10 +1564,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoOwner = util.Interpolate("%(prop:github_repo_owner)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoName = util.Interpolate("%(prop:github_repo_name)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha = util.Interpolate("%(src::revision)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context = util.Interpolate("buildbot/%(prop:buildername)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gs = status.GitHubStatus(token='githubAPIToken',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoOwner=repoOwner,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoName=repoName,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha=sha,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context=context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ startDescription='Build started.',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endDescription='Build done.')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ buildbot_bbtools = util.BuilderConfig(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1599,6 +1601,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ In case any of `repoOwner`, `repoName` or `sha` returns `None`, `False` or empty string, the plugin will skip sending the status.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The `context` argument is passed to GitHub to differentiate between statuses. A static string can be passed or :class:`Interpolate` for dynamic substitution.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The default context is `buildbot/%(prop:buildername)s`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ You can define custom start and end build messages using the `startDescription` and `endDescription` optional interpolation arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Starting with Buildbot version 0.8.11, :class:`GitHubStatus` supports additional parameter -- ``baseURL`` -- that allows to specify a different API base endpoint.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/org.macports.buildmaster.template.plist b/devel/buildbot-0.8/files/org.macports.buildmaster.template.plist
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..c03f14a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/org.macports.buildmaster.template.plist
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<?xml version="1.0" encoding="UTF-8"?>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<plist version="1.0">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>Disabled</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <true/>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>EnvironmentVariables</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>PATH</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>@PREFIX@/bin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>Label</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>org.macports.buildmaster</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>ProgramArguments</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <array>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>@PREFIX@/bin/twistd-2.7</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>--nodaemon</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>--no_save</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>--python=buildbot.tac</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>--pidfile=buildmaster.pid</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </array>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>RunAtLoad</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <true/>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>UserName</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>aUserName</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>WorkingDirectory</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <string>/Users/pathToSlave</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>KeepAlive</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <key>SuccessfulExit</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <false/>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+</dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+</plist>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/patch-allowRecent_SQA_Migrate.diff b/devel/buildbot-0.8/files/patch-allowRecent_SQA_Migrate.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..c20d3e7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/patch-allowRecent_SQA_Migrate.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Patch based on...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 074c9fbadf169bb6cbc4fe2176be429a44170794 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: "Dustin J. Mitchell" <dustin@buildbot.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 2 Feb 2016 01:20:07 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Update SQLAlchemy and SQLAlchemy-Migrate version requirements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ buildbot/db/enginestrategy.py | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ docs/manual/installation/requirements.rst | 5 +++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ docs/relnotes/index.rst | 3 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setup.py | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 9 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git buildbot/db/enginestrategy.py buildbot/db/enginestrategy.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee0cc42..4b3a57e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/db/enginestrategy.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/db/enginestrategy.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -187,7 +187,7 @@ class BuildbotEngineStrategy(strategies.ThreadLocalEngineStrategy):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version_digits = re.sub('[^0-9.]', '', version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version_tup = tuple(map(int, version_digits.split('.')))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ except TypeError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return # unparseable -- oh well
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if version_tup < (0, 6):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ raise RuntimeError("SQLAlchemy version %s is too old" % (version,))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git docs/relnotes/index.rst docs/relnotes/index.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6930aab..17bc7ab 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- docs/relnotes/index.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ docs/relnotes/index.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,6 +29,9 @@ Deprecations, Removals, and Non-Compatible Changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Note that Buildbot is not yet compatible with MySQL-5.7.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ See :bug:`3421` for status and to help out.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* The ``buildbot`` Python dist now (finally) requires SQLAlchemy-0.8.0 or later and SQLAlchemy-Migrate-0.9.0 or later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ While the old pinned versions (0.7.10 and 0.7.2, respectively) still work, this compatibility is no longer tested and this configuration should be considered deprecated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Changes for Developers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ~~~~~~~~~~~~~~~~~~~~~~
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -u setup.py.orig setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig 2015-04-21 01:53:41.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py 2016-02-09 14:39:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,11 +381,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setup_args['install_requires'] += [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # sqlalchemy-0.8 betas show issues with sqlalchemy-0.7.2, so stick to 0.7.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'sqlalchemy >= 0.6, <= 0.7.10',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # buildbot depends on sqlalchemy internals, and this is the tested
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'sqlalchemy-migrate==0.7.2',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'sqlalchemy>=0.8.0',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'sqlalchemy-migrate>=0.9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'python-dateutil>=1.5',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setup_args['tests_require'] = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.6.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/patch-buildbot-status-web-console.py.diff b/devel/buildbot-0.8/files/patch-buildbot-status-web-console.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..4a7fa86
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/patch-buildbot-status-web-console.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/status/web/console.py.orig 2015-04-21 00:53:41.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/status/web/console.py 2016-08-05 08:59:02.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -316,7 +316,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for tag in builderList:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ count += len(builderList[tag])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tags = sorted(builderList.keys())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tags = util.naturalSort(builderList.keys())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cs = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/patch-buildbot-status-web-grid.py.diff b/devel/buildbot-0.8/files/patch-buildbot-status-web-grid.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..a445b5b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/patch-buildbot-status-web-grid.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/status/web/grid.py.orig 2015-04-21 00:53:41.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/status/web/grid.py 2016-08-05 15:42:30.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,6 +13,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Copyright Buildbot Team Members
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from buildbot import util
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from buildbot.sourcestamp import SourceStamp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from buildbot.status.web.base import HtmlResource
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from buildbot.status.web.base import build_get_class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -204,7 +205,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'stamps': [map(SourceStamp.asDict, sstamp) for sstamp in stamps],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ })
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sortedBuilderNames = sorted(status.getBuilderNames())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sortedBuilderNames = util.naturalSort(status.getBuilderNames())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxt['builders'] = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -273,7 +274,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'stamps': [map(SourceStamp.asDict, sstamp) for sstamp in stamps],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ })
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sortedBuilderNames = sorted(status.getBuilderNames())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sortedBuilderNames = util.naturalSort(status.getBuilderNames())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxt['sorted_builder_names'] = sortedBuilderNames
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxt['builder_builds'] = builder_builds = []
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/patch-buildbot-status-web-waterfall.py.diff b/devel/buildbot-0.8/files/patch-buildbot-status-web-waterfall.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2a14cee
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/patch-buildbot-status-web-waterfall.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/status/web/waterfall.py.orig 2015-04-21 00:53:41.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/status/web/waterfall.py 2016-08-06 11:19:40.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -325,6 +325,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for bldr in builders:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tags = bldr.getTags()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ allTags.update(tags or [])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ allTags = util.naturalSort(list(allTags))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxt['show_tags'] = show_tags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxt['all_tags'] = allTags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -585,7 +586,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for builderName in builderNames:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ builder = status.getBuilder(builderName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tags.update(builder.getTags() or [])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tags = sorted(tags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tags = util.naturalSort(list(tags))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctx['tags'] = tags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template = request.site.buildbot_service.templates.get_template("waterfall.html")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot-0.8/files/patch-buildbot-steps-trigger.py.diff b/devel/buildbot-0.8/files/patch-buildbot-steps-trigger.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..192859b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot-0.8/files/patch-buildbot-steps-trigger.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,36 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/buildbot/buildbot/pull/2052
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/buildbot/buildbot/commit/246df8f53945f68aa3ef8c33254ca51dd4794a8e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/steps/trigger.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/steps/trigger.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -181,11 +181,11 @@ def start(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ was_exception = was_failure = False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- brids = {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ brids = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for was_cb, results in rclist:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if isinstance(results, tuple):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ results, some_brids = results
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- brids.update(some_brids)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ brids.extend(some_brids.items())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not was_cb:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ was_exception = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,7 +207,7 @@ def start(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def add_links(res):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # reverse the dictionary lookup for brid to builder name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- brid_to_bn = dict((_brid, _bn) for _bn, _brid in brids.iteritems())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ brid_to_bn = dict((bt[1], bt[0]) for bt in brids)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for was_cb, builddicts in res:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if was_cb:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -218,7 +218,7 @@ def add_links(res):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ url = master.status.getURLForBuild(bn, num)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.step_status.addURL("%s #%d" % (bn, num), url)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- builddicts = [master.db.builds.getBuildsForRequest(br) for br in brids.values()]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builddicts = [master.db.builds.getBuildsForRequest(br[1]) for br in brids]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ res = yield defer.DeferredList(builddicts, consumeErrors=1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_links(res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>