This article is more than 1 year old

Developers renew push to get rid of objectionable code terms to make 'the world a tiny bit more welcoming'

'Blacklist' and 'master' keep getting removed from source code

Amid the protests over the death of George Floyd, activists in the software community have taken the opportunity to remind people that they're trying to do away with terminology tied to racial oppression.

On Monday, Scott Hanselman, a programmer and educator who happens to work at Microsoft, published a blog post about how to rename the "master" branch in code repositories created using Git version control software with a less loaded term.

"The Internet Engineering Task Force (IEFT) points out that 'master-slave is an oppressive metaphor that will and should never become fully detached from history' as well as 'In addition to being inappropriate and arcane, the master-slave metaphor is both technically and historically inaccurate,'" he wrote.

"There's lots of more accurate options depending on context and it costs me nothing to change my vocabulary, especially if it is one less little speed bump to getting a new person excited about tech."

This comes from an IETF draft document published in 2018, the same year developers involved in Redis and Python made a push to purge "master/slave" terminology, not to mention Rails.

That same year, the terms elicited a bug report in Google's Chromium project, one that has led to a series of changes since then, percolating down through various header and source files to change "blacklist" to a term without racial overtones, "blocklist," and "whitelist" to "allowlist."

On Saturday, that effort led to a proposed name change for the classes in the components/blacklist directory, the effect of which can be seen in code diffs like this one.

Put those empty boxes over there, by the stock photography lighting rig

Redis does a Python, crushes 'offensive' master, slave code terms


Google did not immediately respond to a request for comment, but these changes represent an attempt to comply with the company's code inclusivity guidelines for its Chromium project.

Google is far from the only company dealing with this issue. Pivotal's LicenseFinder swapped "whitelist" for "permitted licenses" in January. Box is currently discussing a shift to "allowlist" and "denylist." Elixir nixed the terms about a week ago. OpenShift merged a pull request to adopt alternate language four days ago. Yelp modified its secret scanning code about two weeks ago. The osquery project is working on it.

Among those contributing to the open source Git project, "master" terminology came up in a mailing list discussion last month about fixing the terminology in the Git source code. The proposal met with resistance, partly because of the amount of work it would entail.

In response to a post arguing for revised wording, Brian Carlson, a developer at GitHub who also contributes to the Git codebase, acknowledged the concerns that have been raised about the terms and objections to making changes. He expressed willingness to review potential changes to Git source code that would purge the term but said he couldn't undertake the project himself.

"It appears that if we made the obvious one-line change to builtin/init-db.c, we'd have 304 tests that fail, which is about a third of our test suite," he said.

At GitHub, the GitHub CLI replaced "master" with "trunk" about two weeks ago and the GitHub Desktop software did the same n 2019.

Despite significant support for these changes, there are also detractors who point out that Git's use of "master" hails from sound recording rather than slave owning (as opposed to the master/slave descriptors applied to device networking) and that "master" has other connotations, like expertise in a field.

Google's guidance on inclusive coding, which focuses more on the use of gendered terms rather than racial ones, notes some of the potential problems with trying to apply inclusive language. For example, coders are advised to avoid the gendered pronoun "he," but "he" is okay if it refers to Helium, the ISO 639-1 language code for Hebrew or the first person conjugation of the Spanish verb "Haber."

Hanselman acknowledges that vocabulary revision does not erase history or make people less racist. "All it does is make the world a tiny bit more welcoming," he said via Twitter. ®

More about


Send us news

Other stories you might like