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

Rename master branch to main branch #4945

Closed
Pandapip1 opened this issue Mar 25, 2022 · 32 comments
Closed

Rename master branch to main branch #4945

Pandapip1 opened this issue Mar 25, 2022 · 32 comments

Comments

@Pandapip1
Copy link
Member

Pandapip1 commented Mar 25, 2022

See: https://www.theserverside.com/feature/Why-GitHub-renamed-its-master-branch-to-main

Issue on EIPIP repo: https://github.com/ethereum-cat-herders/EIPIP/issues/122

So that the EIP editors can accurately gauge if the community desires this, please vote with 👍 or 👎. (I've reacted with both so that both reaction buttons appear, so subtract 1 from both counts).

List of EIP-related repos with master as the primary branch name: #4945 (comment)

@MicahZoltu
Copy link
Contributor

MicahZoltu commented Mar 26, 2022

For an advanced view into my personal opinion on this matter (which will likely come up in a longer discussion):

I'm strongly against renaming things due to current political climate/pressure. What is PC changes on a near daily basis now, and it is way too much cognitive overhead to try to keep up. On this specific matter, the master/slave terminology accurately represents many constructs in software engineering, and just because at some point in history someone used the terms to represent certain relationships between humans doesn't change the meaning of the terms nor degrade their usefulness in expressing relationships between things.

Also, and this is much more abstract and philosophical, I feel like in the ethos of anti-censorship, we shouldn't try to censor speech in our repositories (barring extreme cases of disruptive behavior). In this case, defaults have preference barring a good reason beyond the desire to censor certain kinds of speech, and at the moment that means master.

@Pandapip1
Copy link
Member Author

This is going to turn into a debate very quickly.

I'd also like to apologize in advance if any of this offends anyone. If it does, please do point it out to me, because I'd like to avoid accidentally offending people where possible.

I'm strongly against renaming things due to the current political climate/pressure.

I'd prefer 'current' to be defined. It's coming up on two years since Git has offered this suggestion.

What is PC changes on a near-daily basis now, and it is way too much cognitive overhead to try to keep up.

Here's a proposed solution: publicize the EIPIP repo more, and have the community vote. I definitely agree with you that a four-person team of volunteer EIP editors is not sufficient.

On this specific matter, the master/slave terminology accurately represents many constructs in software engineering

I agree that that terminology can be useful for e.g. VMs, but I fail to see the connection for Git repositories. A master branch has no connection to the master/slave terminology. I think it's more a reference to a "master copy" - and there is no such thing as a "slave copy". For this purpose, "main copy" works just as well.

In addition, other terminology may be far more accurate in expressing how systems work. In a system where the terms "scheduling node" and "executor node" apply, it seems a bit silly to use more ambiguous terms such as a "master node" and a "slave node" - especially when community consensus is against the usage of those terms.

Just because at some point in history someone used the terms to represent certain relationships between humans doesn't change the meaning of the terms nor degrade their usefulness in expressing relationships between things

I'm afraid I have to disagree with this point about it not changing the meaning or degrading the usefulness. Look no further than the history of Pepe memes - originally having no connotation, then having a racist connotation, and now a connotation that I'm not sure anyone really knows. But the fact is, people did make racist Pepe memes and changed the meaning of Pepe memes (giving Pepe memes, including ones made before the change a slight racist connotation), and also changed the utility of them (nobody wanted to be called racist for making a Pepe meme).

Also, and this is much more abstract and philosophical, I feel like in the ethos of anti-censorship, we shouldn't try to censor speech in our repositories

Firstly, does that extend to, for example, off-topic posts? I feel like there's a line at which it's okay to censor things if there is consensus.

Secondly, whose speech would we be censoring?

In this case, defaults have preference barring a good reason beyond the desire to censor certain kinds of speech, and at the moment that means master.

Reasons have now been provided above as to why using main over master is desirable. We'll see whether they are proven to be good or not.

Anyways, I always welcome feedback. These kinds of changes always work best when everyone agrees, so please provide me with any refutations you can think of.

@MicahZoltu
Copy link
Contributor

I'd prefer 'current' to be defined. It's coming up on two years since Git has offered this suggestion.

By this I just mean "the state of political correctness right now". There are some things that are "currently" politically correct and have been for decades or centuries, and there are some things that are "currently" PC that weren't a mere 2 years ago. Essentially, I don't think political pressures should be what drive us to choose our terminology, and definitely shouldn't be what drives us to change our terminology.

Here's a proposed solution: publicize the EIPIP repo more, and have the community vote. I definitely agree with you that a four-person team of volunteer EIP editors is not sufficient.

I'm pretty strongly against democracy as a solution to problems/disagreements, because it turns into tyranny of the majority (which is often disconnected from what is right/good/correct), and it is heavily subjected to human biases which leads to marketing, brigading, social signalling, etc.

I tend to agree that main is a reasonable name for a primary git branch name. If someone is creating a new repository and chooses that as their default branch name I have no qualms with it. My qualms are only with changing a well established name of a thing for political reasons alone. I don't think master causes anyone confusion, so the threshold for "do we need to change this" isn't met, and main isn't sufficiently better in terms of evoking the proper mental model in the reader to meet the threshold for "concrete value addition by making a change".

Firstly, does that extend to, for example, off-topic posts? I feel like there's a line at which it's okay to censor things if there is consensus.

Curation definitely has value, but when curating I think there is significant value in limiting the curation to the most problematic stuff. It is very easy to take curation too far, to the point where you are excluding people because you don't like the way they communicate, the words they choose, or the thoughts they have. For me, renaming things primarily for the sake of following the latest trends in political correctness is across that line (censorship vs useful curation).

@abcoathup
Copy link
Contributor

I support renaming.

Using main as the branch name is easy for new repos, whilst changing an existing repo has non-zero costs.

My biggest concern was that it would break external references to the repo, though this appears to be addressed:
https://github.com/github/renaming

Redirect web requests for the old branch name to the new branch name

What is the cost to perform this rename? I assume person hours to rename the branch and update & test automation, which would be good to quantify. What other costs are there?

Which other repos in https://github.com/ethereum use the old default name and could be changed?

@MicahZoltu
Copy link
Contributor

What is the cost to perform this rename? I assume person hours to rename the branch and update & test automation, which would be good to quantify. What other costs are there?

I would also like to understand the benefit to renaming. The only one I am aware of is that the proposed name aligns better with a particular political viewpoint. Is there some technical benefit from renaming?

Understanding the benefits will help us weigh them against the costs. If the only benefit is satisfying one particular political viewpoint (while simultaneously offending another), then I think "do nothing" is the most neutral stance we can take (and I think neutrality is good here).

@abcoathup
Copy link
Contributor

abcoathup commented Apr 1, 2022

The social benefit is to remove a name that is offensive to some people. A name change makes a repo more inclusive and welcoming. It's unfortunate that people who are not offended by an existing name would be offended by a name change.

Is there some technical benefit from renaming?

The only technical benefit I can see is consistency with other open source projects. The default in GitHub for new repos is main so the assumption is that the majority of new repos, and assuming continued growth, the majority of all will eventually be main.
Though given there is support for both the existing name and main, dependency on any specific branch name is likely to be much less of an issue over time.

The benefits are social inclusiveness and minor technical consistency vs offence by anti-renamers, costs of renaming + any risks of breaking things.

[edit]: It is on the agenda for EIPIP meeting, so that meeting can decide if the status quo is better or if the benefits of renaming out way the costs.

@Pandapip1
Copy link
Member Author

any risks of breaking things

I'll open an issue on the EIP bot repo, in case this is an issue in that case.

@SamWilsn
Copy link
Contributor

SamWilsn commented Apr 3, 2022

I am neutral on the decision to rename the master branch to main. I just want any stance we take to be uniform and consistent, and the decision process to be well documented for all repositories under the ethereum organization.

The social benefit is to remove a name that is offensive to some people.

If I called you a "git", would you be offended? Is the term "commit" offensive to people involuntarily committed to mental institutions?

@abcoathup
Copy link
Contributor

@SamWilsn
Hopefully it is a given by now that this name is offensive to some people. See the work that has already been done on this.
https://lore.kernel.org/git/CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apdWDg@mail.gmail.com/

Other prominent organizations have performed this rename.
https://github.com/github/renaming/

The Ethereum community has previously shown that it believes words matter with the rename of an opcode to selfdestruct
https://eips.ethereum.org/EIPS/eip-6

@Pandapip1
Copy link
Member Author

Also, I don't think that this has any risk of breaking any tooling. Renaming to main will cause master to just redirect to the new branch.

@Pandapip1
Copy link
Member Author

Considering the lack of progress, there definitely needs to be a protocol for these types of changes. I would say the EIPIP repo would be ideal, but I think that the purpose of EIPIP meetings is different enough from determining what is or isn't offensive that the task might warrant its own meta-EIP and corresponding protocol.

@SamWilsn
Copy link
Contributor

SamWilsn commented Apr 4, 2022

Hopefully it is a given by now that this name is offensive to some people.

I didn't mean to imply that master is not an offensive term to some people. My intent was to point out that there are other offensive words which we should treat similarly.

@abcoathup
Copy link
Contributor

@SamWilsn

My intent was to point out that there are other offensive words which we should treat similarly.

A simple approach is to:

  1. Adopt industry wide changes where the case for the change has already been made and it is something we are able to do where the benefits outweigh the cost, such as the name change to main.

  2. If there are specific word(s) that are primarily only in Ethereum, then first a case needs to be built for a name change, such as the name change to selfdestruct.

The examples you gave of git and commit would fall into an industry wide change, so if they were deemed an issue would need to be led by projects such as Git/GitHub. We could then evaluate after these projects made such a change.

@AbhinavMir
Copy link

I support renaming too.

Language and the definition of words in certain context changes in society, it isn't uncommon. As @abcoathup mentioned, EIP-6 has proposed this sort of change before. This change of branch name is simply a change in naming convention to adopt an industry wide standard. This switch wouldn't cause any errors from what I can tell. The term master might be offensive to some, it certainly doesn't sit right with me (thus the commentary) due to the relationship of past Imperial rule in the country - however, personally I'm not much affected by this. Others might react differently to this situation, and it might make EIP and Ethereum less accessible to them.

@MicahZoltu
Copy link
Contributor

MicahZoltu commented Apr 13, 2022

Hopefully it is a given by now that this name is offensive to some people. See the work that has already been done on this.
https://lore.kernel.org/git/CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apdWDg@mail.gmail.com/

Just because someone claims X does not make X true. None the less, I am willing to accept that there exists one or more people who are offended by the name. However, as Sam illustrated, given 8 billion humans in the world you can likely find one or more people offended by just about every word in the dictionary. Presumably, there exists some critical mass of offended people that warrants changing a long held speech pattern, and it is unclear that such a critical mass is reached. We do not have a good credibly neutral and repeatable mechanism (like Sam discussed) to determine whether a critical mass of offended people have been reached.

Other prominent organizations have performed this rename.

Follow-the-leader isn't a reasonable strategy IMO. Other prominent organizations also build centralized services, harvest user data, spy on you, etc. (all things I think we agree Ethereum should not do) I think any arguments in favor of this change should rest solely on the merits of the change, not because "other people are doing it".

The Ethereum community has previously shown that it believes words matter with the rename of an opcode to selfdestruct https://eips.ethereum.org/EIPS/eip-6

I wasn't around for that change, but it was in a time when the community was far smaller and the number of people you needed buy-in from was also much smaller. Ethereum in that time also wasn't nearly as credibly neutral as it is now (see The DAO hardfork). FWIW, Uncles was also renamed to Ommers around the same time I believe.

@AbhinavMir
Copy link

I - and others here, I believe, have a hard time understanding your argument against the change of branch name. In the last comment, you have used ~250 words to argue the change of one (1) word. It seems trivial, and I feel you're letting your personal, political opinions cloud what is correct in the present social context - in your political view, it is PC (politically correct) to use the word "slave" casually, but that doesn't make it acceptable or correct.

You could have put forth your political views in about one line.

@abcoathup
Copy link
Contributor

I appreciate that a mechanism for deciding on making such changes is required, especially as potential changes could be contentious. I am also mindful that we have limited people involved in the EIP process, and we want to make the most of this limited resource.

The appropriate forum to move this forward appears to be the EIPIP meetings. It was previously parked due to lack of a champion on that call.

If someone reading this wants to champion this issue and is available in the meeting timezone, then they can ask to attend an EIPIP meeting to help bring this to a close.

@corbanvilla
Copy link

@abcoathup I'm available during that time and I'd be happy to lead the issue.

@basememara
Copy link

Even though I'm not of African American decent, it's definitely offensive to me whenever I hear it. I get a little sad inside when it comes up since it reminds me of the 400+ years of slavery and wicked oppression even up to this day. Although I fully recognise its not the intention of many, I can't help but think about it. I don't know if this original naming was intentional propaganda or pure ignorance. If the current naming doesn't offend you, it's probably because it doesn't affect you. I really wish tho the black community within the Ethereum community would have more input and say on this topic.. instead of a bunch of whites, Arabs, Latinos, and others discussing it 😁

Linus, creator of git and Linux, said before he always liked main from the beginning but not sure why it ended up like that; and later banished master, blacklist, etc from Linux. This was also a recommendation set by the Software Freedom Conservancy which originally prompted Git to rename.

The naming is part of a specification and specs evolve. How can Ethereum expect others to follow its specs if it has a hard time following others' specs. Ethereum is a leader and others copy its convention blindly; this change will cascade to other ecosystems that depend and lookup to Ethereum. We're not just a bunch of robots, we have social and human aspects that should be a factor in things. Plus as a bonus, main is shorter and actually makes more sense.

@MicahZoltu
Copy link
Contributor

The appropriate forum to move this forward appears to be the EIPIP meetings. It was previously https://github.com/ethereum-cat-herders/EIPIP/issues/118#issuecomment-1090323309 due to lack of a champion on that call.

For issues like this I personally would prefer to keep the discussion out of the call until we decide it is time/necessary to make a final decision. Unfortunately, political topics tend to consume huge amounts of time in calls and are rarely productive, which is why All Core Devs calls (and many other technical open community calls) have gone to great lengths to avoid/minimize them.

Do people here feel that there is nothing more to be gained from asynchronous discussion in this thread?

@basememara
Copy link

I don't think anyone has a problem with this change, and at the same time everyone is concerned with the side effects. If @corbanvilla or someone who has enough context to make this change can write up the steps involved, I think the concerns would melt away and we can move this to a synchronous discussions for when to officially pull the trigger. Knowing what's involved is key and hoping we can materialize that here.

I've made this rename change on some GitHub repo's before and was super simple, and had the team update their clients and was barely a 5 minutes change and disruption:

  1. https://github.com/github/renaming
  2. https://www.git-tower.com/learn/git/faq/git-rename-master-to-main

I totally realize and appreciate there's much more moving pieces here and fully share the concerns, but with the automatic aliasing in place it can be a slow and gradual migration.

@SamWilsn
Copy link
Contributor

I don't think anyone has a problem with this change [...]

Even ignoring the work required to perform it, I still have a problem with this change.

I also understand that the word does have a history, and negatively affects contributors. That's why I try to be neutral on the subject.


In the interest of keeping things consistent, and to avoid having to rehash this discussion a bajillion times, here is a list of the Ethereum org. repositories active in the last ~three weeks that use master as the default branch:

@abcoathup
Copy link
Contributor

Do people here feel that there is nothing more to be gained from asynchronous discussion in this thread?

I'm keen to see a quick resolution to avoid it becoming politically heated & drawn out. Even if the decision is to keep the status quo for now. Hence thinking a timeboxed synchronous discussion could be the best way to get to a resolution.

Given the number of repos in the EF GitHub org what is the best forum for a name change discussion? I don't know what autonomy each repo has.

Finally, whilst I think changing to more inclusive language is important, I don't want it to delay the merge (switching off PoW).

@corbanvilla
Copy link

corbanvilla commented Apr 15, 2022

I'm keen to see a quick resolution to avoid it becoming politically heated & drawn out.

That definitely makes sense, I'll continue to monitor this channel for additional input in the coming days. If we conclude most arguments have been voiced by early next week we can make a decision.

Even ignoring the work required to perform it

There's definitely a large number of repositories that fall under this. Though most people in favor of this would probably prefer a change in all Ethereum repositories at once, we could also consider a gradual phase change. Fedora project did something like this.

It also appears that there's an API endpoint to enable this change. I would be more than happy to write a script that would apply this change globally.

I appreciate how busy everyone here is and want to minimize the cost on everyone's time and energy. I also know this change would make a difference for a significant number of people and continue bringing more talent to the Ethereum space.

A gradual phase out would look something like:

@MicahZoltu
Copy link
Contributor

MicahZoltu commented Apr 15, 2022

I am much more strongly against the Ethereum Foundation setting rules on language usage that are applied across all repositories in the Ethereum GitHub organization. That being said, I highly doubt they would do such a thing as they have historically taken very back seat (credibly neutral) approach to anything that may be considered stearing the community.

Each GitHub repository has its own set of owners who each have (as individual groups) a lot of autonomy over their respective repositories, and this is a very good thing IMO. I don't think any of us should be getting involved with how go-ethereum names their branches, as none of us are active go-ethereum developers (the same for all of the other repositories).

@MicahZoltu
Copy link
Contributor

I'm keen to see a quick resolution to avoid it becoming politically heated & drawn out. Even if the decision is to keep the status quo for now. Hence thinking a timeboxed synchronous discussion could be the best way to get to a resolution.

I quite strongly favor no-change if the discussion is cut artificially short, especially for contentious/political topics where being credibly neutral is a desirable feature.

@corbanvilla
Copy link

I am much more strongly against the Ethereum Foundation setting rules on language usage that are applied across all repositories in the Ethereum GitHub organization.

That's fair, you definitely have a point there. Taking that into consideration, I think this conversation should stay pertaining to EIPs.

I could however see a potential benefit in official guidelines published by the Ethereum foundation, like a Code of Conduct which outlines recommended inclusive language. Then it's up to the autonomy of each repository how those guidelines are used, interpreted and enforced. Here's an example. I acknowledge that this is probably not the forum for that conversation, though.

@SamWilsn
Copy link
Contributor

Such an overarching policy could be an Informational EIP, and then its discussion thread might be a good forum.

@github-actions
Copy link

github-actions bot commented Aug 3, 2022

There has been no activity on this issue for six months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added stale and removed stale labels Aug 3, 2022
@github-actions
Copy link

There has been no activity on this issue for 1 week. It will be closed after 3 months of inactivity.

@abcoathup
Copy link
Contributor

@Pandapip1 should this issue remain open or have the editors decided not to do it at this stage?

@Pandapip1
Copy link
Member Author

This is just stagnant. It might be re-opened later. I'll change it to "not planned."

@Pandapip1 Pandapip1 closed this as not planned Won't fix, can't repro, duplicate, stale Aug 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants
@MicahZoltu @basememara @corbanvilla @abcoathup @AbhinavMir @Pandapip1 @SamWilsn and others