GitHub to replace master with main across its services
GitHub will drop the term “master” as the default branch name from its hosted repositories in response to protests about ingrained racism.
Activists in the software community have long campaigned to replace the terms “master” and “slave” with terms that don’t invoke actual human slavery. They argue that continuing to use such terms isn’t inclusive, is insensitive, and highlights the tech industry’s problems with diversity.
Nat Friedman, the GitHub’s chief exec, confirmed the upcoming change in a Twitter post saying that the Microsoft-owned outfit would change the default branch name from “master” to “main”, or perhaps something similar.
It's a great idea and we are already working on this! cc @billygriffin22
— Nat Friedman (@natfriedman) June 12, 2020
Responding to the tweet from Google Chrome engineer Una Kravets suggesting the change, Friedman said: “It’s a great idea and we are already working on this.”
GitHub is the latest in a string of companies that have removed terms that may be offensive or objectionable amid the Black Lives Matter movement. Last week, ZFS co-creator Matt Ahrens submitted a GitHub pull request to “remove unnecessary references to slavery” from the OpenZFS codebase. Redis replaced the “master/slave” with “primary/replica” in 2018 and Chromium followed suit a year later. OpenShift and the UK’s National Cyber Security Centre have dropped the terms “whitelist” and “blacklist”.
But despite efforts from some of the industry’s biggest players, the shift to less-loaded language has been slow. Critics of the changes argue that the terms have become detached from actual slavery, and that the word “blacklist” refers to the medieval practice of tracking bad employees in black books to avoid hiring them in future.
And then there’s the problem that some changes can cause technical issues. A discussion on the Linux kernel mailing list considering a proposal to replace the terms “blacklist” and “whitelist” with “blocklist” and “allowlist” raised the issue that a “blocklist” could describe a list of block objects. The term “denylist” was floated as an alternative.