bors-ngA merge bot for GitHub pull requestshttps://bors.tech/
Twenty-fifth monthly bors newsletter<p>It’s another monthly burst of news about bors-ng, a <a href="https://nmattia.com/posts/2019-01-08-hunt-bugs-down-before-they-are-merged.html">merge queue for hunting down bugs before they are merged into master</a>.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2019-01-01..2019-01-31">last month</a>, we landed 12 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written <a href="https://github.com/bors-ng/bors-ng.github.io">in public on GitHub</a>. If you find a mistake, pull requests or issue reports are appreciated!</p>
<h3 id="open-rfcs">Open RFCs</h3>
<ul>
<li><a href="https://forum.bors.tech/t/pre-rfc-creating-a-formal-decision-making-process-for-bors-ng/269">Creating a formal decision-making process for bors-ng</a></li>
</ul>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/570">added</a> a command to cancel <code class="highlighter-rouge">try</code> runs</li>
<li>andrewlobos <a href="https://github.com/bors-ng/bors-ng/pull/580">added</a> a configuration option for GitHub API call timeouts</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/582">changed</a> bors try to queue up builds instead of running them all at once</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/588">fixed</a> an infinite loop when retry is run multiple times in a row</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/andrewlobos">@andrewlobos</a></li>
</ul>
<p>Want to see your name in this newsletter? Contribute on our <a href="https://github.com/bors-ng/bors-ng">GitHub repository</a>.</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is Daedalus of Freedom, an online role-playing game built on the <a href="https://secure.byond.com/">BYOND</a> (Build Your Own Net Dream) engine. <a href="https://dofgaming.us/wiki/Guide_for_New_Players">Here’s their getting started guide for new players</a> and <a href="https://github.com/TheDaedalusCrew/Daedalus-of-Freedom">here’s their source code</a>.</p>
<p>But if you’re into bors, then you’re probably most interested in the <a href="https://github.com/TheDaedalusCrew/Daedalus-of-Freedom/blob/master/test/run-test.sh">test system</a>. TheDaedalusCrew/Daedalus-of-Freedom has a couple of different codebases that they test in the same repo:</p>
<ul>
<li>The tgui and nano directories are frontend JavaScript code for custom screens. It is tested within Node.JS.</li>
<li>The “code” directory is the “game world” definition, written in BYOND’s domain-specific language. They even have their own unit testing system!</li>
<li>They also run a number of lints, found <a href="https://github.com/TheDaedalusCrew/Daedalus-of-Freedom/blob/master/test/run-test.sh#L197-L215">here</a>, on their BYOND, HTML, and CSS code. Some of which is as simple as “this function is banned, so grep for it.”</li>
</ul>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/70">February pull request</a>.</p>
Fri, 01 Feb 2019 00:00:00 +0000https://bors.tech/newsletter/2019/02/01/tmib-25/
https://bors.tech/newsletter/2019/02/01/tmib-25/Twenty-fourth monthly bors newsletter<p>It’s another monthly burst of news about bors-ng, a GitHub App for automated testing
<a href="https://news.ycombinator.com/item?id=18463075">by branching from master, and rerunning tests before the final merge</a>.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-12-01..2018-12-31">last month</a>,
we landed 9 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/563">fixed</a> bumping priority on an already-queued PR.</li>
<li>felipethome <a href="https://github.com/bors-ng/bors-ng/pull/565">added</a> an alternative CircleCI config location for auto-detect.</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/felipethome">Felipe Thome (@felipethome)</a></li>
</ul>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is <a href="https://github.com/how-is/how_is">how_is</a>, an app that gathers metrics for your GitHub repository. <a href="https://bors.tech/newsletter/2019/01/01/tmib-24/report.html">Here’s a report for bors-ng</a>, and <a href="https://how-is.github.io/manual-reports/how_is/2017/07/02/report.html">here’s one for how_is itself</a>, for example. It’s similar to GitHub’s “Insights”, but it has a few reports that GitHub doesn’t, and it can generate reports retroactively.</p>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/69">January pull request</a>.</p>
Tue, 01 Jan 2019 00:00:00 +0000https://bors.tech/newsletter/2019/01/01/tmib-24/
https://bors.tech/newsletter/2019/01/01/tmib-24/Twenty-third monthly bors newsletter<p>It’s another monthly burst of news about bors-ng, <a href="https://github.com/bundler/bundler/pull/6703">a CI service</a> that helps you enforce the “never break the build” policy in your GitHub repositories.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-11-01..2018-11-30">last month</a>,
we landed 24 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/530">optimized</a> bors for server with lots of projects that are mostly idle, which is the state for most of the public instance’s users</li>
<li>alsuren <a href="https://github.com/bors-ng/bors-ng/pull/544">fixed</a> a bunch of compiler warnings</li>
<li>zealousidealroll <a href="https://github.com/bors-ng/bors-ng/pull/547">added</a> support for wildcards in status configuration</li>
<li>iagomoreira <a href="https://github.com/bors-ng/bors-ng/pull/550">made</a> bors produce an error when you misspell it “bros” 👊</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/552">worked around</a> an old bug that could cause canceled patches to wind up starting builds with no patches in them</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/alsuren">David Laban (@alsuren)</a></li>
<li><a href="https://github.com/zealousidealroll">@zealousidealroll</a></li>
<li><a href="https://github.com/iagomoreira">Iago (@iagomoreira)</a></li>
</ul>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is <a href="https://www.amethyst.rs/">Amethyst</a>, a data-oriented game engine. It’s massively multithreaded, memory safe, and based on an <a href="https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system">Entity—Component—System</a> architecture to achieve good cache locality and separation of concerns.</p>
<p>Amethyst uses bors with their thirty-eight thousand line-of-<a href="https://rust-lang.org/">Rust</a>-code monorepo. Bors is also used by many of Amethyst’s dependencies, such as <a href="https://github.com/gfx-rs/gfx">gfx</a>, <a href="https://github.com/slide-rs/specs">specs</a>, and <a href="https://github.com/ron-rs/ron">ron</a>. All of them support Windows, Linux, and Mac, and have been adding support for more (such as <a href="https://github.com/gfx-rs/gfx/blob/3165d55/.travis.yml#L30-L34">iOS</a>).</p>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/68">December pull request</a>.</p>
Sat, 01 Dec 2018 00:00:00 +0000https://bors.tech/newsletter/2018/12/01/tmib-23/
https://bors.tech/newsletter/2018/12/01/tmib-23/Twenty-second monthly bors newsletter<p>It’s another monthly burst of news about bors-ng. <a href="https://mail.python.org/pipermail/python-dev/2018-January/151921.html">It’s designed to support the workflow that projects like Rust and Servo use: you tell the bot that a PR is good to merge, and then it takes over and manages the CI process so as to guarantee that the head of the master branch has always passed all its tests (the “not rocket science rule”)</a>.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-10-01..2018-10-31">last month</a>,
we landed 24 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>michaelbaudino <a href="https://github.com/bors-ng/bors-ng/pull/504">updated</a> the GitHub App configuration docs</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/507">fixed</a> crashes experienced when a project in bors is a fork of another project in the same instance of bors</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/509">updated</a> bors to work right with Checks-Only Travis CI</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/526">migrated</a> to a TOML 0.5.0 parser, fixing the short-committer-form <code class="highlighter-rouge">committer = { name = "name", email = "email" }</code></li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/michaelbaudino">Michael Baudino (@michaelbaudino)</a></li>
</ul>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is <a href="https://github.com/samueltardieu/pathfinding">pathfinding</a>: a graph-analysis library for Rust. Pathfinding provides algorithms for matching, exploring, and finding optimal paths and flows through graphs. It’s also generic, so you can use it with any backing store.</p>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/66">November pull request</a>.</p>
Thu, 01 Nov 2018 00:00:00 +0000https://bors.tech/newsletter/2018/11/01/tmib-22/
https://bors.tech/newsletter/2018/11/01/tmib-22/Twenty-first monthly bors newsletter<p>It’s another monthly burst of news about bors-ng,
a GitHub bot to keep your repository stable with a <a href="https://news.ycombinator.com/item?id=17606148">high arrival rate of commits / merges</a>.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-09-01..2018-09-30">last month</a>,
we landed 39 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="get-this-newsletter-via-email">Get this newsletter via email</h3>
<p>This newsletter is getting sent out via MailChimp, now, too.
Just <a href="#mailing-list">put in your email</a>,
and on the third day of every month,
you’ll get an email with the same stuff as this post.</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/463">added</a> error handling for open PR fetching</li>
<li>indirect <a href="https://github.com/bors-ng/bors-ng/pull/461">made</a> it possible to change the trigger word</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/460">made</a> bors sync the repository when the organization’s member list changes</li>
<li>notriddle enabled dependabot and <a href="https://github.com/bors-ng/bors-ng/pull/485">updated</a> the deployment scripts to Elixir 1.7</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/496">fixed</a> the build number footer on Docker-based deployments</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/indirect">André Arko (@indirect)</a></li>
</ul>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is the <a href="https://github.com/mozilla/product-delivery">Mozilla Product Delivery Team</a>. They build tools to deliver changes to Firefox in-between full releases. They’ve integrated bors into the workflow for several of their projects, and have <a href="https://github.com/peterbe/whatsdeployed/pull/35">integrated it into some of their tools</a>. Among other projects, they maintain:</p>
<ul>
<li><a href="https://github.com/mozilla/normandy">Normandy</a>, which serves instructions on changes to make in the form of signed and verified “recipes”</li>
<li><a href="https://github.com/mozilla/buildhub2">Buildhub</a>, the service that indexes all Firefox builds</li>
<li><a href="https://github.com/mozilla/delivery-console">Delivery Console</a>, an admin panel for Normandy (and other backends in the future)</li>
<li>Mozilla’s <a href="https://github.com/mozilla-services/kinto-dist">distribution</a> of <a href="https://github.com/Kinto/kinto">kinto</a></li>
<li><a href="https://github.com/mozilla/remote-settings">Remote Settings</a> a way to manage evergreen data such as add-on block lists in Firefox</li>
</ul>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/63">October pull request</a>.</p>
Mon, 01 Oct 2018 00:00:00 +0000https://bors.tech/newsletter/2018/10/01/tmib-21/
https://bors.tech/newsletter/2018/10/01/tmib-21/How bundler combines bors-ng with their own welcome bot<p>The central principle of bors-ng is to be an easy-to-set-up implementation of an uncomplicated continuous testing regime, and to do that one thing well. It doesn’t take care of deployment, it doesn’t sort your issues, it doesn’t update your dependencies, and it doesn’t post a comment on all first-time contributors’ pull requests.</p>
<p>If you want all that stuff, you can add more apps to do it. And if really want to make it look pro, you can do what <a href="https://github.com/bundler/bundler">bundler</a> did.</p>
<p>This is their <a href="https://github.com/bundler/bundlerbot">greeter script</a>, called <code class="highlighter-rouge">bundlerbot</code>:</p>
<p class="gallery"><img alt="screenshot of github" src="https://screenshotscdn.firefoxusercontent.com/images/8eeda687-77fb-449c-82bb-b6e95b20c1ca.png" /></p>
<p>This is their self-hosted instance of bors-ng, <em>also</em> called <code class="highlighter-rouge">bundlerbot</code>:</p>
<p class="gallery"><img alt="screenshot of github" src="https://screenshotscdn.firefoxusercontent.com/images/f2c9b8c3-9e0a-419a-9079-c1cb1251481a.png" /></p>
<p>Making that work required three changes to the usual bors-ng setup.</p>
<ul>
<li>The authentication details — the app ID, private key, and webhook secret — were kept the same between the GitHub App configuration, the greeter bot, and their self-hosted bors-ng.</li>
<li>The command trigger was changed from <code class="highlighter-rouge">bors</code> to <code class="highlighter-rouge">@bundlerbot</code>, after one of their maintainers <a href="https://github.com/bors-ng/bors-ng/pull/461/files">added an option to change it</a>, so they can run <code class="highlighter-rouge">@bundlerbot r+</code> to start it.</li>
<li>Instead of setting the webhook URL to point at bors-ng directly, they routed their webhooks to a service called <a href="https://zapier.com/">Zapier</a> and configured it to re-send all of the webhooks twice: once to bundlerbot-bors, and once to their greeter.</li>
</ul>
<p class="gallery"><img alt="screenshot of Zapier" src="https://forum.bors.tech/uploads/default/optimized/1X/ae49fcea98dba465ef10041c6deab8a47500c369_1_455x500.png" /></p>
<p>Unfortunately, even though Zapier is nice and flexible, it required them to set all of the headers that needed to be re-sent one at a time: the request body for the forward should be sourced from the request body of the initial request, <code class="highlighter-rouge">X-GitHub-Delivery</code> should be pulled from <code class="highlighter-rouge">X-GitHub-Delivery</code> in the original request, <code class="highlighter-rouge">X-Hub-Signature</code> should be pulled from <code class="highlighter-rouge">X-Hub-Signature</code> in the original request, and so on. It’s not hard to do, just annoying.</p>
<p>They also <a href="https://forum.bors.tech/t/customizing-the-name-email-and-avatar-of-the-bots-merge-commits/166">set the committer email</a> to the same one that the now-unmaintained bundlerbot-homu used. This all allows them to maintain continuity as they evolve the underlying tech behind their GitHub automation, so no matter what third-party app or custom integration they use, it will always be just another iteration of <code class="highlighter-rouge">bundlerbot</code>.</p>
<hr />
<p><a href="https://forum.bors.tech/t/how-bundler-combines-bors-ng-with-their-own-welcome-bot/226">Discussion thread on the bors forum</a></p>
Wed, 26 Sep 2018 00:00:00 +0000https://bors.tech/writeup/2018/09/26/bundlerbot/
https://bors.tech/writeup/2018/09/26/bundlerbot/Twentieth monthly bors newsletter<p>It’s another monthly burst of news about bors-ng,
because if your primary development branch has failing tests,
<a href="https://threadreaderapp.com/thread/1026434505136132096.html">you don’t have a code problem; you have a process problem</a>.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-08-01..2018-08-31">last month</a>,
we landed 13 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="get-this-newsletter-via-email">Get this newsletter via email</h3>
<p>This newsletter is getting sent out via MailChimp, now, too.
Just <a href="#mailing-list">put in your email</a>,
and on the third day of every month,
you’ll get an email with the same stuff as this post.</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/443">fixed</a> a bug that caused delegation to crash</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/444">fixed</a> a bug that caused actually-good reviews to be rejected</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/451">raised</a> some timeouts that were being hit on big repositories</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/453">fixed</a> a crash when the same pull request is delegated twice</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<p>No new contributors this month 😥</p>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p><a href="https://github.com/cockroachdb/cockroach">CockroachDB</a> is a distributed relational database
that speaks the PostgreSQL client-server protocol as a drop-in replacement for existing apps.</p>
<p>It has a sharding and replication algorithm built-in,
which maintains high availability and consistency in many common failure scenarios.
A CockroachDB cluster will maintain consistency by going down if a majority of nodes can’t reach each other
(it is a <a href="https://en.wikipedia.org/wiki/CAP_theorem">CP distributed data store</a>).
It supports, but doesn’t require, you to define availability regions and replication rules.</p>
<p>Cockroach Labs runs a <a href="https://github.com/cockroachdb/cockroach/wiki/Bors-merge-bot">self-hosted instance of bors-ng and TeamCity</a> called “craig” on Google Cloud.
They’ve been great help getting the self-host documentation and Docker Hub working well.</p>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/53">September pull request</a>.</p>
Sat, 01 Sep 2018 00:00:00 +0000https://bors.tech/newsletter/2018/09/01/tmib-20/
https://bors.tech/newsletter/2018/09/01/tmib-20/Nineteenth monthly bors newsletter<p>It’s another monthly burst of news about bors-ng, a GitHub app that checks and merges PRs in an orderly fasion.</p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-07-01..2018-07-31">last month</a>,
we landed 2 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/415">added</a> a button to sync all added repos from GitHub to BORS on demand (in case a webhook gets dropped)</li>
<li>adzenith <a href="https://github.com/bors-ng/bors-ng/pull/438">improved</a> the table layout by removing unnecessary spaces</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/adzenith">Nikolaus Wittenstein (@adzenith)</a></li>
</ul>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is <a href="https://github.com/rust-num/num">rust-num</a>, the numerics library for Rust.</p>
<p>This project holds maintainership over several “advanced numerics” libraries (Rust has basics fixed-length integer and floating point math, equal to C, built-in). Here’s some of their libraries:</p>
<ul>
<li><a href="https://github.com/rust-num/num-bigint">num-bigint</a>: math with numbers bigger than 128 bits</li>
<li><a href="https://github.com/rust-num/num-complex">num-complex</a>: math with an imaginary component</li>
<li><a href="https://github.com/rust-num/num-integer">num-integer</a>: extensions for integers, including the built-in fixed-length integers and num-bigint
<ul>
<li>a trait (similar to interfaces and concepts in other languages) for integers, allowing generic code that supports any type of integer</li>
<li>additional integer functions like <code class="highlighter-rouge">nth_root</code></li>
</ul>
</li>
<li><a href="https://github.com/rust-num/num-iter">num-iter</a>: an enhanced version of <code class="highlighter-rouge">Range</code></li>
<li><a href="https://github.com/rust-num/num-rational">num-rational</a>: a fraction library</li>
<li><a href="https://github.com/rust-num/num-traits">num-traits</a>: generic traits for all numbers</li>
</ul>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/50">August pull request</a>.</p>
Wed, 01 Aug 2018 00:00:00 +0000https://bors.tech/newsletter/2018/08/01/tmib-19/
https://bors.tech/newsletter/2018/08/01/tmib-19/Eighteenth monthly bors newsletter<p>It’s another monthly burst of news about bors-ng.</p>
<blockquote>
<p><a href="https://github.com/bitnami-labs/sealed-secrets/commit/b5ffb75684d83e3faf578403327eb395e0f140b4">bors modifies the usual github CI workflow in a subtle but important way</a>:</p>
<p>With regular github, the CI test (eg: travis-ci) needs to pass before
the Merge button goes green - but the PR might be against a stale
version of master, and the test <em>does not have to pass against
master+PR</em>. There is a github option to enforce this too, but it puts
the work on the user and requires them to rebase against HEAD before
the merge button will go green.</p>
<p>After the PR has been “approved” (<em>), bors rebases the PR and runs the
CI bot (travis) *again</em> against master+PR, and only merges if that
passes. Iow, “approve-for-merge” is separated from “actually-merge”.</p>
<p>Subtle, but important :P</p>
<p>See <a href="https://graydon.livejournal.com/186550.html">https://graydon.livejournal.com/186550.html</a> for the blog version
of the above.</p>
<p>(*) bors approval is indicated with a <code class="highlighter-rouge">bors r+</code> github comment. See <a href="https://bors.tech/documentation/">https://bors.tech/documentation/</a> for other bot commands.</p>
</blockquote>
<p>– <a href="https://github.com/anguslees">Angus Lees</a> of <a href="https://github.com/bitnami-labs/sealed-secrets/commit/b5ffb75684d83e3faf578403327eb395e0f140b4">bitnami</a></p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-06-01..2018-06-30">last month</a>,
we landed 5 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/426">fixed</a> the appearance of tabs on the dashboard</li>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/429">fixed</a> a case where bors blockd a PR on reviews even when it’s actually been fully approved <a href="https://github.com/bors-ng/bors-ng/pull/435">twice</a></li>
<li>nbraud <a href="https://github.com/bors-ng/bors-ng/pull/433">added</a> CI inference for <code class="highlighter-rouge">.appveyor.yml</code> files</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<ul>
<li><a href="https://github.com/nbraud">Nicolas Braud-Santoni (@nbraud)</a></li>
</ul>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is DDraceNetwork, a mod of the Teeworlds video game. Teeworlds is an online multiplayer 2D shooter/platformer, but there’ve been modded servers for other things since the game was released in 2007. DDraceNetwork currently run the largest group of servers for racing to see who can get through a map the quickest.</p>
<p>Their <a href="https://github.com/ddnet/ddnet">custom server and client</a> runs on Windows, Mac, and Linux. The original Teeworlds software didn’t have automated tests, but they’ve been adding some when they’ve added new functionality. Their server also maintains compatibility with the original Teeworlds client.</p>
<p>There’s a pre-bors <a href="https://hookrace.net/blog/ddnet-evolution-architecture-technology/">blog post from a project member about their server setup</a>.</p>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/48">July pull request</a>.</p>
Sun, 01 Jul 2018 00:00:00 +0000https://bors.tech/newsletter/2018/07/01/tmib-18/
https://bors.tech/newsletter/2018/07/01/tmib-18/Seventeenth monthly bors newsletter<p>It’s another monthly burst of news about bors-ng, a GitHub app to prevent <a href="https://teamcity-support.jetbrains.com/hc/en-us/community/posts/206976135-Pre-Tested-Commit-No-broken-code-in-your-version-control-Ever-">merge skew</a>.
<a href="https://github.com/cockroachdb/cockroach/issues/22499#issuecomment-376993981">Bors prevents merge skew because it tests the results of the merge and not the HEAD of the PR branch.</a></p>
<p>In the <a href="https://github.com/bors-ng/bors-ng/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20is%3Aclosed%20closed%3A2018-05-01..2018-05-31">last month</a>,
we landed 5 PRs in the bors-ng repository.</p>
<p>“This Month in Bors” is written in public on GitHub.
If you find a mistake, <a href="https://github.com/bors-ng/bors-ng.github.io/pulls">pull requests</a> or <a href="https://github.com/bors-ng/bors-ng.github.io/issues">issue reports</a> are appreciated!</p>
<h3 id="notable-additions">Notable Additions</h3>
<ul>
<li>notriddle <a href="https://github.com/bors-ng/bors-ng/pull/424">added</a> support for gating on the new GitHub Checks API</li>
</ul>
<h3 id="new-contributors">New Contributors</h3>
<p>No new contributors this month 😥</p>
<p>Want to see your name in this newsletter? Look at <a href="https://bors.tech/starters/">bors starters</a>, a curated list of issues that are good for new contributors!</p>
<h3 id="whos-using-bors">Who’s using bors?</h3>
<p>This month’s featured user is <a href="https://github.com/rust-lang/crates.io/">crates.io</a>,
the software running the Rust language projects’s official library package hosting service.
Crates is one of those apps where the app is really simple, basically just a file service with a specialized metadata indexer,
and the tough part was getting everybody to use the same one,
instead of ending up with several competing solutions like Haskell and C have.</p>
<p>They’re also running both Node tests on their frontend code, and Rust tests on their backend code. <a href="https://github.com/rust-lang/crates.io/blob/4d8706438733a8a0dab969d207b0725a1a3e95d5/.travis.yml#L52-L71">Here’s how they’re doing it in their Travis configuration.</a></p>
<p>Got any suggestions for next month?
Post a comment on the <a href="https://github.com/bors-ng/bors-ng.github.io/pull/45">June pull request</a>.</p>
Fri, 01 Jun 2018 00:00:00 +0000https://bors.tech/newsletter/2018/06/01/tmib-17/
https://bors.tech/newsletter/2018/06/01/tmib-17/