Opening a feature request kicks off a discussion.
I would like to ask that the master/slave references be replaced in the Telegraf configs with more appropriate terms.
To use the Telegraf service we must set configuration values that introduce the word "slave" into our repo.
Allow callers to use the Telegraf service with more appropriate configuration setting names as suggested in this IETF memo: https://tools.ietf.org/id/draft-knodel-terminology-00.html
Open source project takes dependency on Telegraf but doesn't want to introduce insensitive terms into their own repo.
Hey @danielroney, thanks for this; we are very interested in doing this. There's a couple places where this may be difficult due to external dependencies, but there are also spots that should be trivial to update. We would also like to change a couple references of whitelist/blacklist to something like allowlist/denylist. Any help is welcome.
For references to external projects that would be difficult for us to change without breaking things, we would encourage upstream issues to the other projects, and would be open to work-arounds in our project that mask the use of such terms until upstream projects are able to adjust. We may need to consider backwards compatibility within Telegraf, pushing breaking changes to a minor or major release, depending on severity. Don't let this discourage you from making a pull-request with changes, as we can address these things as we go.
I appreciate your interest in this topic. I am completely out of my depth in your code base, so I don't see myself being able to submit a PR for this but I hope someone will pick it up.
I'm 100% behind this. For external references, it would be great to leave a comment in the code pointing to the issue in the dependency.
Unfortunately, it looks like Mesos, redis, rabbitmq, modbus, httpjson, mysql, jenkins, mongodb, and Linux's networking make use of this archaic terminology. I'm wondering if it would be valid to rename those at the input layer.
Thanks for the PR @benzvan. We've reached out to Modbus organization (intending to address ASAP) and mesos (haven't responded). I'll go ahead and open issues on the on the dependencies as you suggested. Feel free to do this as well.
I'm wondering if it would be valid to rename those at the input layer.
I don't think it would make sense to deviate from upstream projects, renaming using our own terminology would cause confusion and could make the transition more difficult for the upstream project. We would then require a 2nd rename once replacement terms are decided on.
Once an upstream project has indicated a new naming, we can add duplicate tags/fields to report these new names and deprecate the older names. I don't think we should remove the old names until we release a milestone where deprecated features are removed (2.0).
Redis has already decided to switch to using master/replica and while their API is not fully switched, we could already add a new connected_replicas field and deprecate connected_slaves.
A 30+ years programmer here. I began "killing parents" in C since the late 80s. Up to now I didn't became more violent because it was so common to use that terminology eons ago.
This whole USA-generated "politically correct" is great from the human point of view, but according to my opinion it is ridicolous. The rest of the world is not so obsessed by these "small" details.
For new projects, ok. Apply the new rules and a filter that refuse a push if "bad words" are found in the code (I found a "fckr" label in a VPN autogenerated key). In existing code we risk to generate misunderstandings, incompatibilities and side effects, like there weren't issues enough in the wild.
It's a dinosaur talking here, but I believe there are too many people with free time in their hands. No offense intended.
The absurdity is that to be coherent we should not use "black (font) on white (page)" for any text here, because of its inherent racism. Should I open an issue to force github to use fuchsia text on yellow?!?
Thanks for your perspective @Nemecsek, as a 20+ year engineer, I forget that not everyone has the life experience to understand why terms like master/slave and whitelist/blacklist are problems. Back when I realized my friends, who were way better at this stuff than I was, weren't represented in my workplaces or would quit before I did, I tried to find out why and started to make changes.
I would say that the problem isn't USA-generated, but Black people in the USA are dealing with a 400+ year system of oppression based on their skin tone. It's worth noting that equality is still an international effort and many international projects are far ahead of USA-based projects I've seen in creating an equitable environment for their contributors.
I understand refactoring is hard and naming is hard, but they're both important parts of our products. When I see a method that starts with get and returns void I open an issue. Likewise when I see other terminology that is unclear and, in this case, reinforces the power imbalance between people with different skin tones and the racism that arises from it, I open an issue.
As a middle-aged, cisgender, heterosexual, white guy talking: doing the work to create a more equitable society isn't free time, it's work. And it's work we've been asking oppressed populations either to ignore like we've done or to do themselves, often without pay.
You're right that it's absurd that we shouldn't use black or white to describe the shades of paper and ink or that it's racist to do so, because those words don't associate power or value with the paper or the ink based on their shade. Words like whitelist and blacklist, however, in addition to not being descriptive, associate white with good and black with bad, usually in letting the white ones in and keeping the black ones out. It's trivial to replace those words with more descriptive ones like the linux standard of allow and deny, which has been around for decades.
P.S. Please don't check your VPN key into your version control system.
@benzvan, Thank you for your kind (and more balanced than mine) answer.
I don't want to cause any trouble, nor create useless discussions.
The same word "slave" is used in different contexts with different meanings. As I would never speak about rope in the house of the hanged man, I would pay particular attention to speak about slavery in the house of a black man. But I wouldn't feel any problem talking about master/slave devices to a black ("differently colored?") engineer, because it is what they actually do: one is a master (and controls), the others are slaves (and obey).
I saw Informatics developing very very fast in the late years. Tons of free and competing libraries, a lot of them never reaching release 1.0, most tutorials online not working anymore at the next release, documentation less and less precise with the need to hope in some help from Stackoverflow to overcome undocumented features. Give a look of how many tutorials on Fluxlang past the very basics are available online: almost none.
There is a lot to do BEFORE search/replacing "bad" words.
As I saw so many time along my career, any (possibly positive) change brings new bugs. Always.
I come from an age when every library had to be retro-compatible to the previous release (while colleagues disappeared on the way to the bathroom, possibly eaten by velociraptors).
Thank you again for the time you took to answer me. I would close the discussion here if it is OK for you.
P.S. Checking foul words before push and the "dirt" VPN key I found are not related... Are there people really pushing keys on a VCS?
I appreciate the opportunity to explain the reasoning behind these changes, so I would say this discussion is not useless. I could go into how almost every use of the master/slave metaphor are lazy and inaccurate and would be better suited by terms like leader/follower, primary/failover, listener/executor or others, and I'm happy to have that conversation, especially if it helps choose better language. For now, I'll suggest the next time you're in the house of a black engineer (especially one in the USA), you should ask them how they feel about masters and slaves.
I guess I didn't understand what you meant by finding strings in a VPN key, I assumed you were cleaning up a commit or existing code in a repository. And yes, I've seen way too many credentials checked in to VCS.
Most helpful comment
Thanks for your perspective @Nemecsek, as a 20+ year engineer, I forget that not everyone has the life experience to understand why terms like master/slave and whitelist/blacklist are problems. Back when I realized my friends, who were way better at this stuff than I was, weren't represented in my workplaces or would quit before I did, I tried to find out why and started to make changes.
I would say that the problem isn't USA-generated, but Black people in the USA are dealing with a 400+ year system of oppression based on their skin tone. It's worth noting that equality is still an international effort and many international projects are far ahead of USA-based projects I've seen in creating an equitable environment for their contributors.
I understand refactoring is hard and naming is hard, but they're both important parts of our products. When I see a method that starts with
getand returnsvoidI open an issue. Likewise when I see other terminology that is unclear and, in this case, reinforces the power imbalance between people with different skin tones and the racism that arises from it, I open an issue.As a middle-aged, cisgender, heterosexual, white guy talking: doing the work to create a more equitable society isn't free time, it's work. And it's work we've been asking oppressed populations either to ignore like we've done or to do themselves, often without pay.
You're right that it's absurd that we shouldn't use black or white to describe the shades of paper and ink or that it's racist to do so, because those words don't associate power or value with the paper or the ink based on their shade. Words like whitelist and blacklist, however, in addition to not being descriptive, associate white with good and black with bad, usually in letting the white ones in and keeping the black ones out. It's trivial to replace those words with more descriptive ones like the linux standard of allow and deny, which has been around for decades.
P.S. Please don't check your VPN key into your version control system.