<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Buildbot - Medium]]></title>
        <description><![CDATA[Blog posts about buildbot - Medium]]></description>
        <link>https://medium.com/buildbot?source=rss----1538bf399d81---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Buildbot - Medium</title>
            <link>https://medium.com/buildbot?source=rss----1538bf399d81---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 31 May 2026 12:00:40 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/buildbot" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Buildbot 2.4.1]]></title>
            <link>https://medium.com/buildbot/buildbot-2-4-1-b7e86bbd8d18?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/b7e86bbd8d18</guid>
            <category><![CDATA[release-notes]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Wed, 11 Sep 2019 20:51:35 GMT</pubDate>
            <atom:updated>2019-09-11T20:51:35.428Z</atom:updated>
            <content:encoded><![CDATA[<p>I am happy to announce the release of Buildbot 2.4.1</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OSKndM_0IBGUWEyrjYUP5Q.png" /></figure><p>This is a small end of summer release, but with a few important bug fixes</p><ul><li>Most of the poller but gitpoller where broken because of the new committer field, which was marked as non nullable in the sql schema. This is a bug that only happen for new instances of buildbot 2.4.0 (not for upgraded bots)</li><li>The custom_templates feature is now working again, and allows people to override some of the pages of Buildbot to customize the branding.</li></ul><p>You can find detailed release notes as usual <a href="http://docs.buildbot.net/2.4.1/relnotes/index.html">here</a></p><p>Thanks to our contributors!</p><pre>$ git shortlog --no-merges -ns v2.4.1...v2.4.0</pre><pre>    33  Povilas Kanapickas<br>    12  Pierre Tardy<br>     2  Rajdeep Bharati<br>     1  Mikhail Sobolev<br>     1  afg<br>     1  angeloudy<br>     1  matthieu</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b7e86bbd8d18" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-2-4-1-b7e86bbd8d18">Buildbot 2.4.1</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MacPorts-Buildbot GSoC Report]]></title>
            <link>https://medium.com/buildbot/macports-buildbot-gsoc-report-e99d44b79ac9?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/e99d44b79ac9</guid>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[buildbot]]></category>
            <category><![CDATA[angularjs]]></category>
            <category><![CDATA[vuejs]]></category>
            <category><![CDATA[macports]]></category>
            <dc:creator><![CDATA[Rajdeep Bharati]]></dc:creator>
            <pubDate>Tue, 27 Aug 2019 16:19:23 GMT</pubDate>
            <atom:updated>2019-08-27T16:19:23.535Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*KYA9OICVUbR_ceYWoqw3Lg.png" /></figure><h3>Introduction</h3><p>This summer I participated as a Google Summer of Code student under MacPorts. You can find my project abstract here: <a href="https://summerofcode.withgoogle.com/projects/#5899236997070848">MacPorts Custom Views Plugin for Buildbot</a>. It has been a wonderful experience so far, and I learned a lot about developing large scale software, thanks to my mentors: <a href="https://github.com/mojca">Mojca Miklavec</a>, <a href="https://github.com/tardyp">Pierre Tardy</a>, <a href="https://github.com/p12tic">Povilas Kanapickas</a>, and all other members of the Buildbot and MacPorts communities; who helped me with my doubts and provided invaluable feedback.</p><h3>The Project</h3><p>I primarily worked on 3 tasks related to the Buildbot CI framework, which is used by MacPorts:</p><h4>1. Custom Views Plugin</h4><p>Buildbot frontend is written in AngularJS 1.x, which is an old framework for building single-page applications. Nowadays, developers prefer newer technologies such as Vue or React, which are comparatively easier to use. I wrote a plugin that would let developers write custom UI components using Vue. It is available here: <a href="https://github.com/macports/buildbot-macports-custom-views">https://github.com/macports/buildbot-macports-custom-views</a>.</p><p>The basic plugin is ready and can be used directly by MacPorts (using PyPI package/port) or by hacking it (if other organizations/individuals want to use it for their Buildbot).</p><p>The challenging part was having multiple views (pages) inside one app. In the default Buildbot plugins, there is usually one page (a single item in navbar) inside one plugin. In this, I created a main AngularJS module and directives for each page (which is a single group in <a href="https://docs.buildbot.net/latest/developer/www-base-app.html#routing">glMenuServiceProvider</a>).</p><p>Another issue that I faced was manipulating the URL from Vue single-file components. One of the requirements was being able to bookmark some <a href="https://docs.buildbot.net/latest/manual/concepts.html#changes">changes</a> by id so that it can be shared/viewed later. At first, I tried using vue-router, however, I later realized that it wouldn’t work since the URL was controlled by AngularJS behind the scenes. So, we decided to use the <a href="https://docs.angularjs.org/api/ng/service/$location">$location API</a>. This was tricky to implement. The new components allow us to see changes/builds before/after a particular date.</p><p>Here’s a demo of the changes list page:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FDriLyY872zE%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DDriLyY872zE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDriLyY872zE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e76eda22a19bac97227108f569258562/href">https://medium.com/media/e76eda22a19bac97227108f569258562/href</a></iframe><figure><img alt="Page showing builds for port nodejs10" src="https://cdn-images-1.medium.com/max/1024/1*qgNYQ-cHutZARroT2C5iqw.png" /><figcaption>Page showing recent builds for port nodejs10</figcaption></figure><p><strong>What is left?</strong></p><ul><li>Right now, there’s no support for live updates in the plugin UI (see issue <a href="https://github.com/macports/buildbot-macports-custom-views/issues/22">#22</a>).</li><li>The Ports Build History page is using the <a href="https://github.com/macports/macports-webapp">macports-webapp</a> API to fetch data. But this would be removed, and the view would be standalone (without any external API). The work is in progress in pull <a href="https://github.com/macports/buildbot-macports-custom-views/pull/21">#22</a>.</li></ul><h4>2. MacPorts Buildmaster</h4><p>MacPorts was using Buildbot 0.8, hence the buildmaster needed a revamp to port to Buildbot 2.x. MacPorts has over 20k ports, and to tackle something of that scale, we decided to use <a href="https://docs.buildbot.net/latest/manual/configuration/builders.html#virtual-builders">virtual builders</a>. In the new setup, we have a portwatcher, which is a builder that triggers build for a port (or list of ports). Now, for each of those ports, there is one virtual builder that starts running a build.</p><p>A mock setup that does fake builds is available here: <a href="https://github.com/macports-gsoc/macports-buildbot">https://github.com/macports-gsoc/macports-buildbot</a></p><p>A demo Buildbot instance has been deployed <a href="http://ec2-3-17-139-39.us-east-2.compute.amazonaws.com">here</a>.</p><p><strong>What is left?</strong></p><ul><li>We need to tweak the master.cfg to do real builds and deploy it to Braeburn (MacPorts server).</li></ul><h4>3. Features added to Buildbot</h4><p>With over 20k ports, there would be more than 200k builders, which would make the default www plugins useless if used as-is. So I added some features like tagging, pagination, searching, etc to make it usable for large setups.</p><p>The builders page would now let us see all the ports, thanks to virtual builders.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FWI624pWY2lA%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWI624pWY2lA&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FWI624pWY2lA%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/f54dc6f6b95bfd17002067318b139130/href">https://medium.com/media/f54dc6f6b95bfd17002067318b139130/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fs6jIqVkX3mI%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Ds6jIqVkX3mI&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fs6jIqVkX3mI%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/90680121eb10a4bdd4c64c692e289bbc/href">https://medium.com/media/90680121eb10a4bdd4c64c692e289bbc/href</a></iframe><p><strong>Builds for Change page</strong></p><p>I created a webpage that displays all builds for a change (see <a href="https://github.com/buildbot/buildbot/issues/3926">#3926</a>). To do so, I added an endpoint to the data API to get all builds for a given change.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FO9vEwKrStjE%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DO9vEwKrStjE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FO9vEwKrStjE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/84616a300590b5314ce00ed072fc3292/href">https://medium.com/media/84616a300590b5314ce00ed072fc3292/href</a></iframe><p><strong>Committer field added to changes</strong></p><p>Earlier, Buildbot had an author field for a change. In version control systems like git, the author and committer may be different. This is important for MacPorts since the author may lack commit permissions, and in case of build failure, both the author and the committer need to be notified.</p><ul><li>My commits to Buildbot are <a href="https://github.com/buildbot/buildbot/commits?author=rajdeepbharati">here</a></li><li>Merged pull requests are <a href="https://github.com/buildbot/buildbot/pulls?q=is%3Apr+is%3Aclosed+author%3Arajdeepbharati">here</a></li><li>Pending pull requests are <a href="https://github.com/buildbot/buildbot/pulls/rajdeepbharati">here</a></li><li>My commits to macports-ports are <a href="https://github.com/macports/macports-ports/commits?author=rajdeepbharati">here</a></li></ul><p><strong>What is left?</strong></p><p>There are a few issues related to console_view which need some further discussion and design decisions (see <a href="https://github.com/buildbot/buildbot/pull/4951">#4951</a>).</p><ul><li>All builds are not displayed for a change (<a href="https://github.com/buildbot/buildbot/issues/3945">#3945</a>)</li><li>Incorrect grouping of builds when using force/periodic scheduler (<a href="https://github.com/buildbot/buildbot/issues/3995">#3995</a>)</li></ul><p>These could be fixed if we used the APIs rather than having the complex frontend code which is currently implemented. However, this would lead to the chicken and egg problem: if we use the builds for change API, then we wouldn’t be able to get the forced/nightly builds (which were not triggered by any change), and if we use the changes for build API, then we wouldn’t get all the changes. We might eventually create 2 console views to fix these issues.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e99d44b79ac9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/macports-buildbot-gsoc-report-e99d44b79ac9">MacPorts-Buildbot GSoC Report</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 2.4.0]]></title>
            <link>https://medium.com/buildbot/buildbot-2-4-0-c20dd49586bd?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/c20dd49586bd</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[macports]]></category>
            <category><![CDATA[release-notes]]></category>
            <dc:creator><![CDATA[Povilas Kanapickas]]></dc:creator>
            <pubDate>Sun, 18 Aug 2019 17:58:10 GMT</pubDate>
            <atom:updated>2019-08-18T17:58:10.354Z</atom:updated>
            <content:encoded><![CDATA[<p>I am pleased to announce the release of Buildbot 2.4.0.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1022/1*BLx7O1C66QF-knP8Ans6qA.png" /></figure><p>This release is bigger than usual as it contains three months worth of work instead of the usual one. The reason for this is that the web UI build system has been completely rewritten to use the standard webpack toolset instead of a custom toolset based on gulp. It took us a while to make sure everything works as before. There can still be some remaining issues. If you see any, please contribute by writing bug reports.</p><p>Another highlight of the release is many small enhancements of the web UI by <a href="https://medium.com/u/2ddcf44a9790">Rajdeep Bharati</a> who has been working on Buildbot as part of his <a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a> project. He is improving the web UI to handle several tens of thousands of builders which is required by the MacPorts project for their continuous integration system. Not all changes have landed in this release yet, but eventually working on Buildbot installations of this size will become more convenient.</p><p>This release contains almost 30 bug fixes and enhancements total. The release notes can be found as usual <a href="http://docs.buildbot.net/2.4.0/relnotes/#buildbot-2-4-0-2019-08-18">in our documentation</a>.</p><p>Thanks a lot to our contributors!</p><pre>git shortlog --no-merges -ns v2.4.0...v2.3.1<br>   148  Povilas Kanapickas<br>    39  Rajdeep Bharati<br>    22  Pierre Tardy<br>    13  Bertrand Demiddelaer<br>    11  Philip Guyton<br>     6  Gary Benson<br>     5  Matias Kangasjärvelä<br>     5  Pawel Krawczyk<br>     4  Georgi Valkov<br>     3  Jan Marker<br>     3  Volker Braun<br>     2  Cyril Roelandt<br>     2  Gorka Eguileor<br>     2  Josh Bialkowski<br>     2  Mukund Sivaraman<br>     2  PhilippSelenium<br>     1  Aki Tuomi<br>     1  Alan Ray<br>     1  Andrew Maier<br>     1  Andrew Spiers<br>     1  Chandler Bullock<br>     1  Malcolm Parsons<br>     1  Michael Corcoran<br>     1  Mojca Miklavec<br>     1  Robin Jarry<br>     1  Shinnok<br>     1  Tao ZHOU<br>     1  Thomas Molines<br>     1  Titouan Christophe<br>     1  Uri<br>     1  Valentin Haenel<br>     1  abull<br>     1  buildbot<br>     1  d4ryus<br>     1  nde<br>     1  vibbo</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c20dd49586bd" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-2-4-0-c20dd49586bd">Buildbot 2.4.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 2.3.0]]></title>
            <link>https://medium.com/buildbot/buildbot-2-3-0-5c1d687c7e49?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/5c1d687c7e49</guid>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Mon, 06 May 2019 20:53:22 GMT</pubDate>
            <atom:updated>2019-05-06T20:52:52.991Z</atom:updated>
            <content:encoded><![CDATA[<p>I am happy to announce the release of Buildbot 2.3.0.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/543/1*cosdOKzsVpMTtfS3xJZEew.png" /></figure><p>This release has been made and signed by <a href="https://medium.com/u/33d0c6e9cd8b">Povilas Kanapickas</a>. The tag and pypi packages have been signed by its gpg key of ID C6F7AE200374452D. This key has been signed by my own key and appended to this post (and to the mailing list annoucement). Povilas has been a great contributor for Buildbot this last year, and he will be also helping as release manager.</p><p>The highlight for this release is the conversion of the UI frontend from coffeescript to javascript. More precisely to ECMAScript6 (ES6). This is a big effort to streamline the tech of our frontend. This will help to lower the bar for contributors to hack on the UI, and also help in packaging of the front end to debian distribution. The next step is to switch the UI build system from custom <a href="https://gulpjs.com/">gulp</a> based to more standard <a href="https://webpack.js.org/">webpack</a>. This work is already nearly done <a href="https://github.com/buildbot/buildbot/pull/4751">here</a>.</p><p>As we are doing this transition, we do it step by step. And one of the inevitable step is to drop support for <a href="http://coderesponsible.com/wp-content/uploads/evil-ie-200x200.jpg">IE11</a> for a few releases. We know that IE11 is only 2% of the readers of docs.buildbot.net, and we though this should be fine temporarily disable. We believe that we can put it back when we fully migrate to webpack, and upgrade our version of angularJS. If you have IE11 users for some reason that cannot switch to modern browser, please skip this release.</p><p>You can see the full release notes as usual inside <a href="http://docs.buildbot.net/latest/relnotes/index.html#buildbot-2-3-0-2019-05-06">the documentation</a> and in the github <a href="https://github.com/buildbot/buildbot/releases">release page</a>. You can even subscribe there by using the watch button, then releases.</p><p>A thanks to our contributors!</p><pre>git shortlog --no-merges -ns v2.3.0...v2.2.0<br>   126  Povilas Kanapickas<br>    57  Pierre Tardy<br>     6  bb-nl<br>     3  George Shramov<br>     2  Jan Marker<br>     2  Robin Jarry<br>     2 <a href="mailto:uglycoyote@gmail.com">uglycoyote@gmail.com</a><br>     1  Thomas Molines<br>     1  Volker Braun</pre><pre>-----BEGIN PGP PUBLIC KEY BLOCK-----<br>Version: GnuPG v1</pre><pre>mQENBE53SRgBCADJBhoKw9dmUYjNm9njQpq0uEDXQb/yBJQ/dJiNbEke8rKF0+eN<br>XU1bbZzIx6mjywNWsVFiFQV+ty43pO2FoKctD6gPyHYdPM1ZrS6ZlaKv6wXU9HHt<br>5Wz8znnP5bifwUh+sjkgQ0OETTcv82xmslblFNZWm14EuqKmMbl5jmqAJVpmnX5o<br>UeWzRG+/eSmg4gV6MQFdNzBX6SaEPShcm4U/qQ+vmxsJtjwjnINHE3UB0nPEQHju<br>BQAE2FaztYMkm9i3FpVYRfwdz31PGacJxqaTKNPSBUKfHv00dE5nEa9CrJsZpmRa<br>BRK402zYunFVCI9Sjvijl99P4gfgRClot3WzABEBAAG0JVBvdmlsYXMgS2FuYXBp<br>Y2thcyA8cG92aWxhc0ByYWRpeC5sdD6JATsEEwECACUCGwMGCwkIBwMCBhUIAgkK<br>CwQWAgMBAh4BAheABQJSkk6WAhkBAAoJEMb3riADdEUtQT4H/1AFIMJMx8n1+Aco<br>Zq+xn09nDFmThhmRuu+fiASVNEmiBUcM81DR2UajoYm+FA1W1hP3kAiCLKigO9Xo<br>bkZ0BCPxzH5n6fnUCNa1Rtnz5u+a4izxvOkgev1XnGPOIKw8oSSGtl4Wclsfihvs<br>pSDNT9kSBv4+PJp6eIBTsaf5KZb20lj/jp9eiRF5jC5DKbj/7PsERa8E6AvWBMNI<br>43qIxsDckW7iBLomTzO/nSw/eAxaNwszIJ831bAM3tabA29XmTsVYXyFGWo/WEFY<br>zqos/7zy2+qWhOw0qI7RJnDG2Tyd0gZzas9F7d1g2bONM75f0CHBrqkud9OweBYQ<br>Z4uTbsCJATgEEwECACIFAlKSTpMCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA<br>AAoJEMb3riADdEUtZvEH/0/GPe6/mg5/0lotGzD9v0wEMC/6w9Wt1sIGnB266sOS<br>O5zPgUmbsdvl4ijpWL0bcxuWSwpNn0CFKU2k20oqlh+ppUrR8YwPMDcdzfk3zXDP<br>TvxrIgjJHi5mg3rRtVg1H2Qy1HrlRShCuLw3N5wHrGcXcJp0Exvq/HAZvAAVNdGS<br>7HgcFPMWClBen5rRGzviHt9uxLuhh9BYyg4H4Lk3fJnPNa6Ry2T1bF/+mFnv9Zoe<br>rTe5lICxSLcY0L4N50rCE4fHtbV33EdcTCmbOWvCiEHUKD5ugQ3OsN0IKNI+1okb<br>pNULWHJc60JdzLBBr5bOblAjjxJmTTBvfFey/7Ce2CKJAhwEEwECAAYFAlzQmI8A<br>CgkQrs1Fa00lMfxvpRAAm7qGkZnLG5YV9oGcuHCudsu+687T7LGsOY33VaozP887<br>p+OGKbm0aIJwCZ3iOryy2NgQbnlwPmU7OCQnBmYIpKvh2HIEhkjgLmkzoq1SIDrW<br>TLBP4LbPXxgz5mhHceuRy7xhNJifa+a2uRyYiPwOlNFUCvwQTxKVw91MLTckhIUD<br>TwSSIbi66zUBXT3GZMucvPtWEY5+4AksQG+v7lVJCg2wU616B1/vQZ5KKoinE3XF<br>vYCHU7Dw/oxqdhqNbqYcgIXYIVbWz2lE/XOepK8eKkfE0iVjFjd6oq4kN1qnar7O<br>WaIjPnhZEPGhkDhUJWkxEiwtJbxytYRBf8bin9pIdW1NVAg8xD0nTtA1AnXRnij4<br>eTDJ22qLP5nefDjywEXoL7I7t+Venw3vek84GlQpO8I6oPuK/NKEGCxQPwchJLNR<br>LXxTea0VeljkIBG1Jrw649+OrTkS84TG55LWloPAcfOtHJFWSMFQsY/MoRwwCom7<br>GnNxK9eL92Lc0U4SfQYASBQnwOfNF1oDid8kk2bF/4qIiRVp7XI9XsZ6nq0+51IF<br>rD5DZZdo9tQJtKKjEo6G8XkpoqmyBLNQHFRcqFlvyLtUx65NWzCmJ+xHbuzoRWqe<br>GgyCDujleSG4RAg4BZlohPMyYpqAIL19Xk0+2qARFOpP1syRxO1ExWiUc3AmpHW0<br>MVBvdmlsYXMgS2FuYXBpY2thcyA8cG92aWxhcy5rYW5hcGlja2FzQGdtYWlsLmNv<br>bT6JATgEEwECACIFAlKPs9YCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJ<br>EMb3riADdEUtmNEIALt73RvLxEzSBjEjQ5Ir0imUhLMGWP3jk2A8/4z3smfjcGOL<br>atLvOLVZOpHwFa0F4+hS5G1UOv6w0nkhFqw6EZdVheETNJCO/z3L4UxBlbYS9c/j<br>BxBgiE5Z/800gndV1bOpqQJs6YRFbHF+T8X7KC0mRU4kjx9mMtBj7/uPbX4wtwsM<br>CxvhjxBhiZAridO9g3DfSYTfj/Ze4Q4ijfey1vvGkhPpzT/8TJf4MrT6UfvUq8YW<br>LAldk9b4lldwpQAwAHNr5iudz7/Vy9yBrp2AcIgqidVF1FKShxxW4BqDj8kF2nMe<br>nBQ1l0P0tPtRGOkrja6uYXd1AZvQKM2g91bsZtmJAhwEEwECAAYFAlzQmI8ACgkQ<br>rs1Fa00lMfx6lRAAjlQb7qu75f/R7ew5NxnPPDV2tDAILL8wnHAtSrgsYxUdf5FB<br>alescN1qE19Zjcx81yhV1vAI4bSPKF72sf2T4867q6rpCnSw1iTBsQI8D2K34H1b<br>362XATGBLtZ1TY7tOHaHZTJrOFNHc7ayFG6IGgqXtsbBW/FPGDvqI7KmzKKNYUKd<br>sy3o2FE4zK4iEre1446ZF7RhPXfyy+AQ9CpXaQhmw7R+6oqL17Kj3WxL5r+XhL/T<br>Zjmn2nJgxJdF4jdUz/MGpG5AOwHC6eUfdHULjMdu8OCQtf9WfZGGONc/YWnVEv3/<br>FX8UW9g0bbZX4DgKiUGXAZkkVqbOpw8CUL3NW8tCAtnvbIokl00+LS4aVxgw1yjJ<br>tv8iAXwWH2Gns/b0yeQcBIrPZsitQahMMz89jeEpuuargUt7rt70YyAv1esKvc7G<br>57OSrMu1YZi9XD/uqWQUfcSK1tJgN6Zfr9wwvIpKnFH2WL+245Qwp10mDFWvDu5F<br>6KjXlR7qFBpJBZdOflLc1paY7oCRyDEy3aSFToKbGK+9BZzYO/IDAfmH8wNPmQmg<br>s6OSLhW3XCFf6+xZbtFzGSxC290gZRbFS3vXZQeY567vLxcejnUO8lKGfbRxsiqe<br>Qkj4WGuLN+26QILCoGwEn3GP3aF2VXFkrPY4VvNWbmwyR3retuNKL+SkoSK0KVBv<br>dmlsYXMgS2FuYXBpY2thcyA8cG92aWxhc2thbkBnbWFpbC5jb20+iQE4BBMBAgAi<br>BQJSj7PDAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDG964gA3RFLeSd<br>CACXbnk61ttGl5E1EZWs+Bn0SU1yShsz8WDoXdqMFir2Qnzxd77AcSpYmJzLkxVz<br>Mo4fczXyDE7B5H7F77kABxMHg6mFPdy3aWyML+xK/EbWl6KLh0CDLeyFbTGZxqvz<br>zJyRpBfTG77u5LjKaWdLLOHZ3xqSEyEq8noQke+0KmA3/DCIPyUB9heZuZ9sQfn/<br>hOMipWf+X1LU15OKzvcf0Va5CljsNFZW4Cvt8jjIplvL3zwHwaBO+NV0UvfmYQ5+<br>mwokDK7S3o4s48HTiwKPt5EJtSkC1okNNwKICmeAZvaMF+9Tro8ODoF6nQCqCwpg<br>yqlwe5bEWXFcsdntPy3jY3UGiQIcBBMBAgAGBQJc0JiPAAoJEK7NRWtNJTH8Ge0Q<br>ALD6ooV98EfeIfe9wkMaEeJ5M3YBTCozB4BSp3nIUukYuBI0vkWzAQHPJz5IhUgS<br>BYMFNwCDv+0eXnJZ6XjR2D+nk00nEfD/04WkGFh0vjJHPjig2WYvCnSH+JNItfgv<br>DFSr/wpigBcTX8cI2A3YrFAPZhpi4fQH2cCNmiu+8FiDJBAmNjD1M2nWb0Si7uT1<br>a4YKRDbWu8pKysMUPZefGUPtN9e2kWuTikFbd07WywVI5qUGXhuBYXXg32I2CkI6<br>cepqxxa5zFJHeX/1LG/NouHXjBgElKm/7zQ+K9ss5CyZyQg/OkAc0Y8ZxGoOjCFd<br>TFtqyaXD7kQwRGTa2da2a60cgcRVF/gtKshsiJt1u4O8Gf9f5tlMfz88pC0MieST<br>VwA21DR1m7KpMXot/XhZqUm08ObMKGsUthlyL2iCWKHhHm/MsWNjUed/bMji0WGv<br>9/XbXanePXCWViaiS+U2XFCNhDLzv/svsyZkqPET2cl7YOS+urmqbT41aV/8ev8k<br>GdLljDmLgNJURix8TrzaxlK0J7GGas+cowSHBC7vGL360pCo7yfjymwW0wV5UVSG<br>cdXCn2nXX2ild5uQhVW9Qj54Jfhi5QKKUoSgbNhg7yNd/APvKW0ULN2OksauFulM<br>fUSyjXRo1EuilQttqVgBRkEJdkO8YgM8/KXCtSKOlhtptCdQb3ZpbGFzIEthbmFw<br>aWNrYXMgPHRpcjVjM0B5YWhvby5jby51az6JATgEEwECACIFAlHu/3ACGwMGCwkI<br>BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMb3riADdEUt9psIAJjJp4EQpuXxNZQg<br>vEsE0elSzN3//d2CY9B49S/QbZ0MciwPgla2fPBAqTJYvKOQ0yT2bm2Nj7V8bVyl<br>KWiqpIMWoQ3pc621n9ZidTWu9wXd+j6ecHkRMCEtIMrb+Fc4BZkqkFCXZ38RmYcV<br>WOkuTlMoa9OdI6NJu9tDtCR2nbqXi49zP6sECgSMjbKaw6qM17j2rvWP1+EfqjXE<br>vd6FgdYX2UZ3CdiIrocWVxDhhxcX77iafqWur8I06CqB6NNEV+b2+3N04q5wW+6Z<br>NrHgklgmwoQESIj9NBATxllGwBfz2gktRWULOm7lqMLOz8170Vwa4oVbkWWNbetU<br>Vo9wnQmJAhwEEwECAAYFAlzQmI8ACgkQrs1Fa00lMfxyPxAAwMqkiqI6f2ZF0Hg6<br>cTnbsb+B2MYrKR0Kn9iY3ZWLlk5DvhNnOqUnAmmqcGQEzdS8P/DJ7wnJ9MI07IkV<br>6kyPn7COnVMRjvikVbEN4C+YWVQmRkNcVXLqqiuYheasW4gb3EoUAC69Qu0RopQu<br>29iipcosb4sXqmQXavgLxKrLmgrVN3hax/T68BWt4JZFBfZ0Le9g2KxPfMro6FqD<br>gdz2DSxxxNf57TYvMRuxAumsMJMjzk9PndWXp8rtLcefSneJeQpRQ0Yedf/nTXfn<br>KZo6WbM0fuEHGIStaH6EQWJwxtrrdowhn1/qSnNcAvAqA8yftEFQjCr5U5nlRIuh<br>7T7J2vZc8FV+zKtXT4Mten9B8cxkaQz9MRzct0dr62DIxTxJnb+bDLymCccyvaqM<br>BxFCEH+Prw76CH+THxtJ2HPyACaOgcLiHUQyuet7QcXCv09cVu/CB5uZSsWvpR7y<br>i34Pm3DchW+W/AV9njQCvhryv1yrnCq6pEWFBgBMFsddSapcQRbwEuQAZggYbA7U<br>XOs/YOinhajasQRLWmRdAnoWHH5qqh776EfFDPNkDO2z3Mr9FLM0bDpQw0fytJgY<br>RmtNDk8GZyoOMlufDPhbECuiE9xynxg39LRmc5jq/r+a2bUxtIzHXwGGH6zqKsI3<br>esF6UuM9DOmOIdV0xkolovZXnjm0HHAxMiBwMTIgPHRpcjVjM0B5YWhvby5jby51<br>az6JATgEEwECACIFAk53SRgCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJ<br>EMb3riADdEUtntEH/3Xhdq34gYM9+2dy7vB6N/Otmssz0Z3/DTC9yz1fmfXZF1Am<br>i53LXntgxC/xcSWp4bZVwCxBxlm8JyvM688jwGaQtZRUmkXZcIeeoXX4mkVXwlK1<br>eIuxarfR1zuv+tTY8kRSzCAKULIHj7qq+cP7Kv6epBbpQtB0CevMMqnPytylYFqo<br>iiFr4qfD16Wx8gnSSF/IktlzWrSDNmuhq89mrUKLM9GXeWggshxleAKXHHvekLXQ<br>fJtjKF0QXl5hGtmux9Oz063nwsYhFLy2gvLnxCiwUmAQd8DKQA/6vfF4ZiyUC0e9<br>fu0NL4J4BouGVaRtU79v/imAyuGlIO4b/aMQEoeJAhwEEwECAAYFAlzQmI8ACgkQ<br>rs1Fa00lMfw0mg//aKLZwcKgPhxjbq/WGmzFxMU2yQg2KC+Bh5150CGeW5Uq2vGE<br>2RvfC2BGkpwFFl8j4oI6RCKNsSSe800SGK1xgdGe9QpHqF+Zk21VhzpjiId6qwf+<br>xB0az5iqT0R/Eljjj6wdXidsJL7lPiMV1K+2LyiThUpBpOkx2LKsjvT4l5oM7nTD<br>9de7O0ZJAqNW6lSl/muyGYpZwJn05iCHgUKUJ91nPKaOIoHfZAY2mvNQ0KJ47JWe<br>TZz9hKa6GnBoMzkjwm1RrUiyS+Ioc/NVihB3xWyq0sconiWI/jjQl1pRnfLqSQsh<br>ama+OhOgshlCHch2MNM7qUYQCAzrWIqstgGGobhQ92vbw64mymOe7oeYCKiUPtB4<br>5MIKnWLTjZV0iceEFCzbMDYFkGaK/6AAiFi2pP4AxlyrR6odNBYJySs26mBwIeTa<br>OP79TG7a/jryG9eNzGePwBgYwGAqJrxtcN3Kb9SS1m7uwbVltQ7NK/9qoNgGuO51<br>G+zQd0QIaUfWwF4Q/TQLxIKSlg7d2OFUM2tVOEJ87AuDM6yB8SFxbnlof0zlaPlO<br>gJh9wY/J0lRy0rEEbXPd74g2hiOmFbA8FWmIpW3C4bi1Nz6UbCOErGWFZOuLlNeY<br>nTNUFKpSEVJKzDMCSMSaLOkEa7FJf41V0NDTcS+w6TiL9X7JvJD+QKBduei0IFBv<br>dmlsYXMgS2FuYXBpY2thcyA8bWVAcG92a2EubHQ+iQEfBDABAgAJBQJSkk/NAh0g<br>AAoJEMb3riADdEUtq6cH/R34SOqH0acjnwBQE9UIwPZa7WkehpvKPcHcBdx31j/T<br>YWucr3oVF3z5UvBNWzQM5sdjMzqYVcdZyIKzuxFPlmRayJHmpK72S/6vpr6QA8nZ<br>2DSXbTXhaIYNgA2PV/zbjdEp4P7AY6KXoA/+SuqdD1PZom5BU9ykz7+Y/j2rGb2t<br>rSofJrMbgbDiz0Q/nWRYeWm1k4z4aieVroWB2zfGlTHUO1htubgXJENbpXDtXABD<br>8MsFT61JxqcJSQd35sNQRh9Jw4mYARMCQEoPbSMRULjYqqSKwj9QCb3Sak5wLurS<br>VJzwsNLpMm+8uynzJtt+oCeQSqab7SVfaog8Ptg1QCeJATgEEwECACICGwMGCwkI<br>BwMCBhUIAgkKCwQWAgMBAh4BAheABQJSkQ3ZAAoJEMb3riADdEUt2VMH/RmpMRON<br>16j5WvV1NdcELc8ctId/W6RlU7G2uKuALJ7wXmB9sFWUjz6piWhktc1pqYpZWOhf<br>GrSkGeUMI0CYTqfaDVutBAVKfSBuW1rGEqQZdpQVPTtPOIKGRH9D20cdZ6Vntosu<br>VASTVPqohERK4P6PSUIZPgruuMnH+adlnIvVts+dVSZTaCxV09qvrVd4cSMS9gmd<br>N9e3+ekfGKOlKWSJqial8GqsvZCnU0TOg6drRFpL+1P6VJFFDqMy9aevSdWbB50n<br>Tu+j1Yc4NskZR/TOAhc1EdLmEoS8+E3dyjjTxf0Y4iF1N/QZyy88sBm7RTXAahmu<br>Wu6XkbDNez/0hmmJATgEEwECACIFAlKPs28CGwMGCwkIBwMCBhUIAgkKCwQWAgMB<br>Ah4BAheAAAoJEMb3riADdEUttjgH/RBO+lg2DWSYeJPBzGCiOKAK7T6GFx7NRbtk<br>QDXi0Dfs7H40GtgYr13QrTxXWkzeGM8QIQM66d6wG2RtmIUzKjbYL54f+fszOuLh<br>qeJ93oW7LbYKPDbZ6HyJ+RdKsOKNp8rcGdrFsLHX4EmiRLv6mcDMT6f0o9IyAtwd<br>Ffl/O0859XohmSs1SQbW92vcf79Vrk6KoFGwd87Tkj1LWfFkrV6tm5lPec3Qw6qE<br>2PYR0+rrpW1Ou+4hIGnUg2gWBJmEI+It9gac0WF3SmV231E4K59gWooszhGIAwej<br>95H1n1GmTMgbQQMlhhyMjJPXu2wIEwu7tuR8JnWk3t1lQYB2LUCJATsEEwECACUC<br>GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJSj7PHAhkBAAoJEMb3riADdEUt<br>fEQH/1412xZzjpBOwuirhXRLnIz88krhQAftojc0zTOtoDJuSlpIJEN2Lyj2DczV<br>YDNstCJ4ANASdxnUsYoknSpmZb2DWR8tLFf89U8GmnBsYjJWereFMIK8t7zftUua<br>9mSYKl0VeM4YTIseQ1k8Ihe53qwMbJGkbMu7NpWKIP3sPRY6epgOR/qGHgYihXJe<br>wgM0nRWF1X5rv2Oy2kTcnusgdnCzl7ZpCF/9Uo/UdRurQOQM1H4f9ppGc6qY8sTV<br>m8KrFgEXJS6MBzUhYf1yuedSIPbbPbMh+CAt4glCTySKyHfmvwgCRQ9GtrsOxuP2<br>Va8XE2h9tsRoXd30Ms11cC2HQza0IFBvdmlsYXMgS2FuYXBpY2thcyA8cGtAcG92<br>a2EubHQ+iQEfBDABAgAJBQJSkk/SAh0gAAoJEMb3riADdEUtPDIIALE/uQ1m3f3E<br>rx/OQtiQTipTNSt66QqIARIVfZFxixn+G4txG8GVxggCJK+Zh3JUUsJ2swYsQwi/<br>JB8D1DDtLqg1s70/uzvJSr4hDZGlC1VXOgP8mcE/4zA0TVgottS4lJ+7Z4sEPFjs<br>RwcDGLMU6pLlaF+ToLOLFNMq+TQHTPhKaucdgjX22bXh8qnBd/4kHxAscyn0XodH<br>lOFqzMVqenvTHV0c/N+MI3no4yTfX8NuiJ2k/6bVXKjBHMbr7J6wstDG0++FjOaw<br>AmeVsYXUevUGgjpDUkZMS58466YLPV9NHntjvMNJx0vp0ZXOWYJnfzEo8SQ4+0x1<br>Cspj+gZkWV+JATgEEwECACIFAlKP9vICGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4B<br>AheAAAoJEMb3riADdEUtjnsH/i7O3Ufu5JREaywshjViWI+cslN3twKa7VFqaqYi<br>r0tCI9cRx6d0iHhPS9S/iDMagUt+gIpinftd+wuFmfm0KSWKYjNOpQridb61N9TO<br>9T59wsyYcv5ARdH3Q2B1RXhxZQq9zTBtKjIOsJYETu+omUVaFHlQUGkutgQCZ6FJ<br>Agv2XdBY4TKTZvzjIoLhr+4JT2lqgxEDF5J4Lr4rNnJCeKtE9q2VNP5HFpmfyz6P<br>5/8dbMDtvYlesgEpiNKDiOjvTIqCDnOqAhXTaSzSVZ6+dDdXyD47cNhk5YudXsY1<br>m3mOCeytITi9oBEb0WQko+xVwvORch0tf/83/79VYy4kTYeJATsEEwECACUCGwMG<br>CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJSkQ3eAhkBAAoJEMb3riADdEUtyoYH<br>/1NyPMWBfrLz1WEYFyilRn4mw8grGYBPNgo3jkFB6DsKoH8km7ZfeAom1gUeaqLP<br>eHDtJE+7ib0Avln10oNsj49O4XGce4iXHIAPG2OeQtE/8t7NEjSlgx7t2WSr6ErG<br>6QXwdLMq4sp3EWZXLo1QxmRvwIyA4aEoGpt3DFMtVS419gIUoe0IVsX55ROpG4Wp<br>j8u0Zripx91tXmuERq+KH6yqMnm2GntK1Ss5qGyaAdsrPD6osux+G1S64Zj8jh3J<br>qFFtWgV8MZ2cbCv81SKSB+mBKCoaus7roHuIhE/5f/y0MdL555NC8kUuXJsuqGUW<br>r8X65BDeNTDpwIFmkUIiqd25AQ0ETndJGAEIAJQxvyDbsQQJg3TKH4QqwFWQCMC3<br>0aNWotb5kUmOfFXOalsPxQbQ3OC8RocIb5LTPhRCvnyyuG7waPk4EMjxKPawkig/<br>YzV6TOY5lQmOIWG/S7T/Lbl47arpPgCR/jWnpp6VpUwnV+nC8PzThwgaHd9LtEPN<br>n0AhRX/tUDw5PE640066XOaYclshjVF4pEb4/v5Zbn1cWaMJ6AsZ84DfNywj5UaT<br>szmRi33mXDL5hv7qW4UhykSIl5QdGB6ripueTH8X9IVrJA2TJ4pBSrxBoXEcFK5T<br>PC7fwvKv3H6LXM3n2rQcw+JRzQSxsGVoUsnsgWB7TSaVpAGmay3L9tYgXqkAEQEA<br>AYkBHwQYAQIACQUCTndJGAIbDAAKCRDG964gA3RFLVWOB/9gdb6I1pcoVtegYPiG<br>mokwWkA5MNgFMY37k71gVARu4kTcJ8w5tyaNTCP2khEyTDUlj2pY5VFsWpsXNVPf<br>0NmAkXQV/j9qta9uTlt4f88x9yvITc5pMnF98cUDY09QJPeeV2B5cF3E5JBPfs4b<br>mtsVBwJi/6isvHd96/vkc8HGlpWJfZJic+K9SNo6jxWy0MiCGcEAqs0WXrGdLY7L<br>vaf8TI/GBuWIbFkfU/c6Oz90A8HFOMXMG2ffDmtD7hQZIrVCLdhg7hXaq7eXl4Ml<br>ZGjgKOOZHLTpOrHRbBqT9FJdOjVocUZKA7KD1+5AQvEh5elDZGKIcyWtgIoiUd1S<br>jKXR<br>=hKrI<br>-----END PGP PUBLIC KEY BLOCK-----</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5c1d687c7e49" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-2-3-0-5c1d687c7e49">Buildbot 2.3.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 2.1.0]]></title>
            <link>https://medium.com/buildbot/buildbot-2-1-0-1d5472e8f07a?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/1d5472e8f07a</guid>
            <category><![CDATA[releases]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[gsoc]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Sun, 24 Mar 2019 14:43:51 GMT</pubDate>
            <atom:updated>2019-03-24T14:44:09.357Z</atom:updated>
            <content:encoded><![CDATA[<p>I am happy to announce Buildbot 2.1.0!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/532/1*MMShRkfguTePIuRkgNlfuw.png" /></figure><p>This month’s highlight is the possibility to encrypt worker to master communications thanks to <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS</a>. This works came thanks to <a href="https://github.com/stelund">Stefan Lundström</a> who stepped in to build upon the work of <a href="https://github.com/gracinet">Georges Racinet</a>. You can find out how to set that up in the <a href="http://docs.buildbot.net/latest/manual/installation/worker.html#worker-tls-configuration">worker documentation</a>.</p><p>Another big news for this month is the inclusion of Buildbot as a sub org of Python for this year’s Google Summer of Code. We got <a href="https://github.com/buildbot/buildbot/wiki/Buildbot-GSoC-Projects-2019">nice projects </a>this year and very talented mentors, don’t miss that out!</p><p>As usual you can find the details of the changes for that release in the <a href="http://docs.buildbot.net/2.1.0/relnotes/">releases notes</a>.</p><p>A big thanks to the contributors for this release!</p><pre>git shortlog --no-merges -ns v2.1.0...v2.0.1<br>    58  Povilas Kanapickas<br>    13  Robin Jarry<br>     9  Pierre Tardy<br>     8  Stefan Lundström<br>     4  Alexandre Isoard<br>     3  Georges Racinet<br>     3  Prakash Acharya<br>     3  vibbo<br>     2  Monika Kairaityte<br>     2  Craig Rodrigues<br>     1  Frédéric Chapoton<br>     1  Ari Maniatis</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1d5472e8f07a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-2-1-0-1d5472e8f07a">Buildbot 2.1.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 2.0.0 and 1.8.1]]></title>
            <link>https://medium.com/buildbot/buildbot-2-0-0-and-1-8-1-d3737fc8a05c?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/d3737fc8a05c</guid>
            <category><![CDATA[release-notes]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Sun, 03 Feb 2019 19:50:16 GMT</pubDate>
            <atom:updated>2019-02-08T09:56:26.705Z</atom:updated>
            <content:encoded><![CDATA[<p>I am pleased to announce the joint release of Buildbot 1.8.1 and 2.0.0.</p><p><em>[edit] 2.0.0 was wrongly marked in pypi as supporting python 2, and was removed from pypi. 2.0.1 is replacing it, now built only for python 3.</em></p><p>This release is a bit special as there has been a <a href="https://github.com/buildbot/buildbot/wiki/CRLF-injection-in-Buildbot-login-and-logout-redirect-code">security vulnerability </a>reported by <a href="https://hackerone.com/mik317">mik317</a> and forwarded by <a href="https://hackerone.com/mariadb">mariadb</a> folks. This vulnerability is of medium criticity as it could only allow to attack services hosted on the same domain (sub-domain cookie injection). Buildbot 1.8.1 is just Buildbot 1.8.0 with a patch for that bug.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/723/1*obV-Hxzq6AEA3RnxZF-yJQ.png" /></figure><p>Buildbot 2.0.0 is another story. 9039 deletion and 4098 additions over 711 files. Buildbot 2 is just the same as Buildbot 1, but cleaned up from a lot of legacy.</p><ul><li>Python 2 support removal allowed us to remove a lot of unneeded boilerplate (<a href="https://github.com/buildbot/buildbot/pull/4569">#4569</a>, <a href="https://github.com/buildbot/buildbot/pull/4470">#4470</a>).</li><li>We removed the support for slave deprecation code (<a href="https://github.com/buildbot/buildbot/pull/4547">#4547</a>), and other deprecated APIs.</li><li>Then we used the 2.0.0 opportunity to clarify an old implicit policy of supporting only APIs that are documented. If an API is not in the doc, then you can make a PR to improve it in a non backward compatible way. If it is documented, then you need to provide compatibility stubs.</li><li>The cleanup work is not yet finished, but those ones are already huge improvements to the codebase.</li></ul><p>Apart from that, there is the usual set of bug fixes, details are as usual in the <a href="http://docs.buildbot.net/2.0.0/relnotes/index.html">release notes</a></p><p>Thanks to our contributors!</p><pre>git shortlog --no-merges -ns v2.0.0...v1.8.0<br>    54  Povilas Kanapickas<br>    26  Monika Kairaityte<br>    25  Craig Rodrigues<br>    17  Pierre Tardy<br>     6  Sylvain Joyeux<br>     5  Robin Jarry<br>     4  Josh Bialkowski<br>     2  Chih-Hsuan Yen<br>     2  Curt J. Sampson<br>     1  Felix Kastner<br>     1  Joao Maia</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d3737fc8a05c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-2-0-0-and-1-8-1-d3737fc8a05c">Buildbot 2.0.0 and 1.8.1</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 1.8.0]]></title>
            <link>https://medium.com/buildbot/buildbot-1-8-0-f0b7f6a4c850?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/f0b7f6a4c850</guid>
            <category><![CDATA[releases]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[continuous-integration]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Mon, 21 Jan 2019 10:10:41 GMT</pubDate>
            <atom:updated>2019-01-23T20:41:42.258Z</atom:updated>
            <content:encoded><![CDATA[<p>I am pleased to announce the release of Buildbot 1.8.0.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/562/1*PHd56nM2ZdVq4clDGyTOjw.png" /></figure><p>The biggest news is that this is the last one to support python 2.7. We are not planning to make it an LTS release unless users with good reasons to stay on python 2.7 step up to help and maintain a stable branch. Next release will be 2.0 and we will drop support for python 2.7 and 3.4 in that release as <a href="https://github.com/numpy/numpy/blob/master/doc/release/1.16.0-notes.rst">other big python projects</a> do. This major release will also remove some deprecated API (e.g. slave vs worker)</p><p>As the end of year came, we got sad news about Hyper.sh shutting down. This is sad as we think hyper.sh is good tech and we hope the folks behind it will find way to continue to grow their ideas. This is also sad for us because hyper.sh was hosting and sponsoring the CPU resources which supported our <a href="https://buildbot.buildbot.net/">metabuildbot</a> CI. We thank them a lot for that as this really eased the task of maintaining buildbot. We implemented pre-commit CI with this with a lot of coverage and a large configuration matrix. This allowed us to release once a month with lots of confidence on the limited human resources we have. Before that, we used free hosting services like travis, circle-ci, and appveyor (we still use them by the way), but those are limiting the number of parallel build you can make, and as our pipeline grew, the feedback time grew. Maintaining our own latent workers on hyper did help a lot to make all the tests in parallel to try and tend to achieve the 10–15min feedback time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/209/0*uMaE6NRIw3lxvNbL.png" /></figure><p>So we had to rebuild our latent worker environment. In 2019 the obvious choice is <a href="https://kubernetes.io/">Kubernetes</a>. Kubernetes provides a container based orchestration framework that is able to <a href="https://github.com/kubernetes/autoscaler">autoscale at various level</a>. Kubernetes is open-source and all the industry is moving toward using or providing this API. Not all the hosting actors have the same level of cost efficiency in term of autoscaling, but I am sure this will progressively smooth out, and choosing Kubernetes is a guarantee of cloud agnosticity.</p><p>So we built for 1.8.0 a <a href="http://docs.buildbot.net/current/manual/configuration/workers-docker.html#buildbot.worker.kubernetes.KubeLatentWorker">KubeLatentWorker</a>, and we now run our Buildbot infra on GKE. This support is still experimental and we have some known bugs with fixes that <a href="https://github.com/buildbot/buildbot/pull/4540">were not able to make it in the release</a>. This kubernetes support was initially contributed by <a href="https://medium.com/u/a01cde4ef354">Julien Girardin</a>. Thanks a lot for working on it, this was very useful to have a working starting point.</p><p>Our strategy for this deployment is to use node autoscaling with big nodes (6 vCPU). This allows to limit the time downloading build container image. It is only downloaded once and then reused for other builds. The GKE autoscaling starts quite fast (3min cold start including image download), and then takes 10min to scale down (the timer is unfortunately not configurable). Compared to hyper, we have seen our build times decrease a little bit, but as we are still working with a trial account we can only scale to one node, and this is impacting our queue time a lot (the build time is increased because the latent worker’s pods are waiting for available CPU and memory)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/817/1*FfI1rl3P2toTQXBaO3N1Gg.png" /></figure><p>You can find the complete release notes as usual <a href="http://docs.buildbot.net/current/relnotes/index.html#buildbot-1-8-0-2019-01-20">in our documentation</a></p><p>Thanks a lot to our contributors for this release!</p><pre>git shortlog --no-merges -ns v1.8.0...v1.7.0<br>    20  Craig Rodrigues<br>    18  Pierre Tardy<br>    17  Povilas Kanapickas<br>     1  13costermann<br>     1  Robin Jarry<br>     1  ciarancourtney<br>     1  Pavol Misik<br>     1  Chih-Hsuan Yen<br>     1  Curt J. Sampson<br>     1  Julien Girardin</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f0b7f6a4c850" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-1-8-0-f0b7f6a4c850">Buildbot 1.8.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 1.7.0]]></title>
            <link>https://medium.com/buildbot/buildbot-1-7-0-6e34e1b7456d?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/6e34e1b7456d</guid>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Fri, 21 Dec 2018 19:04:17 GMT</pubDate>
            <atom:updated>2018-12-21T19:04:17.667Z</atom:updated>
            <content:encoded><![CDATA[<p>I am happy to announce the release of Buildbot 1.7.0</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/541/1*jTpViUFPESlW8WM4jEUidw.png" /></figure><p>This release contains the usual set of little improvements and bug fixes that we see each month. The release note is available <a href="http://docs.buildbot.net/current/relnotes/index.html">here</a>.</p><p>The most exiting part of what happened this month is a new step towards more Python3. We decided to deprecate Python2, so that we can focus the development on new features of python3. The best improvement for us is with python 3.5 and the adding of async/await into the language.</p><p>Python2 and Twisted have inlineCallbacks and we have been using them extensively for a while. However these do not come without issues. inlineCallbacks requires a bunch of boilerplate code to run between each function call for its magic to work. This comes with performance impacts, and also with difficulties with maintaining <a href="https://github.com/twisted/twisted/pull/814">the stack traces</a>. With async/await, all those hacks are unneeded, and we will be able to focus more on the logic.</p><p>This is why we are starting the work on Buildbot 2.0, which will add an additional level of cleanups including:</p><ul><li>removal of deprecated APIs (slaves APIs are the most important ones)</li><li>removal of support for python 2.7 for the master (worker package will still support python 2.7)</li></ul><p>This 2.0 version will not be as painful as the Buildbot nine migration was, as the impacts are much smaller. We plan to release 2.0 as soon as February. Don’t wait to upgrade to python3!</p><p>After 2.0 is released we can work on the cleaning of the code (removal of usage of future library, etc).</p><p>Then we will think on how we can transition to async/await. This is not as easy as said, as we would like to have this transition be as smooth as possible, and avoid to break API. This means that if a method change to async from inlineCallbacks, callers expecting an inlineCallback should still work, and subclasses overriding this method should also work unchanged.</p><p>Thanks to our contributors for this month!</p><pre>1 % git shortlog --no-merges -ns v1.7.0...v1.6.0<br>    78  Monika Kairaityte<br>    45  Povilas Kanapickas<br>    13  Pierre Tardy<br>     5  Craig Rodrigues<br>     2  Pedro Algarvio</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6e34e1b7456d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-1-7-0-6e34e1b7456d">Buildbot 1.7.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 1.6.0]]></title>
            <link>https://medium.com/buildbot/buildbot-1-6-0-ede4f3639545?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/ede4f3639545</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Sat, 17 Nov 2018 16:52:04 GMT</pubDate>
            <atom:updated>2018-11-17T16:52:04.528Z</atom:updated>
            <content:encoded><![CDATA[<p>I am happy to announce the release of Buildbot 1.6.0.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/622/1*svB-rdnTg9Ov_ErzWOXQBA.png" /></figure><p>This month was quite busy with <a href="https://medium.com/u/33d0c6e9cd8b">Povilas Kanapickas</a> doing lots of improvements in both maintainability and modernisation of the code, helped by Monika Kairaityte. That means improvements in the unit tests, stability of the test suite, so that we are less annoyed by fake positives in our CI, etc.</p><p>On top of that we made a few improvements to the UI:</p><ul><li>A chart displaying the evolution on successful build times, that would have helped us to identify a huge performance regression of our test suite.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/828/1*S2EjJRsGJGnrflpfn5JG1g.png" /></figure><ul><li>A new pending buildrequest which allows us to have a global view of what part of our build workers cannot keep-up with the demand.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*83axoXeWlGzEYUNWPq6ySw.png" /></figure><p>This release also contain a few bug fixes and enhancements which are detailed as usual in the <a href="http://docs.buildbot.net/current/relnotes/#buildbot-1-6-0-2018-11-16">release notes</a>.</p><p>Thanks to all our contributors!</p><pre>% git shortlog --no-merges -ns v1.5.0...v1.6.0<br>    69  Povilas Kanapickas<br>    39  Monika Kairaityte<br>    14  Pierre Tardy<br>     8  Mikhail Sobolev<br>     4  Andreas Sommer<br>     4  Chih-Hsuan Yen<br>     3  Mark Wong<br>     3  Iblis Lin<br>     1  Aakash Jain<br>     1  Marius Stanca<br>     1  churlinprg<br>     1  Alex</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ede4f3639545" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-1-6-0-ede4f3639545">Buildbot 1.6.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Buildbot 1.5.0]]></title>
            <link>https://medium.com/buildbot/buildbot-1-5-0-390ee533d4af?source=rss----1538bf399d81---4</link>
            <guid isPermaLink="false">https://medium.com/p/390ee533d4af</guid>
            <category><![CDATA[release-notes]]></category>
            <dc:creator><![CDATA[Pierre Tardy]]></dc:creator>
            <pubDate>Wed, 10 Oct 2018 11:58:52 GMT</pubDate>
            <atom:updated>2018-10-10T11:58:51.852Z</atom:updated>
            <content:encoded><![CDATA[<p>I am happy to announce the release of Buildbot 1.5.0</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*OqYaZKGQ4UBXB3xV8yR2yA.png" /></figure><p>No huge feature of bug fix for this release, but some quality of life change whose details are logged as usual in our <a href="http://docs.buildbot.net/1.5.0/relnotes/index.html">Release Notes</a></p><p>Thanks to our contributors for this month!</p><pre>git shortlog --no-merges -ns v1.4.0...v1.5.0<br>    35  Craig Rodrigues<br>     8  Zachary Ware<br>     5  Mikhail Sobolev<br>     5  Pierre Tardy<br>     1  Aakash Jain<br>     1  Pedro Algarvio<br>     1  Bas Nieuwenhuizen<br>     1  Richard Purdie<br>     1  Emmanuel Bouaziz<br>     1  Maciek Dems</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=390ee533d4af" width="1" height="1" alt=""><hr><p><a href="https://medium.com/buildbot/buildbot-1-5-0-390ee533d4af">Buildbot 1.5.0</a> was originally published in <a href="https://medium.com/buildbot">Buildbot</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>