-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
"gyp" is a racial slur #2168
Comments
This comment has been minimized.
This comment has been minimized.
Just because it's an acronym, doesn't make what the acronym spells ok. Until today, I had no idea it even was an acronym. This isn't the first time this sort of thing has come up. See the current discussions around |
@erbridge There's undoubtedly a trend, this recent one about For the record, in that case the decision was ruled against the change. Despite the fact that there's ample references to the possible interpretations of the word and them not being gender-neutral, there was no consensus that while somebody might take offence in that, the technical term is in fact offensive by itself. If you feel that there's a need for change, I think it'd be beneficial for the community as a whole to provide more context to show how this |
Sharing some context: Changing the name without a strategy is not feasible as it would likely cause a disruption in the ecosystem, breaking many packages. Also, changing the name of this project alone wouldn't be of much use, as gyp-next would still have the name, and so would other projects like node-pre-gyp, not to mention one of the extensions used by the build system is One plus side (technically speaking) of changing the name IMO is that we could choose a package name that is build system agnostic, and it could be used as a front-end package to make migration between build systems easier. Reopening as I believe this is worth at least discussing. But just as recent discussions around the cc @nodejs/community-committee as it might be of your interest |
For completeness sake, here are some other potentially offensive build system names. Rakehttps://github.com/ruby/rake
https://www.urbandictionary.com/define.php?term=Rake Buckhttps://github.com/facebook/buck
https://www.urbandictionary.com/define.php?term=buck These projects should probably have same problems regarding renaming the tool (disruption in the ecosystem, breaking many packages, existing CI/CD environments, etc.)., so when evaluating cost vs. benefit, I would discuss it with these communities as well. Feel free to open an issue in corresponding repositories for Rake and Buck. |
Honestly they shouldn't have to change the name of the project, its been that way for quite some time just because it by the imagination resembles something somewhat of a slur if you connect distant dots, doesn't mean it should be changed and if you had to connect those dots to make a concern about something thats never been both the philosophy of the name of the project is completely stupid, and you should spend more time trying to make rockets at that point. |
This is obviously going to be an emotionally charged thread so from the get-go, I hope a healthy discussion takes place. Reading through this grammarphobia post it seems that the status of Gypsy as a slur against the Romani is disputed, even within Romani culture (emphasis mine):
This story from 2016 uses the term Gypsy liberally, as does one of the subjects of the piece who says:
Consider this story from this year titled ‘I’m A Gypsy – I Want My Grandchildren To Be Proud Of That Fact’. The subject of that piece who works for Gypsy and Traveller Empowerment (GATE) Essex explicitly says:
The fact that the Gypsy and Traveller Empowerment organisation, an advocacy group for the Romani, uses that word in their title, as does the Gypsy Lore Society tells me that the time has not yet come to cancel the term. If node-gyp mentioned the Romani in the readme alongside a stereotypical Gypsy as a mascot, thus implying equivalence, we would definitely have a problem. If no mention of the Romani was made, we would have less of a problem but eyebrows might understandably be raised at the mascot. What the repo in fact has is no mascot, no mention of the Romani, and the only reason that 'gyp' appears in the name is because it's an acronym for Generate Your Projects. I think that the case for a rename will be far stronger after Gypsy and Traveller Empowerment and the Gypsy Lore Society change their own names. But I'm not an expert so I'm happy to be swayed otherwise :) |
@jesseduffield "Gypsy" is arguably not a slur. "Gyp" is widely considered a slur, so your (well cited) discussion of whether the term "Gypsy" is offensive in an of itself is not particularly relevant to this issue. See https://www.telegraph.co.uk/news/uknews/law-and-order/5483053/Judge-accused-of-using-racial-slur-against-gypsies.html for example. The name of this project is not "node-gypsy", it's "node-gyp". |
Just going to observe that every time I see this name show up in a build failure, it makes me think less of everyone involved. Ignorance is one thing; knowing harm is another. |
@ussjoin thank you for taking an interest in this issue. I suggest reading my comment above (#2168 (comment)) to understand the technical challenges and unintended consequences of changing this package name (tl;dr it would be a huge breaking change for the entire Node.js ecosystem). As @rvagg also pointed out in the PR, the With that being said, we have an ongoing initiative to deprecate gyp on Node.js and move to a different build toolchain, and while this effort will probably take a couple years it also means that the ecosystem cost of renaming |
@mmarchini Just so I'm sure I understand you: your position is that it "won't be worth it" to remove a racial slur from the core of NodeJS for an unbounded period of at least several years, despite the notes upthread in this issue? That seems to be at odds with the Node community's Code of Conduct. To be clear, "we took the name from Google" is non-responsive to "this is a racial slur." That just explains why it started out this way, not why anyone would defend it remaining this way. |
@ussjoin I think the origin of the name matters quite a bit: if the name is in reference to Gypsies or theft, that would make the case for removing it stronger. As it stands: it's a three-letter acronym for something completely unrelated. I don't think the onus is on the repo maintainers to think about all the ways somebody might take offence to an acronym, especially when a company as progressive as Google came up with the name in the first place and nobody has expressed concern about it until now. |
@jesseduffield I'm going to just leave "a company as progressive as Google" aside for others, and simply respond to "nobody has expressed concern until now:" Scrolling up in this very thread, I see several other people "expressing concern." I'm sure they're not the only ones; this only came to my attention because I was installing a tool written in NodeJS and this tool crashed horrifically, which caused me to wonder "I'm sorry, what on earth is this thing?" While many people capable of using NodeJS tools may not be capable of submitting PRs, I am, so I stepped up. I can't speak for everyone else who ought to have done in the past, but this issue is here, now, and as much as you clearly don't want to "think about all the ways somebody might take offense to an acronym," that doesn't make it right; it just makes it convenient for you to ignore the issue. |
@ussjoin FWIW I don't think I would characterize what @mmarchini said as "won't be worth it" but rather "this will break a TON of stuff and we need a clear plan for the ecosystem". I think that a plan that simply removed gyp from node altogether and replaces the build system is one that is VERY appealing to me. That being said we can't make breaking changes on LTS meaning that at the very soonest we would have to wait for v14.x to be end of life before this could truly be removed and gone. |
@MylesBorins To be clear, I was quoting @mmarchini:
It seems like a series of commenters asked you to create a "clear path for the ecosystem," and you declined. I've now provided a PR to fix this repository and allow other repositories to fix themselves. Seems like a path! |
I disagree with the assessment of
In particular I was trying to point out that the appropriate move forward is to move to a place where we can simply drop gyp altogether and replace it with a different build system.
One thing I think is worth keeping in mind is that this project, as well as node, is primarily run by volunteers. We have limited bandwidth and limited time. There are many issues, both technical and cultural, that we care a great deal about but don't have the time to do. For example I would love to see fetch in core, for change master to main, and genuinely for us to stop using gyp (both as a slur and as a technology). That being said simply flipping the switch is going to cause significant ecosystem fallout, and this is not theoretical. It is not as simple as I respect your energy and passion for this, I truly do, but I hope that you can approach this assuming that many of us here are attempting to operate in good faith and want to make these changes... but that there is a significant amount of labor required to do it. |
This comment has been minimized.
This comment has been minimized.
I'll ask everyone to refrain from personal attacks in this issue, as those are unproductive to the discussion. |
I ascribed no malevolence to the original package creators; simply ignorance. That's why I made a PR---to provide a comparatively easy fix to the issue. I wasn't even aware of the existence of this thread until my PR was closed as a dupe of it. Malevolence comes in defending the package name when many people before me (even in this thread) have pointed out the issue. |
Again I take issue with your charge of malevolence, as I would say it's quite clear that everybody in this thread is acting in good faith, but I think belabouring the point would distract from discussing the long-term solution here. |
I'd like to request that we stop debating about whether the phrase is offensive or if the etymology matters. The meaning of words change over time, and words can hold charge and power unintended by those who wielded them. I don't think we do anything but create an unempathetic environment when we attempt to explain away the emotions of others with logic + reasoning. node-gyp is unfortunately named and WILL BE offensive to some individuals. That is not and should not be a subject of debate and attempting to do so is honestly a waste of our time and only serves to create division. @ussjoin I very much appreciate you submitting a pull-request to help try and move this forward. I did a very quick scan and noticed one very obvious example of how the regex replace method it appears you took here will not be sufficient as a broad solution to this problem. https://github.com/nodejs/node-gyp/pull/2211/files#diff-26b681bd4dac10f25d5293c7595c435bR37 There is a function called loadConfigGypi which remains unamed while you have renamed all the references to For example our central build config is in common.gypi and you will fine 90+ refrencess to .gypi throughout our source code. This is the type of complicated detangling we have to deal with. Again, I appreciate your enthusiasm, but there is not relatively easy fix to this and implying otherwise is IMHO not operating in good faith. |
@jesseduffield I'd also like to request that you please refrain from continuing to engage if you are going to debate the validity of the complaint. If you would like to work towards solutions that would be awesome, but the general direction and tone of this conversation has gone slightly off the rails and the way you are personally engaging is not helping to de-escalate this. |
@MylesBorins apologies, I'll leave you to it :) |
Strong agree that our time would better be spent migrating away from node-gyp than working to rename it. |
@ussjoin 👋 First of all thank you for engaging, championing this change and starting to do the technical work in that PR. I think there are some misconceptions, I am going to write down things as I understand them and please let me know (you or other parties) if I got anything wrong:
In particular, opening a PR without first talking to the project or people involved (they're friendly and usually communicative, I promise) isn't a great way to interact with the project because it invites a lot of miscommunication (like we saw here). I can see why it would look like the changes are relatively easy but please bear with us and assume good faith. I encourage you to instead reach out to the people in this thread and ask how to help and how you can promote this. I am sure that we can align both our goals here (as little ecosystem breakage as possible and renaming the unfortunate terminology). Please keep in mind that comments like this one that isn't assuming Mary is acting in good faith when she comments aren't helpful in progressing this issue. The Node.js project is committed to not be complicit in racism and while we live in a complicated world we are trying and we would appreciate help. P.S. If you want to discuss how to effectively make this change and don't feel welcome/safe here - you can also email me directly (my email is at https://github.com/nodejs/node ) or ask the moderation team to help facilitate discussion ( moderation@nodejs.org ) |
@benjamingr great summary, I'd just like to point out that:
Is not accurate anymore (it might've been a couple years ago). There's general consensus that we should move to a different meta build system and I don't remember anyone objecting to it in a long time. We even spun this as a strategic initiative recently, Ben has a proof of concept building V8 with CMake and I'm investigating a hybrid build system with CMake and GN. |
This comment has been minimized.
This comment has been minimized.
@benjamingr This thread provides a pretty great reason why someone wouldn't want to reach out in private to maintainers:
Regarding breakage: yep, it's true that I intentionally broke loading of the old, slur-named files. If you wanted to add a bridge to pick those up as well for the interim, that'd be fine. Instead it sounds like this whole thing is just being downvoted as "too hard, we'll get to replacing it eventually (but not until at least 2023?) and you should just deal with it until then." So: I won't be reaching out in private. If you, as you said, would appreciate help, then I think you and the rest of the Node team ought to reach out to the other people you've driven away upthread, as well as actually starting the work and declaring a "by X date this work will be done." For my part, while I tried to help by creating the PR in the first place, I think I've gotten my answer---and it makes me pretty sad that the Node community would rally around protecting a racial slur in the core of the language system. |
@ussjoin in my personal opinion you seem to be willfully misrepresenting what's going on in this thread.
There are many people in this thread offering to work with you, but when you mischaracterize our intentions and what we are trying to do it makes it incredibly difficult to assume you are coming in here and operating in good faith.
I don't see this happening in this issue at all. What I do see are multiple individuals saying they agree with you, that we can and do want to do better, but that we can't do that at the cost of legitimately breaking many many many systems. We have active work going on to improve this, it is not the solution you are proposing, but it is a long term viable solution that would have a similar timeline to what you are proposing. I really do want to believe that you are operating in good faith here and simply very passionate about this topic, but from where I am sitting it would appear that you are willfully ignoring what folks are saying and misrepresenting opinions in a way that calls into question the ethics of our team. That is something I am extremely uncomfortable with and do not appreciate. |
@ussjoin one more thing worth mentioning. I disagree with the immediate closure of your original PR and quick -1. I think that this is definitely worth having a conversation about. If replacing the build system in node is going to take a significant amount of time we could potentially reduce harm in the mean time through renaming... but that effort will need to be a bit more thoughtful than just a blanket rename which is how the PR is currently implemented. If you are willing to work with me on it I would spend time with folks on our end to figure out what the requirements for a rename would be and how we could potentially do it in parallel to replacing the build tool so that we don't have a legacy tool with a name that is a slur. I can't commit to doing the labor, I simply don't have time right now, but I can help with building consensus and defining what work would need to be done. |
Maybe to clarify a bit: We aren't saying we don't want to get rid of node-gyp, we're saying we believe the most effective way to get rid of node-gyp is the major-cycle deprecation of it. I don't think anyone in this thread wants node-gyp to continue to be used, it's an awful build system with an awful name. |
Adding to @MylesBorins last comment: the Node.js project has hundreds of collaborators from all around the world, and opinions/points of view are not homogeneous across the project. This heterogeneity can sometimes lead to mishaps (like what happened with your PR being closed 5 minutes after being opened), and those mishaps don't represent the perspective of all collaborators, just the person who made the action/commented. I don't think the PR should land as is either (that's not a -1 from me, but a "Request for Changes"). At the very least changes to |
This comment has been minimized.
This comment has been minimized.
Fine; then prove me wrong. I'll look forward to the announcement of the change. I don't see continuing value in contributing further code. |
@ussjoin I've initially noticed this thread when I went to GitHub to research some issues with building a dependency using node-gyp. We basically have two options here:
The first option is a lose-lose scenario, the second is win-win. Why aren't we discussing the second option here? |
I think the best option would be to close this issue and to create a new issue in good faith about what the future holds instead of arguing about semantics and intent. No one here is discounting that the term is negative no matter the original intention nor are they arguing for not doing anything. |
@artsyca and @v4dkou I've already asked politely asked for folks to please stop debating the validity of a name change. The phrase is offensive, full stop. If you continue to derail conversation I will be personally asking for moderators to limit your ability to participate in this organization. @ussjoin it is absolutely within your right to not continue to give us volunteer labor. With that said the only thing I would like to ask for is the benefit of the doubt that we are going to try and make things right. I have a distinct feeling that the initial immediate closure of your PR got things off on the wrong foot here. With that said, expecting an ecosystem breaking change like this to land in a single PR without any changes isn't very realistic. There are multiple people here willing to work with you on the name change if you want to drive it. The same folks are putting in effort to solve the problem in a different way, removing gyp. I'm genuinely sorry that you have had such a bad experience engaging here, but I really hope you can see they it isn't very reasonable to bring us a half-baked solution and expect a group of volunteers to finish it for you. We have a solution we'll be working on, we want the same outcome. If you want to collaborate with us on the solution you've suggested we are here to work with you |
FYI for the efforts of removing gyp altogether we have an issue on TSC for discussion (nodejs/TSC#901) and we recently created a repository to have more organized discussions and planning (https://github.com/nodejs/build-toolchain-next). I don't believe this repository is the appropriate place to discuss removing gyp from core and as the default native addon toolchain since both discussions go way beyond this repository. |
@MylesBorins I understand that you are in a tough position and you have to bring order so that we come to a productive conclusion.
I am not debating the offensiveness here, I am just chiming in about the potential backlash, which could bring even more hate towards the cause. Let me rephrase:
In other words, disruption produces more hate, the change won't win over people who'll curse our names for taking part in it. Does it sound plausible or am I the only one imagining the salty developer venting his frustration with a combination of personal attacks on contributors to the change and racial slurs? Haven't we all seen this co-worker who is loud and angry about things not working as intended? Please let me know if my experiences align with yours in any way or am I tilting at windmills here.
Sorry, but that feels uncalled for. |
As a moderation team member - bringing up the validity of the request and etymology after being requested to stop multiple times and then cancelling other peoples' opinions and experience is exactly the sort of thing that could get you banned. We (people like me, Myles, Mary and other project contributors) take this (and @ussjoin's comments) seriously. It's fine if you don't - but please: if you are not a regular contributor to Node feel free to not engage in these sort of discussions if you goal is to get Node not to explore renaming things. Here's the thing: for a large amount of people the naming of GYP isn't a big deal, apparently you are one of those people. That's fine. I am one of those people too and am pretty ignorant on this topic. If however other people feel strongly about an issue in Node and want to discuss it so we can resolve it - why not discuss it with them and resolve it? There might be a way that avoids ecosystem breakage (there often is). Let's not assume this is a zero sum game. |
Ben, this is a meta-meta discussion by now but here goes, may you have mercy upon me and give me the benefit of doubt. Human beings are an interesting bunch, we have mastered (are we allowed to use this word in this context?) the periodic table, the electron, to a large extent the natural world, and yet we still haven't figured out how to assemble in groups to have a civilized conversation, or if we did we've lost key subtleties of the art. A lot of us when we communicate, we don't precisely say what we mean but rather we try to paint pictures with words, others think out loud and wait to hear or see their own words before understanding what they're trying to say. Some of us speak with mathematical precision bordering on the pedantic while others use subtle references and cues. What doesn't change however is that none of us are actually speaking to anyone but our own selves and everything we write needs to be interpreted by the receiving party based on context, assumptions, prejudice, and several layers of emotional, intellectual and instinctual conditioning. Somewhere along the way, we invented these machines that are meant to increase our capability of communicating and as always the medium remains the message, at its core the message is the audience. We are all like messages trapped inside of bottles trying our best to break free and deliver the payload to the necessary party, all while struggling against incredible odds and at heavy cost to ourselves -- no wonder a lot simply choose to remain silent and 'bottle it up' I would say the discussion at hand is a very important one to me, a very big deal indeed, for whatever reason, even though I'm not a contributor and a mere guest in this environment. You'd think we'd have invented a way where everyone could speak their piece asynchronously without fear of reprisals or reprimand, especially when they happen to stroll into a flame war which subsequently follows them home to their inbox and they truly want to understand the forces at play and help make sure every voice is heard. There's a reason we say 'people over processes' after all, and this process seems to place a heavy emphasis on the linearity of the thread over the ability of any old buffoon to put their brainfart down for the record. To me, this discussion is the perfect example of all our failings and redeeming qualities as human beings (for you can't separate one from the other) and I'm hoping against hope that someone else will see it this way and also notice the irony of trying to take a hammer to an issue that requires a touch much lighter than a feather. As well it seems like an opportunity to have this kind of meta-meta discussion but alas the chilling effects are prevalent and the forecast looks like more chilling effects on the way. I understand your reference to game theory, and I totally understand that there can be a win-win situation here. Can you believe me when I tell you that I really didn't mean to be a 'very bad boy' and despite several wrist slaps I actually have some valuable contributions to make if I wasn't politely and not-so-politely being shown the door, and there are probably thousands of people just like me wondering what to do with their human capital and how they can come to the aid of the Roma people and every other objectified, marginalized and stigmatized member of this so-called society we're building for ourselves? I've gone and deleted all my past comments as I realize now how triggering they may have seemed. If you get anything out of this it's that we ought to treat others like time travellers from another era who are out of sync with our own reality and give them some way to vent their frustrations without taking it so gosh darned personally. Edit: here, for your amusement: https://www.sbnation.com/secret-base/21408962/dave-bresnahan-potato-trick |
The word "gyp" means "to cheat or swindle". It's a shortened version of "gypsy" a slur for Roma people who are commonly maligned as cheaters and swindlers.
Some references:
The text was updated successfully, but these errors were encountered: