🐱 GitHub to replace "master" with alternative term to avoid slavery references

  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
CatParty

GitHub is working on replacing the term "master" on its service with a neutral term like "main" to avoid any unnecessary references to slavery, its CEO said on Friday.


The code-hosting portal is just the latest in a long line of tech companies and open source projects that have expressed support for removing terms that may be offensive to developers in the black community.

This includes dropping terms like "master" and "slave" for alternatives like "main/default/primary" and "secondary;" but also terms like "blacklist" and "whitelist" for "allow list" and "deny/exclude list."

The concern is that continued use of these racially-loaded terms could prolong racial stereotypes.


"Such terminology not only reflects racist culture, but also serves to reinforce, legitimize, and perpetuate it," wrote academics in a 2018 journal.

BLM PROTESTS SPUR NEW EFFORTS TO CLEAN OUT SOFTWARE LANGUAGE
Now, spurred by the Black Lives Matter protests across the US, the tech community is engaging again in efforts to remove such language from source code, software applications, and online services.

For starters, the Android mobile operating system, the Go programming language, the PHPUnit library, and the Curl file download utility have stated their intention to replace blacklist/whitelist with neutral alternatives.

Similarly, the OpenZFS file storage managerhas also replaced its master/slave terms used for describing relations between storage environments with suitable replacements.


Gabriel Csapo, a software engineer at LinkedIn, said on Twitter this week that he's also in the process of filing requests to update many of Microsoft's internal libraries and remove any racially-charged phrases.

Other projects that don't use racially-charged constructs in their source code or user interfaces directly are now looking at their source code repositories.

Most of these projects manage their source code via the Git software, or the GitHub online portal (which provides Git-based source code hosting).

Both Git and GitHub use the term "master" for the default version of a source code repository. Developers fork a version of the "master" to create secondary versions, add their own code to this default version, and then merge their changes back into the "master."


Now, several open-source projects are changing the name of their default Git repo from "master" to alternatives like main, default, primary, root, or another.

For example, ZDNet found that projects like the OpenSSL encryption software library, automation software Ansible, Microsoft's PowerShell scripting language, the P5.js JavaScript library, and many others are looking at changing the name of their default source code repos, in a bid to stamp out racially-charged and slavery-related terms, in a way of showing support for the BLM movement and their protests.

The move has taken the open-source development community by storm, so much so that even the Git project itself is now considering an official change, albeit discussions in its mailing list and GitHub Issues section are still going on, with considerable pushback.

GITHUB SUPPORT LEGITIMIZES AND STREAMLINES MOVEMENT
But even if Git formally replaces the "master" name or not, GitHub appears to have decided to move on, regardless of Git's decision.


On Friday, Google Chrome developer Una Kravets tweeted that the Chrome project was considering a similar move of renaming the default branch of the Chrome browser source code from "master" to a neutral term like "main."

Kravets asked GitHub to follow Google in its move and help drive change across the industry, a move to which GitHub CEO
Nat Friedman answered promptly, revealing that the company was already working on the issue.


GitHub lending its backing to this movement effectively ensures the term will be removed across millions of projects, and effectively legitimizes the effort to clean up software terminology that started this month.

But, in reality, these efforts started years ago, in 2014, when the Drupal project first moved in to replace "master/slave" terminology with "primary/replica."


Drupal's move was followed by the Python programming language, Chromium (the open-source browser project at the base of Chrome), Microsoft's Roslyn .NET compiler, and the PostgreSQL and Redis database systems.

However, despite some pretty big projects getting on board, efforts to clean up software language across the years have not been widely embraced.

Most detractors and the explanation that often resurfaces in these discussions is that terms like master/slave are now more broadly used to describe technical scenarios than actual slavery and that the word "blacklist" has nothing to do with black people, but the practice of using black books in medieval England to write down the names of problematic workers to avoid hiring in the future.
 
It's arbitrary because you can name it anything you want. Everything in Git is a branch with equal footing and their names don't matter internally. It only defaults to "master" because Linux used to use BitKeeper (which also called branches "slaves") and Linus never renamed the main branch when they switched over.

For comparison you can't rename "trunk" in SVN because it's fundamental to how the whole system works. Renaming "trunk" in SVN would be like renaming "branch" in Git, not "a branch", but the very concept of branches. In Git, "master" is just the name of "a branch" so it really doesn't matter.

For some projects the work is done on a "develop" branch and "master" is the release channel. For other projects "master" is the development branch and they tag releases. So it's not even true that "master" is the authoritative branch as it depends on the project management. As others mentioned some tools that prefer certain workflows already use other names.

At the end of the day who other than newbie CS students are creating new repos on GitHub and then cloning them? Doesn't everyone create repos locally and push them when they're in a state you're not embarrassed of? So the real change will be when Git itself changes and I'm sure adding a .gitconfig setting is no hassle for free PR.

This is what I liked about how Python did it. They renamed shit that didn't matter and stood firm on the stuff that did. I think in the end they only renamed <50% of what was initially proposed. They successfully fobbed off the SJWs yet still get positive praise in articles like this.
It's not just git itself that's the issue. There's the whole ecosystem of tools that involve git and sometimes (and perhaps this was a mistake) they rely on defaults like master. There's scripts, automated deployment, package repos and all sorts of other things that touch on this.

We're doing the same thing at my job, renaming the master branch to something else. We're doing it company wide and while 90% of it will be done pretty quickly, we're still going to have to devote way too much time to debugging the last 10%. I can foresee little fuckups cropping up for the next couple of months. Things like ssl certs don't get renewed because some script somewhere was pulling without specifying a branch and defaulted to master.

It's stupid silicon valley virtue signalling.
 
It's not just git itself that's the issue. There's the whole ecosystem of tools that involve git and sometimes (and perhaps this was a mistake) they rely on defaults like master. There's scripts, automated deployment, package repos and all sorts of other things that touch on this.

We're doing the same thing at my job, renaming the master branch to something else. We're doing it company wide and while 90% of it will be done pretty quickly, we're still going to have to devote way too much time to debugging the last 10%. I can foresee little fuckups cropping up for the next couple of months. Things like ssl certs don't get renewed because some script somewhere was pulling without specifying a branch and defaulted to master.

It's stupid silicon valley virtue signalling.
This is why I'd support a move to rename master in Git proper as long as it comes with a config option to mark the default branch. There's projects where it'd be better to rename master to something more descriptive but we don't in case it breaks something in the pipeline.

People would still bitch about it but in the real world it'd be a useful feature and Git would get free good publicity.
 
Last edited:
At least it still leaves you a choice for now ... how long until they just hard ban the word?
2020-12-24 01_29_00-Git 2.29.2.3 Setup.png
 
At least it still leaves you a choice for now ... how long until they just hard ban the word?
View attachment 1808945
Hey, I remember this thread. Good times.

Anyway, when I first saw that I wondered "in what way is the word 'master' not inclusive? Who is it excluding?" Then I remembered that the word inclusive has no actual meaning any more and they could just as well have written "The Git project intends to change this default to a more ghurjtlajfirj name in the future" and the sentence wouldn't be altered on a fundamental level.

I wish they'd just replace every woke shibboleth with the string [WOKE SHIBBOLETH] and stop pretending. People on their side are already true believers who don't register what's being said anyway and people who aren't on their side are already wise to their blatant fuckery, so the only real effect it would have is to increase the accuracy of absolutely everything a wokie says. Accuracy is good.
 
Back
Top Bottom