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

Have you considered the possibility to replace blacklist/whitelist terminology after recent github decision to abandon master/slave?? #1466

Closed
inhopj opened this issue Jun 18, 2020 · 10 comments

Comments

@inhopj
Copy link

inhopj commented Jun 18, 2020

🚀 Feature Proposal

Abandon whitelist/blacklist terminology in favor of a more inclusive one and in line with the spirit of i18next

Motivation

Recent github decision to abandon master/slave terminology, recent events.

Example

An alternative to whitelist could be allowlist

@jamuhl jamuhl transferred this issue from i18next/react-i18next Jun 18, 2020
@adrai adrai pinned this issue Jun 18, 2020
@jamuhl
Copy link
Member

jamuhl commented Jun 18, 2020

We're already planning such a move since the master branch discussion started. As you may guess such a change has deeper impact than just changing a word:

Current plan (as of writing this comment) is to remove the whitelist term in two steps:

Step 1) PATCH VERSION: Change the official term to supportedLanguages (term might still change) and map existing usage in i18next consuming code to this new variable internal plus writing a console warning that the whitelist term will be removed completely on the next major version (date not yet set)

Step 2) MAJOR VERSION: whitelist term backwards support will be removed

This is needed to give all the users of this module and plugin providers time to change their code without risking failures on running systems.

adrai referenced this issue in UnlyEd/universal-language-detector Jun 19, 2020
…red lang is not allowed) (#2)

* Refactor detectors

* Moved fallback detector to a distinct folder

* Mark private methods using "_" prefix (helps distinct what's meant to be used by developers vs utilities)

* More refactoring + move "error handling" related stuff to utils/error

* Massive refactoring, now resolves acceptLanguageHeader in order of user's preference, while only considering the supported languages

* Add origin and context parameters to ErrorHandler function to help further debug when thing go south

* Use COOKIE_LOOKUP_KEY_LANG as i18next lookupCookie to make sure we always use the same cookie's name when resolving cookie's value whether on browser or server

* use i18next whitelist to avoid resolving unsupported languages when relying on i18next native detectors (such as "navigator")

* Export universalLanguageDetect as default function

* Update doc

* release v2.0.0-beta.0

* Misc doc

* Update nextjs demo

* Add example with sentry usage
adrai referenced this issue in Romanchuk/angular-i18next Jun 19, 2020
@inhopj
Copy link
Author

inhopj commented Jun 19, 2020

We're already planning such a move since the master branch discussion started. As you may guess such a change has deeper impact than just changing a word:

Current plan (as of writing this comment) is to remove the whitelist term in two steps:

Step 1) PATCH VERSION: Change the official term to supportedLanguages (term might still change) and map existing usage in i18next consuming code to this new variable internal plus writing a console warning that the whitelist term will be removed completely on the next major version (date not yet set)

Step 2) MAJOR VERSION: whitelist term backwards support will be removed

This is needed to give all the users of this module and plugin providers time to change their code without risking failures on running systems.

Wonderful 😃 !I'll definitely follow up!

@adrai
Copy link
Member

adrai commented Jun 19, 2020

PATCH change: db90775

adrai referenced this issue in azerion/phaser-i18next Jun 19, 2020
@inhopj
Copy link
Author

inhopj commented Jun 19, 2020

PATCH change: db90775

That was fast!

@jamuhl
Copy link
Member

jamuhl commented Jun 19, 2020

@Sebdevar
Copy link

Sebdevar commented Aug 27, 2020

Seriously?!? How are those even derogatory, especially when the terms' origin as nothing to do with racism or slavery. At the very least, you could keep some traces in the documentation so that people don't searching aimlessly.

@jamuhl
Copy link
Member

jamuhl commented Aug 27, 2020

@Sebdevar for further read - which leads to the decision to rename: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6148600/

beside that the old terms are still working as fallback but give a warning - https://github.com/i18next/i18next/blob/master/src/i18next.js#L46

@Nytelife26
Copy link

Nytelife26 commented Nov 24, 2020

I hate to say it, but @Sebdevar is right. The abandonment of master/slave in itself was stupid as it breaks a significant amount of older scripts which still default to those branch names and aren't maintained anymore, as well as a universal proliferative necessity to include support for both names now. Not to mention etymologically the terms master and slave originate far, far before the cause of any recent events.

Furthermore, master/slave are key terms in general computer science. They are wholly and entirely ingrained into server based architecture and P2P control networks. Not because of any ulterior motive, but rather simply because the words are synonymous with commander and follower. Associating them with things beyond their scope is harmful, unnecessary, and violates the very principles of software engineering.

The case is similar with blacklisting. The term originated from the 1600s according to most sources, in a document specifically from 1624, used to refer to a list of things deemed suspicious or negative, and not to be trusted. This is inline with literary connotations from earlier linguistics, where black (exempli gratia, in the phrase "the black of night") is associated with darkness, which is associated with the unknown and atmospheres of tense suspicion.

None of the aforementioned terms are racially inclined in meaning whatsoever beyond linguistic expansion, societal association, and misinformation. In fact, what's going on here would be approximately akin to associating the word "proliferate" as I've used previously in this comment with the "pro-life" movement. It's nonsensical and frankly doesn't matter nor pertain to the meaning nor does anyone think it does; to do so would simply be a clear attempt at making an issue out of something that need not be one.

As a field, software engineering is related entirely to information and logical constructs. There is no place for breaking, changing and deprecating things solely because it upsets some people, when the reality is it shouldn't. There is a reason in software engineering we deal with bug triages, feature requests, etc - and do you notice how, despite being categorised as a feature, this does not add anything nor provide any assistance or support for anything nor does it help anyone and certainly nor is it a feature?

To note, I am not against inclusivity. I fully believe software and software engineering should be a safe environment for all who are involved. However, I do not believe such irrational discussions and changes have a place in that environment - it is our job as engineers to innovate and create the future of humanity, not to appeal to pedantic arguments which hold no real reasoning beyond an association that should not even exist in the first place. We should be focusing on designing software that is accessible and safe for all; not breaking things and making changes that are not constructive, meaningful, or additive in any way.

Thank you for taking the time to read this. I hope this statement serves useful in advancing this conversation, hopefully to a close, within both this thread and the wider community.

@jamuhl
Copy link
Member

jamuhl commented Nov 24, 2020

@Nytelife26 I think there is no right or wrong...I can understand both sides. As it was a small change with included backward compatibility we decided for doing the change.

@jamuhl jamuhl closed this as completed Nov 24, 2020
@adrai adrai unpinned this issue Sep 21, 2021
@alexisljn
Copy link

Ridiculous

@i18next i18next locked as too heated and limited conversation to collaborators Sep 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants