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

Change branch name from master #4991

Open
Venefilyn opened this issue Jul 6, 2024 · 41 comments
Open

Change branch name from master #4991

Venefilyn opened this issue Jul 6, 2024 · 41 comments

Comments

@Venefilyn
Copy link

Hi

With main branch being the default in git and many organizations doing it as well it would be good to change the master branch over to something else. main is what git defaults to now and other sites too like GitHub

@mxxcon
Copy link

mxxcon commented Jul 6, 2024

Renaming a branch in a git repo will do as much to the actual world problems as clicking on 👍 on an instagram post with inspirational quote.🙄

@Venefilyn
Copy link
Author

Renaming a branch in a git repo will do as much to the actual world problems as clicking on 👍 on an instagram post with inspirational quote.🙄

Master in the sense of branches mean the one in control, i.e. default branch. Which can draw parallels to master-slave wording. For Git the meaning for master has never been that it's worthy of a release or stable in any way, it's been to indicate the default branch

The name itself also doesn't work well if you are unfamiliar with git or the English language. Look up the definition of master and you'll be confused if you don't know the word and what the usage is. Look up the definition of main (if it's not obvious already) and it's clear that it's the primary one

@imagico
Copy link
Collaborator

imagico commented Jul 6, 2024

For changing something like this with the resulting inconvenience and substantial costs for hundreds of style users you would really need weighty arguments (which i have not seen so far).

Independent of that the claim made is not clear to me. Is it that master is an unsuitable label or is is that main is a better label?

In the former case the logical choice would be to use an artificially constructed label rather than an existing term in an existing language - because an existing word always runs the risk of being considered unsuitable in a certain cultural context for reasons of the historic practice of use of the term. In the latter case the argument is doubtful - especially if you look at the broader etymology of the words across indo-germanic languages in general - see https://en.wiktionary.org/wiki/master and https://en.wiktionary.org/wiki/main for some hints.

Generally speaking we are standing here in the tradition of OpenStreetMap as a whole - where we use English language terms as labels (for tag keys and values) for technical convenience (in particular because of ASCII as the de facto smallest common denominator in terms of character sets), but which are semantically disconnected from the original meaning of the terms in English. Style contributors (which are the ones for whom the branch names have relevance) will largely be familiar with that paradigm of labeling and will therefore have no problem with the branch names.

@riiga
Copy link

riiga commented Jul 6, 2024

There is absolutely zero reason to change the branch name apart from changing it for the sake of change.

@mxxcon
Copy link

mxxcon commented Jul 6, 2024

For Git the meaning for master has never been that it's worthy of a release or stable in any way, it's been to indicate the default branch

For Git the meaning for master has never been that it's parallel to slave ownership in any way.

The name itself also doesn't work well if you are unfamiliar with git or the English language.

If you are unfamiliar with git or English language and you are learning things, these are just things that you learn and how they are named.

Considering the original Discord message where you linked to this issue https://discord.com/channels/413070382636072960/473237734316572672/1258942920124530768 said:

Just opened an issue to track changing the branch name in OSM-carto. Though fully expect it to be met with an angry mob

It seems like this issue wasn't raised due to a serious concern but just to stir things up.

@HolgerJeromin
Copy link
Contributor

Just to add some context:
Many repos has changed default branch name three years ago:
https://about.gitlab.com/blog/2021/03/10/new-git-default-branch-name/
Others kept the name.

As I am not a regular dev here I am neutral to this change.

@Venefilyn
Copy link
Author

Venefilyn commented Jul 6, 2024

For changing something like this with the resulting inconvenience and substantial costs for hundreds of style users you would really need weighty arguments (which i have not seen so far).

@imagico Inclusiveness. See several DEI initiatives

Also while compiling this I found this site https://inclusivenaming.org/ which does include it as a tier 1 replace immediately

Independent of that the claim made is not clear to me. Is it that master is an unsuitable label or is is that main is a better label?

The former. master is an unsuitable label. You can have other names to replace it such as main, latest, current, stable, or whatever fits the project best

Generally speaking we are standing here in the tradition of OpenStreetMap as a whole - where we use English language terms as labels (for tag keys and values) for technical convenience (in particular because of ASCII as the de facto smallest common denominator in terms of character sets), but which are semantically disconnected from the original meaning of the terms in English. Style contributors (which are the ones for whom the branch names have relevance) will largely be familiar with that paradigm of labeling and will therefore have no problem with the branch names.

They will also be largely familiar with names that better describe what the branch is and new style contributors or other groups do not have to figure out what master means. But that isn't really the problem but the language itself of using master. Even things like whitelist and blacklist are bad terms as they connotate black as bad.


There is absolutely zero reason to change the branch name apart from changing it for the sake of change.

@riiga It's for more inclusiveness as mentioned in my earlier messages


If you are unfamiliar with git or English language and you are learning things, these are just things that you learn and how they are named.

@mxxcon Why? It is a lot more intuitive for main or other descriptive channel names

It seems like this issue wasn't raised due to a serious concern but just to stir things up.

No, just that people don't like change and personal experience with seeing this years ago when the initiatives first started to pop up. I was indifferent to it back then but after reading up on it I'm fully for changing the names and having more inclusive languages. Please don't put words in my mouth

Many repos has changed default branch name three years ago:

@HolgerJeromin And many DEI initiatives stood by this change as well or even were the ones to push it with inclusive language initiatives. Such as master slave to primary-replica or something like it.

@imagico
Copy link
Collaborator

imagico commented Jul 6, 2024

I am not going to discuss US culture and language use here (since this is not my culture). The idea to desire the eradication of the use of certain words in a language because of historic uses of these words seems peculiar to me - but that is my perspective as an outsider to US culture.

This is an international, cross cultural project and we therefore expect contributors to be tolerant towards world wide cultural diversity - which includes use of language.

To give you an example: Github labels me as a collaborator on this issue tracker - which is deeply insulting in my cultural sphere (see here for some context). Yet i tolerate this (as well as other cases when the term collaboration is used in IMO inappropriate ways) because i know other cultures have a different use of language where the semantics of words and subtext to formulations differ and where people use this term while not being aware of its historic origin. I practice cultural inclusiveness by being accepting and tolerant towards such uses of language, which - within my culture - would be considered offensive. And i expect and need to be able to expect from others a similar level of acceptance and tolerance towards my use of language to be able to communicate verbally in cross cultural contexts. Same applies for this project as a whole.

So if - in light of this - you still want to suggest us to eliminate use of certain English language words from our project it is advisable to provide reasoning that can be understood independent from your specific cultural sphere and values.

@Dimitar5555
Copy link

Master in the sense of branches mean the one in control, i.e. default branch. Which can draw parallels to master-slave wording. For Git the meaning for master has never been that it's worthy of a release or stable in any way, it's been to indicate the default branch

The master branch doesn't control anything, nor it is a release or stable version. The last two are represented by "tags" (https://github.com/gravitystorm/openstreetmap-carto/tags). Master is used to indicate that it's the master copy which should be used for all new branches/PRs.

Have you thought what will happen downstream with all forks of this repo? Suddenly a lot of people will have a master branch with no updates and a new main branch. They will have to spend time in order to find where the problem is, update their documentation and fix their automations, which would result in even more wasted time, just for the sake of change.

Not only that, this very discussion is wasting people's time and you seem to be aware of that fact.

@Venefilyn
Copy link
Author

Venefilyn commented Jul 7, 2024

The master branch doesn't control anything, nor it is a release or stable version. The last two are represented by "tags" (gravitystorm/openstreetmap-carto/tags). Master is used to indicate that it's the master copy which should be used for all new branches/PRs.

@Dimitar5555 This isn't necessarily a universal truth. Most projects have the latest changes in the main branch. Tags and releases are for indicating stable points in the repo that are deemed release worthy. But the main branch can mean different things. If the main branch is supposed to always be stable and always work, then it is by it's usage a stable or latest branch. Using master still has negative connotation

Have you thought what will happen downstream with all forks of this repo? Suddenly a lot of people will have a master branch with no updates and a new main branch. They will have to spend time in order to find where the problem is, update their documentation and fix their automations, which would result in even more wasted time, just for the sake of change.

It's not just for the sake of change. It's for the sake of inclusiveness. Yes, automation will break. downstream forks will get a notification that this repo no longer has a master branch, but when the default branch has changed GitHub will show a popup on this repo saying how to update your fork

If you want an example on a repository which changed their branch name and that is a lot more popular than this take a look at https://github.com/ceph/ceph or https://github.com/cri-o/cri-o

Not only that, this very discussion is wasting people's time and you seem to be aware of that fact.

You chose to engage, I don't control of how you spend your time. If it's wasteful to you to discuss inclusiveness that's not on me

@natrius
Copy link

natrius commented Jul 8, 2024

How does this achieve inclusiveness? Have there been people who explicitly said, "Well, the branch is called 'master' and not 'main' and therefore I won't contribute?" For me, when I hear "Master" without any context, I think of something like Master of Science https://en.wikipedia.org/wiki/Master_of_Science, as it's a common term where I'm from. The word "Master" has various meanings as you said yourself and as shown in https://www.dictionary.com/browse/master.

In the context of GitHub and programming, "master" never made me think of "slave master." I think GitHub's switch to "main" might have been partly to avoid discussions on this topic.

That said, I believe it comes down to a simple cost-benefit calculation:

  • If the change can be implemented easily without causing significant problems, it makes sense to announce a transition period so people can prepare and make the switch. Those who think it should not change because it doesn't matter should not have an actual problem with that change, because... "The name of the branch doesn't matter anyway!"
  • If the change would cause considerable issues, then it might be better to wait until there's a compelling reason to make it.

I think with that it could ensure that changes are made thoughtfully and with minimal disruption.

@pnorman
Copy link
Collaborator

pnorman commented Jul 11, 2024

I'm not opposed to changing and have been using main for some time. Before considering it we would need to know what impacts it would have, particularly on existing PRs. What existing documentation is out there that explicitly pulls from master?

@1ec5
Copy link

1ec5 commented Jul 11, 2024

Although it would be a good idea to keep the documentation in sync, renaming the default branch through the Web interface shouldn’t break existing workflows. Anyone viewing or pulling the old branch gets redirected to the new branch, and existing PRs get retargeted automatically. (This wasn’t originally the case when people started adopting “main” a few years back.) You could try it on a throwaway repository to verify that it works as advertised.

@zyphlar
Copy link

zyphlar commented Jul 13, 2024

I appreciate the move to "main" (it's also fewer characters to type!) and if it doesn't break anything then I see no reason not to. "Master-slave" terminology in computer science evokes concepts with a lot of negativity, whereas using words that directly mean what you intend benefits everyone (as others have pointed out.)

@mxxcon
Copy link

mxxcon commented Jul 13, 2024

"Master-slave" terminology in computer science evokes concepts with a lot of negativity.

If a word master in a free open source version control system brings up associations with human slavery, I think you have other more important psychological issues to work on rather than contribute code...

@imagico
Copy link
Collaborator

imagico commented Jul 13, 2024

Please stay respectful, ad hominem attacks and insinuations are not a productive contribution here - neither are suggestions that certain culture/subculture specific implications of words apply globally across cultures.

As i have tried to indicate already: Both the view that the use of the term master as a branch name in our repository is inappropriate and that it is an appropriate and fitting term to use are acceptable views that deserve respect and tolerance.

@mxxcon
Copy link

mxxcon commented Jul 14, 2024

If I finished 6 years of university education and got Masters Degree, does that make me a slave owner?

If somebody is very experienced and skilled at something they are called a master. Does that mean they are a slave owner or trader?

Isn't there an idea that if you want to disempower some word you take ownership of it and repurpose it for your positive thing?

@zyphlar
Copy link

zyphlar commented Jul 14, 2024

It's sure possible for things to have multiple meanings but master/slave is a general computer science term that has been changed in many other contexts. Git doesn't have a concept of a slave branch but it retains the similar meaning of the primary controller of authority in the repository; no skill is mastered in the main git branch, there is no educational degree of mastery being conferred. It's the master branch because all other branches are seen as subordinate to it.

Here's another example of a more explicit technological naming shift. https://en.wikipedia.org/wiki/I%C2%B2C Yes it takes some getting used to and irritating technological transition but getting away from the idea of some things being superior is good. A more accurate name than even "main" might be default, because that's really what it means in git. Or develop/release.

@Venefilyn
Copy link
Author

I'm not opposed to changing and have been using main for some time. Before considering it we would need to know what impacts it would have, particularly on existing PRs. What existing documentation is out there that explicitly pulls from master?

@pnorman The GitHub repo about renaming goes into a lot of detail what will change and what won't be https://github.com/github/renaming

On top of that, GitHub will also show a tooltip when you visit the repo again saying that the default branch has changed and how to update it locally

@amandasaurus
Copy link

This is change (to main) is a great idea. There is a reason that this is becoming the default in many places. It's been the default on github for almost 4 years

GitHub makes it easy to change (as 1ec5 says. The default git clone will still work for people. Third Party Documentation will not need to be updated.

Have there been people who explicitly said, "Well, the branch is called 'master' and not 'main' and therefore I won't contribute?"

Yes! Continuing to use master negatively affects the image of the project. It looks like an old fashioned project, and people will wonder what else is old fashioned here. It also gives the impression that the project has lots of people who want to “ännoy the liberals/left wing people”.

I'm Irish, I speak Hiberno-English, not US English. This is not just a matter of US Culture. You can't just pretend this is some regional issue you can ignore. Even the UK has had trouble dealign with it's slaveing past.

@imagico
Copy link
Collaborator

imagico commented Aug 1, 2024

@amandasaurus - i am not going to discuss Irish culture here any more than i am going to discuss US culture. As indicated above in #4991 (comment) i would like to hear arguments that can be understood independent from your specific cultural sphere and values.

It also gives the impression that the project has lots of people who want to “ännoy the liberals/left wing people”.

Frankly, if you conclude from the use of certain words by people from outside your cultural sphere that they intend targeted annoyance of people with a certain political view (liberal/left wing) within your cultural sphere then you will have substantial difficulty constructively engaging in any cross cultural community. Like i said above: I cannot assume that someone talking about collaboration w.r.t. me has the intention to insult me - no matter how much reading that word makes me cringe.

That is why assume good faith is essentially the prime directive of social interaction in OpenStreetMap.

Wouldn't you want, when you communicate to people in their native language - like when you talk in German to Germans - that when you use terms in disregard of historic sensitivities within a certain culture/subculture or when you infer the meaning of the German term from etymologically related terms from other languages (like Latin magister, German Meister, Italian maestro, French maître) that people don't hold it against you? And going further from that: Wouldn't you say that if someone insist on holding this against you and that you stop using the term in question and threatens to ghost you/cancel you if you don't comply that this is not a very good basis for a productive social interaction in a culturally diverse community?

@Venefilyn
Copy link
Author

Venefilyn commented Aug 1, 2024

i am not going to discuss Irish culture here any more than i am going to discuss US culture. As indicated above in #4991 (comment) i would like to hear arguments that can be understood independent from your specific cultural sphere and values.

@imagico I've linked plenty of resources in this thread as to why it's putting people off. This change is a small change with relatively little downtime that increases the accessibility for people who feel that master is a bad or icky term for them. Master is also not a very descriptive word for those whose first-language is not English. You need to look it up and figure out what master actually means. Having a more standardized default branch name together is good not only because it's more fitting for non-English speakers but also speaks volumes to being inclusive.

Frankly, if you conclude from the use of certain words by people from outside your cultural sphere that they intend targeted annoyance of people with a certain political view (liberal/left wing) within your cultural sphere then you will have substantial difficulty constructively engaging in any cross cultural community. Like i said above: I cannot assume that someone talking about collaboration w.r.t. me has the intention to insult me - no matter how much reading that word makes me cringe.

Collaborator is not something we can change, that is something you can bring up with GitHub if anything. Master branch on the other hand is something we do have control over and with the massive push years ago on making this change happen it only works in our favor to change it. I'm sorry that collaborator is not a good term but as GitHub doesn't allow that to be changed per organization or repo, you can create a separate issue to see about migrating away from GitHub to something like Codeberg, GitLab, or a self-hosted Forgejo instance where the term might not be used.

Cultural spheres will be prevalent everywhere you go. I am 100% sure that master will not be a universal bad word. In fact, it's not. But that doesn't mean you cannot be more inclusive by taking small steps here and there to ensure that as many groups as possible feel included, especially minorities

With minorities, be it culturally, personality alignments, skin color, nationality, disability etc. they have relatively small power in the world, which is why so many companies and organizations also create DEI groups to ensure that they are represented as well as they could. Because most people, i.e. the majority, don't think about these things or realize it is a problem for others. This is why I want to get the master changed, I spend time out of my day to advocate for changing that in this repo because I want to be able to contribute and feel welcome. I do not feel comfortable with the current name.

That is why assume good faith is essentially the prime directive of social interaction in OpenStreetMap.

I don't think anyone has said otherwise in this thread. Not by me, Amanda, or others who support the change. All we're saying is that it is no longer a term we should be using

Wouldn't you want, when you communicate to people in their native language - like when you talk in German to Germans - that when you use terms in disregard of historic sensitivities within a certain culture/subculture or when you infer the meaning of the German term from etymologically related terms from other languages (like Latin magister, German Meister, Italian maestro, French maître) that people don't hold it against you? And going further from that: Wouldn't you say that if someone insist on holding this against you and that you stop using the term in question and threatens to ghost you/cancel you if you don't comply that this is not a very good basis for a productive social interaction in a culturally diverse community?

That is a big leap that I don't understand really. If someone brings up that a term is outdated or bad in one way or the other, yeah definitely they should hold it against you if you insist on not respecting them by continuing that usage. People do not cancel others for something they didn't know about. They cancel people for things they were willfully ignorant about or against that is harmful for a certain demographic. I would not want to use the n-word, even the soft n-word, even if I felt like it, because it is actively harmful. If we're thinking about other languages like Spanish where the term for black is negro, that is not an issue because that's just how the language is used. But overall, context matters.

Diversity is not only important for those who cannot represent themselves because they feel uncomfortable, it's also important for having different views on aspects

@imagico
Copy link
Collaborator

imagico commented Aug 1, 2024

If someone brings up that a term is outdated or bad in one way or the other, yeah definitely they should hold it against you if you insist on not respecting them by continuing that usage.

To make sure i understand this correctly. If anyone objects to a certain word being used in a certain context everyone else in your eyes is ethically obliged to stop using that word in that context after the objection has been raised?

If that is the case i would like to ask for examples where this principle is successfully and sustainably applied in a culturally heterogeneous community. How does this function practically? How do newcomers learn which words they need to avoid? Do such communities maintain lists of banned words? How would that work for master? How would you specify in what contexts the word is banned and where it is acceptable to use it?

@Venefilyn
Copy link
Author

Venefilyn commented Aug 1, 2024

To make sure i understand this correctly. If anyone objects to a certain word being used in a certain context everyone else in your eyes is ethically obliged to stop using that word in that context after the objection has been raised?

If that is the case i would like to ask for examples where this principle is successfully and sustainably applied in a culturally heterogeneous community. How does this function practically? How do newcomers learn which words they need to avoid? Do such communities maintain lists of banned words? How would that work for master? How would you specify in what contexts the word is banned and where it is acceptable to use it?

I'm not sure I follow how this is relevant to having this repo changed. If a completely isolated community who spoke English were suddenly thrown into a global stage like the internet, then yeah they likely would not want to hurt other people and stop using terms that has a historical reason for being bad, otherwise they wouldn't be respected if they deliberately used it.

Taking the extreme from before, if you were isolated in a community where the n-word was common and not meant as an insult in any regard whatsoever and then you were thrown into the internet with other communities and situations, you would definitely be told that you should not use that word. You would not be cancelled right away, people might be angry, but you would definitely be cancelled if you kept using the word or disregarding that people think it's bad. Even saying something like "where I'm from the word just means a person of color, nothing else", it wouldn't fly. It is still disrespectful. Same applies with the r-word and other terms

@imagico
Copy link
Collaborator

imagico commented Aug 1, 2024

I'm not sure I follow how this is relevant to having this repo changed.

I am trying to understand the general principle that stands behind your suggestion. Only if i understand that i can form a qualified opinion if or not i support your suggestion.

If a completely isolated community who spoke English were suddenly thrown into a global stage like the internet, then yeah they likely would not want to hurt other people and stop using terms that has a historical reason for being bad, otherwise they wouldn't be respected if they deliberately used it.

But why is it that the formerly isolated community has to adjust to the cultural norms of the other people and not the other people and the formerly isolated community being obliged to respect and tolerate each other symmetrically? Keep in mind that from the perspective of the formerly isolated community the rest of the world is the isolated community and they are the global stage. Is it a matter of numbers (the utilitarian argument: the needs of the many weigh more heavily than the needs of the few)?

To be clear: I am asking these questions not to attack your view but to understand it.

@Venefilyn
Copy link
Author

But why is it that the formerly isolated community has to adjust to the cultural norms of the other people and not the other people and the formerly isolated community being obliged to respect and tolerate each other symmetrically? Keep in mind that from the perspective of the formerly isolated community the rest of the world is the isolated community and they are the global stage. Is it a matter of numbers (the utilitarian argument: the needs of the many weigh more heavily than the needs of the few)?

It comes down to the ever elusive word of inclusiveness. If there exist a counterpart word for whatever causes an issue for one community, we should use it. Likewise if there is a word that is bad for that specific isolated community and they don't want it seen, there can be a fight for trying to get it changed too

When we come into the matter of "when does it stop?", we don't. We adapt to what is appropriate and isn't appropriate at the time. But that doesn't mean everything has to change to align with a select few. Things align to align with minorities where it would be a benefit. If a specific person has an issue with a specific term it might be difficult to push for changing it depending on the topic. But if they form a larger group of people who all want this change due to its negative perception to them, such as trauma related words, then yeah it makes sense to try to find an alternative that works for as many people as possible

@mxxcon
Copy link

mxxcon commented Aug 1, 2024

I and my community find the word git to be offensive therefore this project should stop using it.

@imagico
Copy link
Collaborator

imagico commented Aug 1, 2024

Likewise if there is a word that is bad for that specific isolated community and they don't want it seen, there can be a fight for trying to get it changed too.

What does that mean? How is it decided if one culture/community is to adjust to the wishes of another culture/community? The term fight indicates that this is not a matter of arguments and reasoning or a matter of the number of people but a matter of power.

It would really help if you'd try to answer my questions because based on your comments from today so far i don't have the impression that i am getting closer to understanding the principles that stand behind your suggestion.

@Venefilyn
Copy link
Author

Venefilyn commented Aug 1, 2024

I and my community find the word git to be offensive therefore this project should stop using it.

If that's how you feel, feel free to suggest it in a separate issue, not here.

How is it decided if one culture/community is to adjust to the wishes of another culture/community?

If one wants to be inclusive or not, that's it


I think I've said my point over and over in this thread and it's honestly insulting when several people have come to either troll or to try and incite anger to those who want this change rather than debating the reason for changing away from main. There are people supporting this change and several resources exist online for projects who have already changed, which includes GitHub. Until specific questions from contributors to OSM Carto who want to actually consider this comes up I will not be debating this any further

@zyphlar
Copy link

zyphlar commented Aug 1, 2024

I agree that when one hears that a word causes pain, well-meaning people seek to reduce use of that word. If "git" was actually used like the r-word to harass and oppress a whole demographic, we might actually seek to change the software name (as in the Glimpse fork of the Gnu Image Manipulation Program, which I fully supported and am sad no longer exists.) It's not actually that hard to change things around, it just requires willpower and the smallest amount of cooperation.

@imagico
Copy link
Collaborator

imagico commented Aug 1, 2024

Until specific questions from contributors to OSM who want to actually consider this comes up I will not be debating this any further.

It is perfectly all right to just make a suggestion and not engage in debate and arguments. But i like to point out again that specific questions have been asked and i have also explained why these questions are important for me to understand the underlying principles that motivate the suggestion made and to form a qualified opinion on this.

Some of the comments made here are likely perceived as provokative and brusk and a few have also crossed over to being objectively disrespectful and insulting (and i have reminded participants here to refrain from that). Dealing with different cultures and personal styles in communication in a highly diverse international project like this can be challenging. Anyone who struggles with that in some form should be respected. But i also would like to encourage people to value and appreciate this diversity in views and approaches to articulate them and to regard that as a valuable source of insight.

I am still interested in understanding the general principles and ethical considerations behind the suggestion made in this issue. So if anyone can help me understand those that would be appreciated. The questions i asked in my comments to @amandasaurus and @Venefilyn could serve as a starting point.

@amandasaurus
Copy link

amandasaurus commented Aug 2, 2024 via email

@imagico
Copy link
Collaborator

imagico commented Aug 2, 2024

@amandasaurus - your polemics and evidently baseless claims and insinuations about my opinion are non-helpful.

As said already: I am interested in the general principles and ethical considerations behind the suggestion made. If the questions i asked to you indicate a fundamental misunderstanding of these then please clear this up. I formulated these questions in reaction to statements made by you and @Venefilyn to clear up things i did not understand.

And if you object to and loathe the fundamental ideas and values of OSM-Carto (which includes valuing the argumentative discourse and the holistic perspective on design problems) as much as you indicate then it might be a good idea to create a fork and convince the OSMF to use that instead of OSM-Carto. Not contributing to the various issues where we explicitly ask for input/help (like here and here) and then complaining from the sidelines about those who try their best to solve these issues - as volunteers, without getting paid - that they are doing it wrong is just, well, cheap. Though - to be fair: Open complaints from the sidelines are still better than badmouthing and smearing behind the scenes like some others do.

@natrius
Copy link

natrius commented Aug 2, 2024

As stated before, if changing the branch name can be done without significant issues for third parties (as it seems to be possible as to some answer here in the issue), it should be done. The terms "master" and "main" are functionally equivalent, and contributors can understand "master" in its technical context.

However, adopting "main" aligns with what seems to be getting industry standard and avoids further discussion. Context is important (technical in this case) it does not hurt to be emphatic towards those who find "master" offensive, regardless of its technical intent.

Considering this, i think the change should be made if it poses no significant technical difficulties.

My personal thoughts besides that would probably lead to further (unnecessary) discussion :D

@boredsquirrel
Copy link

Very well said. It is a small change but really needed.

@1ec5
Copy link

1ec5 commented Aug 3, 2024

What I wrote in #4991 (comment) isn’t quite accurate:

Although it would be a good idea to keep the documentation in sync, renaming the default branch through the Web interface shouldn’t break existing workflows. Anyone viewing or pulling the old branch gets redirected to the new branch, and existing PRs get retargeted automatically. (This wasn’t originally the case when people started adopting “main” a few years back.) You could try it on a throwaway repository to verify that it works as advertised.

As a test, I just renamed the default branch on an obscure repository in my account that I hadn’t touched in years. Here’s what the setting looks like:

Your members will have to manually update their local environments. We'll let them know when they visit the repository, or you can share the following commands.

When I saved the new branch name, pull requests and branch protection rules got updated as advertised. If someone happens to follow a link to a file on the master branch, GitHub redirects them to the corresponding file on the main branch. This is important for a repository with as long and storied a history as osm-carto.

Branch master was renamed to main.

GitHub also updated the forks of this repository to point to the new branch:

This branch is 7 commits behind 1ec5/…:main.

The next time I visited the repository’s homepage, it showed me a notice about the change; I assume others would see this too:

The default branch has been renamed! If you have a local clone, you can update it by running the following commands.

However, my local clone of the repository did not get updated automatically. I had a local branch tracking the master branch on the remote. When I attempted to pull the latest changes, Git fetched the new main branch but informed me that the master branch does not exist (apologies for the Vietnamese localization):

% git status
Trên nhánh master
Nhánh của bạn đã cập nhật với 'origin/master'.
…
% git pull
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 26 (delta 19), reused 25 (delta 19), pack-reused 0
Đang giải nén các đối tượng: 100% (26/26), 4.41 KiB | 188.00 KiB/giây, xong.
Từ https://github.com/1ec5/…
 * [nhánh mới]       main       -> origin/main
Cấu hình của bạn nói cần hòa trộn với tham chiếu 'refs/heads/master'
từ máy dịch vụ, nhưng không có tham chiếu nào như thế được lấy về.

I had a vague recollection that GitHub would at least send the Git client a message about the renamed branch, but this doesn’t appear to be the case. Sorry for any confusion I’ve caused. The upshot is that someone maintaining a fork, such as a contributor, would experience a more seamless experience than someone who has merely checked out this repository for personal use.


In the past, before GitHub implemented a built-in branch renaming workflow, I tried doing it more manually for a much less obscure repository:

  1. Branch main off of master and make it the default, but do not rename master to main.
  2. Manually change the target of every open PR from master to main.
  3. Search GitHub for any references to the master branch in other repositories and contribute PRs to update these links.
  4. Every now and then, run git merge --ff-only main on master to keep it in sync with main.
  5. After about a year, post an announcement issue to let people know that master will no longer be kept up to date. Pin the issue. A major release with breaking changes would be a good occasion for something like this.

This approach minimizes any disruption to people who are checking out the repository directly. In my case, it was important because most people were checking out the repository via a package manager. Fortunately, I don’t think this is the case with osm-carto. The downside is that GitHub probably won’t update forks, and if you ever delete master, links to it will break (which is a good reminder to always link to a specific commit hash).

Anyways, those are two approaches to renaming the branch while minimizing disruption, should you decide to do so.

@imagico
Copy link
Collaborator

imagico commented Aug 3, 2024

Thanks for the research into the technical side, @1ec5. Could you check if

GitHub also updated the forks of this repository to point to the new branch

means that a rename would propagate to forks (i.e. that their master branch would get renamed as well)? That would be a big no-no for us because we have a lot of forks with a high degree of independence that we would not want to alienate by imposing our labeling decisions on them.

Personally i think the best technical support to handle naming disputes like this would be if git would have support for automatically synced synonym labels (so anyone in their git repo could create such and then refer to that custom label in the same way as they would to the default branch under its original label), In addition github could offer users to customize the label under which the default branch is displayed to their cultural preferences.

That IMO would be clearly the most inclusive solution to the problem.

This is of course merely a theoretical consideration. And even if such features did exist i am currently unsure if this would satisfy the proponents of changing the name. Because it seems the goal is the eradication of the use of the term in general. If that is the case then not being confronted with that label yourself is obviously non-satisfying, others would need to stop using the label as well.

@1ec5
Copy link

1ec5 commented Aug 3, 2024

Could you check if

GitHub also updated the forks of this repository to point to the new branch
means that a rename would propagate to forks (i.e. that their master branch would get renamed as well)? That would be a big no-no for us because we have a lot of forks with a high degree of independence that we would not want to alienate by imposing our labeling decisions on them.

The fork’s own master branch is still called master, but it now tracks the upstream’s new main branch. So each fork’s owner is responsible for choosing their default branch name independently.

It would be nice if GitHub could similarly fix the remote tracking for master branches on local clones, but it doesn’t sound like something GitHub has any control over. I would’ve hoped that GitHub would at least issue a message for the Git client to display when pulling, much like the message about starting a PR when pushing a branch to GitHub.

Personally i think the best technical support to handle naming disputes like this would be if git would have support for automatically synced synonym labels (so anyone in their git repo could create such and then refer to that custom label in the same way as they would to the default branch under its original label), In addition github could offer users to customize the label under which the default branch is displayed to their cultural preferences.

It is very easy today to clone this repository, check out the master branch, and locally rename it main or anything else. If you do so, it would continue to track the repository’s master branch. It’s also possible to fork this repository solely for the purpose of renaming master to main on that fork. Nevertheless, when you contribute a PR, that PR will target master.

If that is the case then not being confronted with that label yourself is obviously non-satisfying, others would need to stop using the label as well.

Kind of. I’m not sure anyone here cares if someone clones this repository and locally renames main back to master. How could anyone know what you do in your own home anyways?

For better or worse, the default branch name is a choice that a project maintainer makes to represent the project. Well before 2020, it was already popular in some circles to rename master to “develop” (as in the iD repository) or “staging” for other reasons. A common critique of that practice is that it forces ordinary contributors who participate in multiple projects to juggle a variety of bespoke branch names for the basic task of returning to the most active branch of a repository.

As it is, main and master are the two most common default branch names, on GitHub and overall. I don’t know of any usage statistics, but the trend is most likely in main’s favor, given GitHub’s default default. (Git’s official guide to branch management also devotes a section to renaming master to main.)

To @amandasaurus’ point, this probably means master will increasingly be seen as outmoded or strange, even to someone unaware of the social commentary around these choices. It may not look as outmoded as a project’s choice to stick to Subversion or 8.3 file names, but it’s enough to make someone pause and wonder why. That could serve as an unwanted distraction from the task of designing a map style, as this discussion has ironically demonstrated.

@imagico
Copy link
Collaborator

imagico commented Aug 3, 2024

The fork’s own master branch is still called master, but it now tracks the upstream’s new main branch. So each fork’s owner is responsible for choosing their default branch name independently.

Thanks for checking.

this probably means master will increasingly be seen as outmoded or strange, even to someone unaware of the social commentary around these choices.

To me that argument actually works in the opposite direction than intended.

The contributors we need and want to attract most are (a) people with diverse cultural backgrounds and geographic experiences and (b) people with talent and skills in map design. Both of these target groups tend to be highly familiar with being perceived as strange by their own social environment or by the dominant demographics in English language internet projects. A project that appears strange by mainstream standards does not give the same impression to people from within and from outside the mainstream.

And regarding outmoded (or old-fashioned for people like me unfamiliar with the first term) - we are already perceived as such in huge parts of the OSM-Community. And that works towards our advantage as well. Art != fashion. Serious art and design is often perceived by fashion oriented people as old-fashioned or non-trendy. Our aim is to create an excellent map for the global OSM community, not to run after the latest trends in software or visual design fashion and re-invent everything over and over again. We need contributors interested in and capable of contributing to an already mature, sophisticated map with a more than a decade long history who value this legacy.

And - as already indicated from a slightly different perspective - being open and tolerant to strangeness and non-fashionable use of language in communication is an important qualification for inter-cultural communication. We should not try to actively deter people who lack in that ability but we also should not pretend this is not significant.

@1ec5
Copy link

1ec5 commented Aug 3, 2024

I was just looking at it in practical terms, knowing how strongly folks in this discussion feel about changing the branch name versus leaving it alone.

Indeed, serious art usually does carry a serious message, and I respect that you want the style to stand for more than aesthetics. What you see here is people wondering why it has to stand for this particular choice, of all things, which amounts to a non-sequitur in the context of how osm-carto is consumed as a work of design.

Keeping the branch name would not meaningfully contribute to the project’s design legacy, nor would changing it – at least not compared to editorial choices such as achieving a fair balance between rural and urban needs, something I know you care deeply about. But just as a painting is sometimes seen in a different light due to factors well beyond the four corners of the canvas, the code/process/discussion in this repository also reflects on the artwork that it produces. Unfortunately, an artist can only do so much to control the narrative and perception of their work.

(That said, if you are interested in elements of an avant-garde development process, there are many other words that don’t start with ma that Git will accept as a branch name.)

@systemed
Copy link
Contributor

systemed commented Aug 4, 2024

(That said, if you are interested in elements of an avant-garde development process, there are many other words that don’t start with ma that Git will accept as a branch name.)

Clearly it should be called trunk both because it is and for the OSM highway allusion.

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