Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

TMIB 76 #193

Merged
merged 8 commits into from May 1, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
66 changes: 66 additions & 0 deletions _posts/2023-05-01-tmib-76.md
@@ -0,0 +1,66 @@
---
layout: post
title: Seventy-sixth monthly bors newsletter
date: 2023-05-01 00:00:00
summary: This April, bors-ng is deprecated
categories: newsletter
---

It's another monthly burst of news about bors-ng, the old, deprecated, third-party merge queue implementation for GitHub.

In the [last month](https://github.com/bors-ng/bors-ng/pulls?q=is%3Apr+is%3Amerged+closed%3A2023-01-01..2023-04-30),
we landed 18 PRs in the bors-ng repository.

"This Month in Bors" is written [in public on GitHub][GitHub for TMiB].
If you find a mistake, pull requests or issue reports are appreciated!

[GitHub for TMiB]: https://github.com/bors-ng/bors-ng.github.io


### Deprecation notice

As the primary maintainer, I officially declare Bors-NG to be feature frozen and deprecated. The public instance will remain running for awhile, but it will eventually start emitting warnings and be taken down. The source code will always be available if you want to run your own instance.

The main reason for this is that GitHub has a [built-in merge queue] now that is publicly available. It's still marked "beta", but you can use it without going on a wait list. More importantly, there's a bunch of bugs in bors-ng that we can't fix, but they can. For example (this is not an exhaustive list):

* #[1217]: When bors-ng queues a squash merge and runs it, then pushes the squash merge into mainline, there's no way to make mark the PR as "merged."
* #[576]: Bors-NG requires its own, separate, settings in `bors.toml` and can't just use GitHub's own because of the way status checks work when copying from the staging branch.
* #[1493]: GitHub behaves inconsistently between octopus merges and simple merges, because a simple merge is considered equivalent to the PR for status checks, but an octopus merge is not.
* #[894]: Repository admins wind up seeing a merge button that they shouldn't click. GitHub can just replace the merge button with a queue button, which is what they do.
* More generally, GitHub merge queues get a button in the interface, while Bors-NG relies on a command.

Bors-NG also has a lot of fixable, but difficult, bugs, like its `CODEOWNERS` parser not perfectly matching the real parser.

I pretty much [expected this to happen][appget] after GitHub Actions and [GitLab merge trains] came out. It's one reason why the public instance doesn't allow private repositories; anyone who's currently self-hosting Bors-NG knows how to self-host it, and some have helped me refine the documentation for [setting up your own instance], so anyone who still wants to use it instead of migrating to GitHub's [built-in merge queue] can run an instance themselves after the public instance eventually goes away and not have their workflow disrupted too much.

And Bors-NG has a been a wild success at what I actually hoped it would accomplish: it helped popularize the [Not Rocket Science rule] that the mainline branch should be tested *before* being pushed to mainline. There is now turnkey support for that built into the platform.

[built-in merge queue]: https://github.blog/changelog/2023-02-08-pull-request-merge-queue-public-beta/
[1217]: https://github.com/bors-ng/bors-ng/issues/1217
[576]: https://github.com/bors-ng/bors-ng/issues/576
[894]: https://github.com/bors-ng/bors-ng/issues/894
[1493]: https://github.com/bors-ng/bors-ng/issues/1493
[appget]: https://medium.com/@keivan/the-day-appget-died-e9a5c96c8b22
[GitLab merge trains]: https://docs.gitlab.com/ee/ci/pipelines/merge_trains.html
[setting up your own instance]: https://github.com/bors-ng/bors-ng#how-to-set-up-your-own-real-instance
[Not Rocket Science rule]: https://bors.tech/essay/2017/02/02/pitch/


### Notable Additions

* wingyplus [made](https://github.com/bors-ng/bors-ng/pull/1634) the PR status link go to the batch page instead of the log


### New Contributors

No new contributors this month.

Want to see your name in this newsletter? Contribute on our [GitHub repository](https://github.com/bors-ng/bors-ng).


### Who's using bors?

This month's featured user is [eris](https://github.com/andreasots/eris), a Discord bot used for the Internet show [LoadingReadyRun](https://loadingreadyrun.com/) (specifically, it's the Discord adapter for [LRRbot](https://github.com/mrphlip/lrrbot/#the-discord-bot)).

Got any suggestions for next month?
Post a comment on the [May pull request](https://github.com/bors-ng/bors-ng.github.io/pull/196).