Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why did you rename master to main? #113

Closed
imbaniac opened this issue Jun 11, 2020 · 33 comments
Closed

Why did you rename master to main? #113

imbaniac opened this issue Jun 11, 2020 · 33 comments

Comments

@imbaniac
Copy link

In the context of git, the word "master" is not used in the same way as "master/slave". I've never known about branches referred to as "slaves" or anything similar.

On existing projects, consider the global effort to change from origin/master to origin/main. The cost of being different than git convention and every book, tutorial, and blog post. Is the cost of change and being different worth it?

PS. My 3 projects were using your lib and got broken thanks to the renaming. 😕

PS. PS. I'm glad I never got a master's degree in college!

@IJMacD
Copy link

IJMacD commented Jun 11, 2020

I think it's just a bad English/mis-translation problem.

I'm guessing @pmmmwh assumed 'master' meant like 主 in 奴隸主 (slave owner/master).

Actually a better translation would be 師 like 功夫大師 (Kung Fu master).

The specimen copies are made from.

@rubyFeedback
Copy link

I think it's just a bad English/mis-translation problem.

I am not so sure. See rubocop where some people tried to insinuate that the name is a problem due to the US-centric protest movement against cop violence. So perhaps that is a similar situation for the protest movement in Hong Kong.

Personally I think it is a very bad idea to leverage political views, even if I may share them, through software.

@jchristin
Copy link

In the context of git, the word "master" is not used in the same way as "master/slave".

This is not what Bastien Nocera try to demonstrate here.

@Hanse00
Copy link

Hanse00 commented Jun 11, 2020

The primary branch in git can have any name by design.

Forcing people out of the habit to assume this branch would be called master, is a valuable lesson.

@pmmmwh
Copy link
Owner

pmmmwh commented Jun 12, 2020

Why did you rename master to main?

Well, there are a lot of reasons, with the main reason being that I am empathetic to what is happening out there and I agree with many other people that we should re-examine our choice of words to make the industry more inclusive.

Maybe you can read this thread for more background and why this matters.

In the context of git, the word "master" is not used in the same way as "master/slave". I've never known about branches referred to as "slaves" or anything similar.

As some have already mentioned above (with sources), this is obviously not the case.

The cost of being different than git convention and every book, tutorial, and blog post. Is the cost of change and being different worth it?

There are many projects that does not use the master branch as default. For example, Next.js uses the canary branch, the npm CLI and many more other projects uses stuff like prod, production, dev, develop, release, beta, head.

I'm not sure if there's any cost in terms of contributing either, especially when by design git can have any branch as default, and will not hinder your experience when you use something other than master. It just happens that most projects chose to be "lazy" (stick to default), opted to use master - and to be honest I think it is more about sentiment than actual engineering practices now.

My 3 projects were using your lib and got broken thanks to the renaming. 😕

I'm not entirely sure why this change will break your projects. I'll assume that you're using the git installation feature of package managers. There was never any guarantee that code in the repository (even in the default branch) is by any means "stable" and "resilient to change", so by adopting git installations with latest source code you're effectively agreeing to go bleeding-edge. I would assume that means you're ready for any breaking changes and broken installations, which is what happened here.

Since this is a Webpack plugin, you'll have to install and run with Node.js anyways, I would suggest you switch to install the released next tag instead - which is a guaranteed "stable" and "locked" version.

I think it's just a bad English/mis-translation problem.

I completely understand that master have two meanings:

  1. A man who has people working for him, especially servants or slaves; and
  2. An original recording, film, or document from which copies can be made.

As aforementioned, the usage of master as a branch most likely originated from the first meaning, so I'm not sure who is taking master out of context here. Words should not only be interpreted by how you think is sensible, but also by how it would be perceived by others.

I don't think my English is bad enough to misunderstand meaning of words in specific contexts, nor do I need translation to understand English properly, even though it is not my first language. Making assumptions about my language ability because I'm an Asian from Hong Kong is rude to say the least, and it completely ignores the fact that I did my homework and research before making the decision to switch.

So perhaps that is a similar situation for the protest movement in Hong Kong.

Again, this has nothing to do with where I'm from.

Personally I think it is a very bad idea to leverage political views, even if I may share them, through software.

Whether you agree or not, to me there's nothing in this world that is entirely apolitical - when there are people there is politics. You don't have to agree with my views, nor do I expect you to. Diversity and disagreement is what drives mankind forward.

In the end this plugin is a piece of software that I wrote and I'm just doing what I think is reasonable to make our community more inclusive.

@pmmmwh pmmmwh closed this as completed Jun 12, 2020
@XANi
Copy link

XANi commented Jun 12, 2020

@pmmmwh Do take into consideration that tools generally break if there is no master branch. Like you're going to get seemingly random branch checked out (from my testing it seems like the lastest one but don't take my word on that) when cloning the repo

@JacksonBailey
Copy link

Like you're going to get seemingly random branch checked out (from my testing it seems like the lastest one but don't take my word on that) when cloning the repo

I believe the checked out branch is the remote repo's HEAD branch. Run git ls-remote. In GitHub (and generally most git hosts I've worked with) HEAD is the repository's "default branch". See this for more info, specifically the "warning" where it mentions git ls-remote.

@nanonyme
Copy link

Just my two cents regarding how to interpret master as to git: consider that "to branch" means semantically "to make a derived copy" in context of git. It seems strange to me you feel "master" could not possibly refer to master copy. You are obviously allowed to call master branch whatever you want as long as it is configured to be the default branch in the project. Otherwise confusion will insue.

@daneren2005
Copy link

People shouldn't be relying on master being the default branch. But I agree with above that it's pretty obvious that master is not meant in terms of master/slave at all. This just seems like more pointless virtue signalling everyone has been doing lately. But hey, your project, your choice.

@Nowadays
Copy link

Mixing git with what's hapenning in the world is utterly stupid to say the least, and here I always thought, we developers, were supposed to be smart to do the kind of job we do.
You're using twitter as a source of information, why am I supprised.
I've seen people kneeling and kissing other people' feet, now that, the world is fked up, and you're a contributor of it being more fked up every day.

Why don't we reprint every book containing master while we're at it.

Maybe we should rename master degree as it might feel offending to soft people.

Stupidity, as its finest.

PS: I don't even know what this repo is about, It popped in my news feed.

@Israel-Laguan
Copy link

The best solution from my point of view for other people's repos that want to do something similar is create a canary, prod or whatever name you want to be deployment target (don't forget to change default in configuration), create a note in readme about the change (please make a separate article or blog entry, not explain all your reasons in the readme) and leave master branch to a cinder for backward compatibility for a couple of months.

The problem here is not about the name but about sudden changes in a production repository. I respect your views, but let's keep the code flow Professional. Even bump versions need notice and a transition, so maybe the same can be applied here or in any public available code repo.

@looked-at-me
Copy link

@pmmmwh

In the end this plugin is a piece of software that I wrote and I'm just doing what I think is reasonable to make our community more inclusive.

You are excluding beginners that may not be as familiar with the tools and what they do or how they work. You are putting up an extra barrier to entry for those without the knowledge required by not following an established standard.

The change you've made causes more exclusion than inclusion. Software development is already difficult enough, it doesn't need politics complicating it even more and putting beginners are a farther disadvantage than they already are at.

-A beginner once upon a time ago

@z000mer
Copy link

z000mer commented Jun 13, 2020

first of all, just wanted to say this is the most pointless rename of all time. just... why

I think it's just a bad English/mis-translation problem.

I'm guessing @pmmmwh assumed 'master' meant like 主 in 奴隸主 (slave owner/master).

Actually a better translation would be 師 like 功夫大師 (Kung Fu master).

The specimen copies are made from.

lmao, what even is this condescending comment??
and how did op's projects manage to break from a branch rename? gotta be a pretty good programmer to achieve that

@medifle
Copy link

medifle commented Jun 13, 2020

I am wondering the next step these guys are thinking...
Do they want to change master degree to main degree in the future???
Or even further, deleting all master words in dictionaries, web and histories like 1984

🤢🤮

@IJMacD
Copy link

IJMacD commented Jun 13, 2020

I'd like to apologise for my earlier comment. Reading it back definitely makes me come off as a jerk.

As we were both in Hong Kong I thought an amusing example would reduce ambiguity since the word is obviously double loaded in English.

I made the comment before seeing all the press about this trend about renaming branches. I didn't seriously think anybody could mistake which definition of master people had in their heads whilst using git. I was obviously wrong to assume this.

Michael provided some very compelling evidence as to which route the word came to be part of git. I would caution against relying on etymology to infer meaning, however. Knowing author's true intention is anywhere from tricky to impossible. This is true in any language.

I have no idea whether Linus knew why master was used in previous VCSs and I don't know for certain if he's a racist or not. What I do assume however is that the majority of git users do not internalise the first definition when using git. Hence all the backlash.

At the end of the day this open source project has an active maintainer who has every right to rename branches as he sees fit. If anyone else cared enough they could fork and maintain it themselves, but that wouldn't be conducive to the open source spirit though, would it?

@alanxone
Copy link

alanxone commented Jun 13, 2020

TBH, "master" comes from latin "magister" that means "teacher".
The original meaning of it represents "chief" or "head".

Completely no idea why renaming such thing can show the support to diversity.

Changing the branch name is your rights, but shouldn't mis-explain the meaning of this term.

@ohadschn
Copy link

ohadschn commented Jun 14, 2020

You are excluding beginners that may not be as familiar with the tools and what they do or how they work. You are putting up an extra barrier to entry for those without the knowledge required by not following an established standard.

The change you've made causes more exclusion than inclusion. Software development is already difficult enough, it doesn't need politics complicating it even more and putting beginners are a farther disadvantage than they already are at.

-A beginner once upon a time ago

This. A lot of the comments here are talking how developers, scripts, tools, and tutorials shouldn't assume master is the main branch. Technically, I suppose that is correct. However, in the real world developers, scripts, tools, and tutorials DO assume master is the default branch.

Such a change will 100% have real world consequences, and will most definitely break stuff for various people. How many times do you suppose you'd find special treatment of the master branch if you looked through the code of git tools and scripts? How many tutorials would be rendered unusable for newbies when their very first step gets broken?

The irony here is that GitHub themselves are warning against this on the actual setting:

image

@Akronae
Copy link

Akronae commented Jun 14, 2020

Wow.. So basically you're trying to eradicate the use of the word "master" that makes me think of.. totalitarianism? ups

@Tapped
Copy link

Tapped commented Jun 14, 2020

The source for this movement is an email that assumes the meaning of master is the same as in Bitkeeper
https://mail.gnome.org/archives/desktop-devel-list/2019-May/msg00066.html

I've another Twitter source, who worked on git in 2005 (https://github.com/git/git/commits?author=pasky) who says

bilde

(https://twitter.com/xpasky/status/1271477451756056577?s=20).
He likes this rename, but that seems to be for other reasons.

I don't know who I would trust, but Pasky was at least part of the Core Git team, so he is more likely to know the backstory. And as others have said, if it's the master word we don't like, then we have a lot of cleanup left.

@noahsark769
Copy link

Thanks for doing this, I appreciate your effort. For those looking for more research about this terminology, please check out https://tools.ietf.org/id/draft-knodel-terminology-00.html#rfc.section.1.1.1

@Tapped
Copy link

Tapped commented Jun 14, 2020

@noahsark769 That's a draft, and there are probably reasons for it not being approved.

  • Blacklist has a history and it's not tied to racism at all (Sources: 1 & 2)
  • The master-slave terminology would most of us agree is something we should stop doing. However we should not mix that case with usage of master in isolation. Git has no concept of slaves at all, and basing the movement on that one email where someone assumes it came from Bitkeeper is ridiculous. Examples of usage of the other definition of master are: master copy, master record, master mixer and master file etc.
  1. https://www.macmillandictionaryblog.com/blacklist
  2. https://www.etymonline.com/word/blacklist

@noahsark769
Copy link

The thing for me is, it doesn’t matter what the history of the term is, honestly. Words have context based on interpretation by the reader, not the original intention. Renames like this shouldn’t affect outside consumers, and the maintainer in this case is taking a small step towards inclusive language, regardless of any history of git branch naming, so I’m applauding for that here

Happy to consider any reasons there are things wrong with that draft if anyone can cite discussion on it (the document itself does cite some real comments)

@alanxone
Copy link

Thanks for doing this, I appreciate your effort. For those looking for more research about this terminology, please check out https://tools.ietf.org/id/draft-knodel-terminology-00.html#rfc.section.1.1.1

Master-Slave in this IETF document mainly refers to DNS, and I agree with its explanation, and I do believe similar service, like redis or others can make a serious consideration for changing the name.

However, I don't think it applies to git context, as what I said, master itself comes from Latins and it means "head", "chief" or "teacher".

By default, master branch is regarded as the "head" or "chief" one since other branches should be reviewed before merging back.

I respect all the efforts showing support to make the developer community be more diverse, but it doesn't mean we need to erase the history of language.

@Tapped
Copy link

Tapped commented Jun 14, 2020

interpretation by the reader

It's impossible to communicate if we are not agreeing on definitions. Every person has subjective interpretations of the world, but language is one of those concepts where we've tried to put words on those things so that we are able to understand each other. Even if your red color might be different than my red color. That's why we also have dicitonaries, so that we can share this truth together. And it's true because we share it, not because the word is less likely to be interpreted differently.

Master is one of those words where context is needed, to understand the intent of the writer. So given the context of git, which one of the definitions would fit best https://dictionary.cambridge.org/dictionary/english/master?

@shengchl
Copy link

It’s very refreshing to land here from a Twitter feed to see so many rational explanations as to why renaming these conventions (or at least this particular convention) is a BAD IDEA. It has nothing to do with inclusiveness. It’s pure ‘hype surfing’ that seems harmless from the point of view of many people who only see on the surface, yet it brings distraction to the industry and makes lives of those who work or study hard even harder.

@LukasSlouka
Copy link

Slavery is not even racially charged... Throughout the history, pretty much every race enslaved every race they came into contact with, mostly their own. People forget how common slavery was. Every larger culture had it. In ancient Rome people even volunteered into slavery to avoid taxes or homelessness.

What is worse is that there are real slaves today in Africa and Asia and nobody bats an eye, instead people are virtue signaling with eradication of slavery related terms from programming languages and tools. It is beyond ridiculous. It is also clear that all these efforts are motivated by the concept of American slavery, which is not very inclusive, is it? What is next? Should we stop wearing cotton clothes?

If you remove historical references, you are asking for the history to repeat itself. That is why Auschwitz still exists.

@Akronae
Copy link

Akronae commented Jun 15, 2020

True, and we should stop using words like "black" which by then could have a pejorative meaning when used for "black people". As this word once was used to look down on other human beings, let's banish it from our languages. That's smart. Instead of saying "I wear a black shirt", which is not very inclusive because once "black", in one of its several meanings, was used for discrimination, we should say "I wear an extremely obscure shirt" or "I wear a #000 shirt". That's inclusive. That's nice. That's smart. And we will be able to consider ourselves activists who push the world forward. (While there are other real issues in this world, and breaking software will not help)

@WAUthethird
Copy link

WAUthethird commented Jun 15, 2020

I consider this to be a debilitating and pointless change. I feel there is absolutely no valid reason for it, and it causes more problems than it attempts to solve. Personal views are one thing, (I personally have no qualms about the intentions) but political correctness in a professional software environment is a bull in a china shop.

I encourage anyone writing a comment for or against this to stop what they're doing, and focus on the real issues - put your resources there.

If this is the way people think change happens - good god, you could not be farther from the truth. There is no issue here to fix.

For shame. Put your resources into something worth pursuing and stop this nonsense.

@Tapped
Copy link

Tapped commented Jun 15, 2020

With this type of argumentation I can reverse it to; who are you to speak on behalf of others? Why should you gatekeep what is considered negative or positive on behalf of others? Do you have proof for anyone being negatively affected by the word "master" in the git context?

I mean, we are not having a very useful discussion if that's how we are going to discuss this topic.

EDIT: The comment I was referring to was removed, so for reference:
bilde

@Akronae
Copy link

Akronae commented Jun 15, 2020

"Do you have proof for anyone being negatively affected by the word "master" in the git context?" Yeah he's Swedish it's well known that there are a lot of minorities there, he's really more qualified than us to speak about how minorities are affected. Damn.. who are we to speak of things we aren't even close of... 😕

Anyway so to follow this reasoning, if I say "I'm wearing a black shirt" does that might affect minorities?

And this could go on and on and on.. English in 10 years of social justice battling
sweet 🍧

@alanxone
Copy link

alanxone commented Jun 15, 2020

Anyone arguing against this is on the wrong side of history.

Sure, it sucks in the short term. And yeah, its PC inclusion being forced into contexts which might not make sense for you.

But small changes add up over time. If you sit in a cushy, highly paid job with a stable social environment and complete segregation from the working and ethnically oppressed class, maybe you're not the one who should be gatekeeping these kinds of changes? Who are you to speak about the importance of linguistic choices if you've never been negatively affected by them?

Like seriously, most people here are in the top 5-10% of the income bracket in your country. You can survive taking a day off fixing some minor CI issues to accommodate this change.

Your words totally hurt my feeling.

I'm from Taiwan (R.O.C), a country always being bullied by China (P.R.C), and we do lots of efforts to make society diverse and less discrimination, and we are even the first country allow gay marriage in Asia.

Our country sent military (my great grandpa was in it) and sacrificed themselves just to rescue hundreds of thousands European in South East Asia during WW2, In addition, we are also the one of five founding members of U.N, all of these can be found in history book.

We have several leading technology companies, like TSMC, hTC, ASUS, AUO, acer, BENQ, MSI, GIGABYTE, D-Link, Linksys...etc.

But now, we are under EXTREME pressure from China (P.R.C) over than you think, our nation flag isn't allowed to be displayed, and lots of companies list us as a Province of China (P.R.C) due to the pressure from Beijing,

China (P.R.C) always threats to use "military" if we don't agree their one China policy, and their fight flights frequently appears in our alert zone.

Furthermore, we are unable to participate WHO meeting despite this COVID-19 situation although our government sent huge amount of masks and medical supplies to numerous Europe countries.

Due to some bad behaviors made by Beijing Government, more and more countries start having anti-Chinese atmosphere, and unfortunately, we Taiwanese looks exactly the same as Chinese people, and I also heard LOTS of discrimination for Asians.

WE ARE HELPLESS, why I don't see people around the world go on street and ask their government making policy protect our human rights?

I SEE NO ONE, and there is no big technology company stand up to support us, why? Because they still want to make money from China, also governments of other countries.

I studied in UK & later went for master degree (well, this word again) in the US, and I worked hard to pay loan since only tuition fee of my first year undergraduate was sponsored by my parents.

I'm not those 5~10% people you mentioned.

Moreover, two of my best friends are African-American and they started own tech startup in US now, believe it or not, they don't feel being discriminated or have negative feeling for master use case in git context, but yes, master-slave have some issues with them.

I elaborate Taiwan situation to let you know, don't judge other people' opinion by own assumption.

@ppamorim
Copy link

ppamorim commented Jun 15, 2020

@AndrewTW So the comment has been deleted. Strange no? Maybe his selective commotion backfired.
@ePztSe93QVzEPY6p Holding yourself behind a stub account because you have no courage to show your own face.

Repository owner locked as too heated and limited conversation to collaborators Jun 15, 2020
@pmmmwh
Copy link
Owner

pmmmwh commented Jun 15, 2020

I have already explained my rationale behind the change, and I still stand by what I've said. It's absolutely fine for you to not agree with my decision, but I'm not reverting the change.

Yes, this change does not make slavery less of a problem in the real world.
If you do care, consider redirecting your time to support relevant organizations, instead of sitting here arguing about whether this change is pointless or not.

I am sorry if this change break your builds, but I hope this incident is irritating enough to make you realize that depending on a branch (any branch) of a package is dangerous. Breaking changes happens in software development, and more often than not they will land in the default branch. You should, at the very least, depend on specific git hashes/tags if you want to use this project without depending on npm's public registry. (In semantic versioning, it is perfectly valid to remove public facing APIs in major versions. The latest stable version is correctly pinned with the v0.3.x branch and with corresponding release tags.)

I'm locking this thread - the discussion here is borderline "off-topic" and is getting increasingly heated.

Feel free to open new issues if you have other things to discuss about the plugin.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests