Consider Renaming Default Branches

ding ding ding

Boxers, back to your corners. This is a friendly discussion about how to make the community more inclusive. Lets not start duking it out, that’s not productive. @vann if you would like to have a conversation about renaming ROS, you should start another thread and state your case there for further examination. I’m certain it would gain some, hopefully civil, discourse (hehe… get it?).

If you feel that harboring an inclusive and proactive community is inane (adjective silly; stupid.), that is your right, but please don’t dissuade others from doing so. I understand if you felt some wording was inflammatory, but I think you understood to spirit of her comment. If you actually believe that ROS as a name is problematic, and not just looking to be provocative, then I’m sure you would agree that removing master in favor of main (or my favorite root) is not only a good idea, its a necessary step in which I’m certain you would be inclined to actively participate in. I’m sure I can find some repositories you can help with, if interested.

10 Likes

It is sarcasm because once you open the door to this you do so for even more ridiculous manufactured offenses. As @felixvd says about “robot”:

The same is true of “master” in the context of computing. But if you’re going to reinterpret the meaning and then on that basis declare it needs to be changed then you also need new names for “ROS” and “robotics” too because that’s where you’re headed.

I never said that. Don’t put words in my mouth. Changing the branch name because it’s 2020 and the name is reinterpreted is a copycatting, feel good, accomplish nothing, make work, virtue signaling change. Any issues opened on this are inane and should be closed.

2 Likes

@admins can we lock this thread? I think this has sufficiently digressed and nothing good comes after this point. There’s no response at this point that isn’t argumentative or inappropriately off topic.

Edit:

It deeply saddens me that we couldn’t have an adult conversation about this very serious topic. It’s immaterial how inconvenient it is to change a branch name, mess with some CI settings, and rebase PRs. We as a community have active dissent, not even apathy, to taking actions to be respectful of our colleagues. Even if you believe its not important, you’re not the one aggrieved and your opinion is largely superfluous. You don’t get to decide what offends someone else.

You’re welcome to do whatever you like with your own projects, but I don’t think there’s a role for argument that this perpetuates substantive issues in our society, which seems to be the core thesis of many comments above (along with expected apathy towards the work required).

11 Likes

Could this be settled with an anonymous vote whether to commit to this project or not? Would that be least controversial and produce a decision quickly?

Philipp

1 Like

Disagree that the current state is DISRESPECTFUL.

We DO, and MUST, judge the MERITS of that offense - otherwise petty offenses will gain traction and detract from legitimate concerns. We should not allow names to be reinterpreted to an entirely different meaning and then use that as the basis to demand changing the name.

3 Likes

Serious question here, without going in either one way or the other on this topic.

That’s the thing: do you?

@smac: what would you consider a sufficient nr of people to be offended in order to change something?

Thing is: there are very many people not offended by these names. And as we’ve already heard, etymology no longer really matters here (@felixvd: you’re essentially doing the same thing: deciding who gets to be offended about what), it’s emotional at this point, which makes this topic something which cannot be discussed any longer.

Personally, I’ve always understood master to be short for master copy, ie: the one from which all others come, should be referenced against and to which all changes will be brought back. This meaning of the word makes much more sense to me in the context of version control than any of the others.

Apparently that’s not true; OK (in any case it doesn’t matter any more at this point).

But what I’m genuinly confused about is why the opinions of those who have a different perspective do not appear to count any more.

Being inclusive is important, but we’ve foregone changing things a few times in this community, with only a few people essentially boycotting a suggestion, that it’s somewhat surprising to me how this is something where dissenting opinions are dismissed as essentially irrelevant.

ROS aspires to be an open-source project, and I’m pretty sure there are quite a few repositories where OR is no longer the largest contributor (and even if they were, it should not necessarily mean they are the ones to always make the decisions). But from the announcement posted by @Katherine_Scott, it would appear the new policy will be instituted on all repositories where OR has access/maintainership.

If this is a decision based on inclusivity, should it not be made by including the community, instead of unilaterally by the people who happen to have Owner access on those repositories and a few closely related ones?

(and to be clear: I’m not comparing ‘trivial’ technical discussions to the real-world problem here)

The mistake here was assuming this was a discussion.

It is not and never was.

It was an announcement by OR following an internal decision.

Given the responses which can be found “all over the internet”, did you not expect posting this same topic here on ROS Discourse to result in similar responses?

8 Likes

I understood it the same way, and apparently that is how it was meant:

When Petr Baudis chose the word master for the main Git reference in 2005, he was thinking of the word as he would a “master recording.” The then-20-year-old Czech student and nonnative English speaker thought the word sounded nice, although in retrospect he wishes that he had chosen main .

(Tech Confronts Its Use of the Labels ‘Master’ and ‘Slave’ | WIRED)

Since we are all software developers, it should be clear to us that naming plays a very central role. Renaming the default branch is certainly a good but small step. It should not be the last.

It would be nice to see ROS been used more in middle and high school. When I search for KIDS + ROS I find nothing but It could be a market.

1 Like

I’m not a software developer. I’m a hardware engineer, you probably think of me as somebody who plays with tinker toys all day long, and that I’m barely one step above “end-user”.

Well, I might be

I’m currently working on a robot with a Jetson Nano as the “main brain”, or what I thought of as “master”, and 3 raspberry pis and 2 arduinos which are what I think of, or thought of, as “slaves”. Addressing them as either “publisher” or “subscriber” doesn’t work as an accurate description because they each do both, so master/slave was how I thought of them.

And since I am only barely one step above “end-user” (What would that be ? Implementer ? Builder ? Maker? Yea, that works) and I have basically no idea what I’m doing (software-wise), I have to rely on the tutorials in order to make things work. So I got to the point where I needed to test all the actual functioning of the motors and sensors (via ROS. I had already tested each part with a little python program before I installed them. I needed to test the pub/sub systems), and the robot (the Jetson part) tells me that it can’t contact the “master”. This is when I got to the part in the tutorial that told me that the computer that I’m sitting in front of is the one that is referred to as the “master” rather than the Jetson Nano that I had been considering that way all along

So now, it appears, that my desktop computer is really “master” (which I would have considered “client”) and the thing I thought of as “master” is really “host”, and… what does that make the raspberries and arduinos ? Maybe those are the “clients”…

Honestly people, teaching an old dog new tricks is hard enough as it is without changing the names just as I’ve only just now figured them out

I’m hoping that this suggested change won’t affect all previous releases, because, if it does…

Who’s going to edit all the tutorials ?

And what about all the changes to github ?

Or the ROS wiki ?

Is this change going to affect all my bookmarks ?

Is it possible that this conversation could be considered as an option for the next release, instead of changing things midstream, in the middle of development, where you can’t be 100% sure that it won’t break something that you didn’t think about ?

2 Likes

Ah. Yes. That. In ROS 1, the roscore command will start a master server. This is seemingly another master/slave relation.

I did indeed have this one in mind at some point, but did not want to start here with this discussion. Given the way this has been received, I would imagine quite a lot of conflict would be created by changing “rosmaster” / ROS_MASTER_URI.

Given that Noetic is to be the final release of ROS 1, and it has already been released, I highly doubt it will change.

There’s other things as well, such as catkin tool’s use of “blacklist” / “whitelist” (I have submitted a patch here). I’m sure there are others, and I’ll be sending patches as I run across them.

@gavanderhoorn the purpose of this thread is because those opinions from different perspectives do count. There are so many individuals in this community that I highly respect. I do not aim to call anybody out for naming things they did, imply anybody is racist, or otherwise unfairly attack anybody in this community.

I have my own project (maybe multiple, I don’t know off the top of my head) where I have a “master” and “worker” nodes. I have many git repositories that have a “master” branch. I once built a computer cluster where I have set host names as “master” and “slave 1” through “slave 4”. I admit I did not see these terms as offensive when I did these things. I see these instances as errors, and I feel led to correct them. Others may not, but I do.

Honestly, I did not expect a similar response. I generally find this community as welcoming, and I wouldn’t consider it one that likes to be elitist or exclusive in any form.

You are all entitled for your opinions, and I highly appreciate those of you voicing yours here, and those of you carrying on the conversation elsewhere.

3 Likes

Why not? In just about every community in which this topic has come up, we’ve seen similar discussions.

Even in those who eventually decided to go along with a suggested change.

How is asking about the rationale behind this (and similar) suggestions a sign of elitism?

<non-native-speaker-alert> similar to @Katherine_Scott’s post, this seems to imply not so nice things about people who ask questions </non-native-speaker-alert>

That’s an interesting article.

I find these quotes very much on-topic:

There’s never been a complementary use of slave in GitHub’s repository architecture.

and:

As more organizations reexamine their language, coders are engaging in intense debates about the extent to which these words matter. If there is no “slave,” does “master” need to go?

It’s rather unfortunate, but as I wrote earlier, I do not believe this matters any more.

If only because of the fact that due to threads like this one here on ROS Discourse, the negative connotation of masters-and-slaves in the context of what is happening in the US has contaminated the use of master as a branch name in Git (or any other VCS).

5 Likes

To start off we’ve stated that black lives matter. This is an emphasis on something that should have been true under the expectation that all lives matter, however the reality is that it has been untrue that all lives were valued evenly. It needs to be emphasized because to people who are affected, “ALL lives matter” is erasing their voice. This may not be as apparent to people outside the US.

If what I’m saying is surprising to you, please feel free to reach out to me via direct message or email and I’m happy to provide you with more resources and context. It’s an important topic but this is not the right forum for a deeper discussion.

We as a community are not very diverse. There are many historical reasons for this, but that does not mean that we shouldn’t do something to change that. Diversity in all its many dimensions is important. Those of us with the benefit of being in the privileged position of being in a well established positions need to pay attention to not abuse that privilege to the exclusion of others. It may be true that the majority of people do not find something offensive, but that does not mean that we should just keep doing that thing. As doing so will simply drive away those in that subcommunity and subsequently deter the growth of that subcommunity. Collectively small things like this can accumulate into a intolerant culture that is unwelcoming to new people. We need to stay aware of how we behave is seen by other people. Some of these conversations may make people uncomfortable that are unused to having uncomfortable conversations, but they are still important to have because not everyone has the same experience.

For the default branches switching to use main and the default instead of master is an example of one of these things. Just because it’s been done this way for a long time and there’s at least one definition of the word that you can split semantic hairs about. For many of us this is something that’s not offensive. However to others it can be. This is an example of where those of us for whom it’s not offensive need to practice empathy to understand how it might appear to others and support them, and not try to say that they shouldn’t feel that way because that’s not my interpretation.

Changing the default development branch names will disrupt some aspects of development. However in the ROS community we have already had a practice of not using master for many of our repositories. And we regularly transition to new development branches for different distributions. In as much we will plan to make similar transitions for repositories using the default master branch. We will publicly communicate our plans with advanced notice and roll things out with migration plans as is our standard for development. There will be some disruptions but we will endevour to minimize them. But there are costs to both acting and not acting.

As this is an important topic we’re going to unlock the thread. However I ask that everyone be cognizant of what you’re saying and that not everyone will have the same perspective. Please remember our etiquette to both make sure to have good faith in your own posts and assume good faith on the other posters part. For topics like this I’d also recommend avoiding sarcasm and line by line responses as they can easily be misinterpreted and divert the conversation from the main discussion. If we cannot maintain a civil and constructive tone we will close it again. Anyone who would prefer not to get notifications about this you can adjust your notification settings for this thread in the right side bar.

12 Likes

Looking at the discussion I think I see a pattern: non-native English speakers don’t seem to see the negative connotation with ‘master’ word (although there is only a few datapoints here). As a non-native English speaker I also don’t have these feelings, especially that master in git doesn’t seem to have the same meaning.

As a non-native English speaker and developer when I hear ‘master’ the first thing that I think of is the git branching model. The second is Master’s studies. The third one might be the master in master-slave context. Just wanted to throw it out there.

All in all I personally wouldn’t mind the change. If it makes the world a slightly better place then I wouldn’t mind it.

Someone in the thread made a very good point about ROS Master. Would you plan to change it too? I think the change would be hugely disruptive and anyone learning ROS will stumble upon ROS Master much earlier than the git branch names.

4 Likes

I think that @msadowski hits it on the head. This discussion is more about cultural context than semantics and etymology. I’ve been holding off on commenting on this thread for a bit, but I’m going to dive in now, and then probably shut up. My own context in this is that I’m a native English speaker, I grew up in Scotland, but have lived in the US for the past 25 years, so I’m sort-of in the middle of the two contexts that @msadowski mentions. I’m a middle-aged, straight, married, white guy with kids, and I pretty much don’t fall into any diversity classes. I live in Oregon, which is about 87% white according to the census bureau.

For those of you who are not in or from the US, it’s hard to describe the discussion around this. Like many things that touch on politics here, it has become hyper-polarized, and there isn’t a middle ground. One is either racist or anti-racist; there is no longer a “not racist” option. You can agree with this or not, but that is the reality of the discussion these days. The main argument for this is that if you’re not actively working against racism then you’re complicit, and, since it’s such an entrenched thing, you’re contributing, albeit passively, to it’s continuance. Regardless of whether or not we agree with this, this is the framing. Open Robotics is based in the US, and this frames their public statements and policies.

The corollary of this is that, regardless of your position on this, you are going to get judged. If you agree, then you will be judged for performing lip service. If you disagree, you will be judged for not being anti-racist. This is, I think, because of the lack of a middle ground. @Katherine_Scott’s comment about working with people who are “kind and polite” could be taken to mean if you don’t rename, you’re not kind and polite. I don’t think that it was meant to read this way but, given the framing of this, there are only two sides, and you have to be in one. I also think this topics like this make it tempting to reach for offense and to employ specious arguments and righteous rage.

“let’s rename robotics”: Words matter, and the sarcasm in this which some people missed is an ironic example of that. The discussion in the US at the moment is less about the etymology of the word, and more about the contextual understanding of the word. Here’s another example: A speaker in a seminar I was in said “simulations are for pussies”. A number of people spoke up afterwards about the use of this word, we sent an email to the speaker, and they issued an apology. They screwed up, unintentionally offended people, owned the mistake, and changed their behavior. However, they could have pointed out that the etymology of the word stems from pusillanimous, and people should not be offended by it. It does (as far as I can tell), but the contextual understanding of the word is different.

“the change is pointless and a lot of work”: Personally, I see this in the same broad category as not using profanity in my comments or on tshirts. I’m from Scotland, and have a more comfortable relationship with harsh language than most. However, I recognize that some people are turned off by it’s use, so I don’t use it. A small change that costs me nothing, but makes the lives of those around me less bad. Yes, changing to “default” or “main” is a lot more work, and you have to decide if that work is worth it to you.

“is this the biggest lever”: No, it is not. Far from it. But, we don’t only pull the big levers. The big levers are hard to reach, and harder to pull. I’m a Stoic, and I tend to pull the levers I can reach.

“we should focus on ROS development”: I think that this is ROS development, in the same way the clear comments, PEP 8 compliance, and good documentation is ROS development. All of these things make it easier for people to get involved with ROS, and make it a welcoming ecosystem. There’s a cost to each of these things but the hope is that the time you spend on them will be offset by the time saved by having new developers join the community or by reducing the time that people need to spend on a given piece of code. If a potential contributor is considering two projects, one of which seems, to them, more welcoming, they’re more likely to join that community. I suspect that it doesn’t take many such people to offset the effort we’ll spend on this. Also, remember the framing here in the US: there are only two sides.

“we don’t get to pick who’s offended”: I think that this is true, but I also concede that it’s a slippery slope. In Scotland, I can call people things I can’t in the US, because people over here will get offended because of the cultural context. So, I don’t use that language here since, all things being equal, I’d rather not come across as offensive. Those words are pretty clear, but others, even the use of “master” are more nuanced. I’m not sure that there are any easy answers here.

“will it help / is this performative”: I honestly don’t know. I’m in the very corner of diversity space and I wonder if everything I do is performative. Will it help? I hope so, but who knows. I know that it won’t hurt, unless the mere discussion of it pulls people out of the community.

Finally, I think that everyone has to pick their place in this argument for themselves. I think a lot about equity, inclusion, and systematic bias in my day job, and I struggle with how to best address it. Personally, I’m going to make the change in all repos that I’m responsible for, since I think it’s the right move. It will not solve the problems of the world, and it’s not the only action I’m taking, but I think it’s pointing in the right direction.

17 Likes

To ensure we don’t paint with too broad a brush, I’ll point out that not all native English speakers here in the US see the issue here either. To suggest that this might be due to a language barrier could be seen as being dismissive and quash the very diversity we seek. @wdsmart is correct that this has become hyper-polarized and hyper-politicized, which makes it very difficult to have a legitimately useful conversation. I suggest we keep that in mind and choose our words very carefully.

5 Likes

not all native English speakers here in the US see the issue here either

This is certainly true.

this has become hyper-polarized and hyper-politicized, which makes it very difficult to have a legitimately useful conversation. I suggest we keep that in mind and choose our words very carefully.

And this is even more true. +10 to choosing our words carefully

1 Like

What about a “step aside”? I assume OR has enterprise github account with some lever on customer support. You could suggest them to create an “application” that would ease the migration from master to main/default/whatever. In my view it could be implemented in a way that would make master just an “alias” of another branch. So people could still pull the master branch and their workflows would not be broken, but e.g. new PRs would automatically “redirect” to main. I know this doesn’t solve the ethical problem, but at least it could convince the people who see the migration as more pain than gain that it doesn’t have to be painful at all. And I think such “application” could get pretty big attention and gain github some plus points.

2 Likes

I just happened upon the origin story for this, from the man himself. It tracks pretty close to @msadowski’s take on things, FWIW. There’s some mildly interesting background in the thread, too.

4 Likes