Page MenuHomePhabricator

Reconsidering how we name things
Open, Needs TriagePublic

Assigned To
None
Authored By
Reedy
Jun 6 2020, 12:49 PM
Tokens
"Y So Serious" token, awarded by valerio.bozzolan."Love" token, awarded by nshahquinn-wmf."Like" token, awarded by Lens0021."Love" token, awarded by mpopov."Love" token, awarded by kostajh."Love" token, awarded by Kormat."Like" token, awarded by MusikAnimal."Dislike" token, awarded by BEANS-X2."Like" token, awarded by Darren-M."Love" token, awarded by Ainali."Love" token, awarded by Jaideraf."Like" token, awarded by Kghbln."Like" token, awarded by apaskulin."Like" token, awarded by Jdforrester-WMF."Love" token, awarded by Krinkle."Like" token, awarded by Aklapper."Love" token, awarded by Ladsgroup."Like" token, awarded by Amire80.

Description

So, with the current climate I'm starting to see people reminding other people that the use of Blacklist and Whitelist are outdated, and shouldn't be used. Unfortunately MediaWiki and the ecosystem uses this in numerous places.

Similar for Master and Slave, though MW replaced Slave with Replica years ago (in 950cf6016c10953213e5f985dfc18a32d8673197 and T190395 is/was for some cleanup); see https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/F7N6OH6DMHURB4PPKX235L22XWZEKLFQ/. I don't know if Master is offensive on its own (ie it's used as a title for young males rather than Mr, at least in the UK), potentially only when used with Slave as a label, but we could still replace this with primary. It might be worth checking if it's still used upstream for consistency (which seemed to be at least part of the introduction of DB_REPLICA). wfWaitForSlaves() is still around, but only ~80 usages as of writing, T181673.

Use Safe and Block. Use Allow and Deny. Use Inclusion and Exclusion. Use Permit and Deny. All of these can be used with a trailing List too

I'm not looking to bike shed, we should pick one and then move forward.

I understand in the case of a couple of extensions (that immediately come to mind, I've not grepped our codebases) this gets a bit awkward and takes some work. I think it's worth the effort. We can easily enough soft rename/fix wording. i18n strings are easily improved. Replacing i18n keys is a little harder, but if we ask translatewiki.net nicely we can do that (and can be done without renaming the extension just yet). Onwiki pages a little harder still, maybe we have some back compat for a while, checking both the old and new name to allow time for renaming/moving of pages, removing this in the near future.

The "hardest" is renaming the repos (at least, for WMF deployment purposes), which also allows us to actually rename the extensions (we know that the name attribute in the extension.json needs to make the directory it's in). Again, it's awkward, but git makes it relatively trivial, as we can just push all one remote to the other.

We can branch both for a couple of deployment cycles, and update the includes/references in CommonSettings.php and extension-list and then stop branching the old names and archive them as usual.

None of this is particularly dificult, just needs a bit of effort

Then obviously updating all Documentation to match

Based on P11408 (June 2020), the use of things that match (white|black) ?list is a lot higher than I expected. But for example, 1828 are in one of the named extensions, 1401 in another...

P14950 is a list from mid April 2021. P14956 is just for MW extensions, ordered by directory instead

See also:

Details

ProjectBranchLines +/-Subject
mediawiki/coremaster+100 -60
mediawiki/coremaster+1 -1
mediawiki/extensions/TimedMediaHandlermaster+16 -15
mediawiki/coremaster+4 -4
mediawiki/coremaster+101 -101
mediawiki/coremaster+162 -162
operations/softwaremaster+12 -12
mediawiki/coremaster+1 -1
analytics/refinery/sourcemaster+194 -175
mediawiki/coremaster+3 -9
mediawiki/coremaster+33 -33
mediawiki/extensions/GrowthExperimentsmaster+464 -159
mediawiki/coremaster+29 -3
mediawiki/extensions/GlobalPreferencesmaster+11 -9
mediawiki/extensions/VisualEditormaster+1 -1
VisualEditor/VisualEditormaster+9 -9
operations/mediawiki-configmaster+1 -1
mediawiki/extensions/Echomaster+6 -6
operations/puppetproduction+24 -24
labs/privatemaster+0 -42
operations/mediawiki-configmaster+1 -1
operations/puppetproduction+3 -3
mediawiki/coremaster+2 -50
mediawiki/extensions/CirrusSearchmaster+71 -41
operations/puppetproduction+3 -3
operations/puppetproduction+26 -26
labs/privatemaster+42 -0
mediawiki/coremaster+32 -22
mediawiki/coremaster+36 -26
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
mediawiki/extensions/CentralAuthmaster+0 -19
mediawiki/coremaster+4 -3
mediawiki/coremaster+27 -27
mediawiki/extensions/Citemaster+1 -1
mediawiki/extensions/VisualEditormaster+1 -1
mediawiki/extensions/VisualEditormaster+6 -6
mediawiki/coremaster+0 -3
mediawiki/extensions/Flowmaster+1 -1
VisualEditor/VisualEditormaster+10 -8
mediawiki/extensions/DiscussionToolsmaster+1 -1
mediawiki/extensions/Echomaster+9 -9
mediawiki/extensions/GWToolsetmaster+1 -1
mediawiki/extensions/OAuthmaster+1 -1
mediawiki/extensions/FileImportermaster+1 -1
mediawiki/extensions/Renameusermaster+2 -2
mediawiki/extensions/WikimediaMaintenancemaster+3 -3
mediawiki/coremaster+8 -8
mediawiki/coremaster+4 -4
mediawiki/extensions/CentralAuthmaster+1 -1
mediawiki/skins/Daddiomaster+1 -1
mediawiki/extensions/AntiSpoofmaster+2 -2
mediawiki/extensions/Flowmaster+18 -18
mediawiki/skins/Modernmaster+1 -1
mediawiki/coremaster+7 -7
mediawiki/coremaster+7 -6
mediawiki/extensions/ArticlePlaceholdermaster+17 -17
mediawiki/extensions/VisualEditormaster+48 -49
mediawiki/extensions/VisualEditormaster+3 -3
mediawiki/extensions/VisualEditormaster+1 -1
VisualEditor/VisualEditormaster+2 -2
mediawiki/extensions/BetaFeaturesmaster+13 -8
VisualEditor/VisualEditormaster+10 -10
mediawiki/extensions/OAuthmaster+10 -8
mediawiki/extensions/FlaggedRevsmaster+9 -9
mediawiki/coremaster+6 -30
mediawiki/extensions/CentralAuthmaster+7 -7
mediawiki/extensions/PageTriagemaster+2 -2
mediawiki/extensions/CentralAuthmaster+24 -24
mediawiki/extensions/Echomaster+7 -7
mediawiki/coremaster+1 -1
mediawiki/coremaster+3 -3
mediawiki/coremaster+10 -10
mediawiki/extensions/SpamBlacklistmaster+8 -8
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
OpenNone
ResolvedReedy
Resolvedovasileva
ResolvedJdlrobson
ResolvedLucasWerkmeister
ResolvedReedy
OpenNone
ResolvedJdforrester-WMF
ResolvedAmmarpad
ResolvedHuji
DeclinedNone
ResolvedMattCleinman
ResolvedItamarWMDE
ResolvedMattCleinman
ResolvedMholloway
OpenNone
Opennshahquinn-wmf
ResolvedReedy
OpenNone
OpenNone
OpenNone
ResolvedReedy
ResolvedReedy
OpenNone
OpenNone
StalledNone
OpenNone
ResolvedReedy
OpenNone
OpenNone
OpenNone
StalledNone
OpenNone
ResolvedReedy
OpenNone
ResolvedReedy
ResolvedReedy
OpenNone
ResolvedLGoto
ResolvedJdrewniak
OpenNone
ResolvedReedy
ResolvedReedy
ResolvedJdlrobson
OpenNone
ResolvedReedy
ResolvedJdrewniak
OpenNone
ResolvedReedy
ResolvedReedy
OpenNone
ResolvedReedy
ResolvedReedy
Openabi_
ResolvedReedy
OpenNone
ResolvedLadsgroup
OpenNone
OpenNone
ResolvedReedy
OpenNone
OpenNone
OpenNone
ResolvedReedy
StalledNone
OpenNone
ResolvedReedy
OpenNone
ResolvedReedy
ResolvedReedy
ResolvedReedy
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
StalledNone
ResolvedMajavah
StalledNone
StalledNone
OpenNone
DeclinedNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedDaimona
ResolvedDaimona
ResolvedDaimona
ResolvedUrbanecm
DeclinedDaimona
ResolvedDaimona
ResolvedDaimona
ResolvedDaimona
StalledNone
Resolvedmatej_suchanek
ResolvedDaimona
ResolvedDaimona
Resolvedmatej_suchanek
Resolvedmatej_suchanek
ResolvedPRODUCTION ERRORDaimona
ResolvedDaimona
OpenNone
StalledDaimona
ResolvedMarostegui
ResolvedBstorm
ResolvedDaimona
ResolvedUrbanecm
OpenNone
OpenNone
ResolvedNone
ResolvedNone
ResolvedNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedDbrant
OpenNone
InvalidNone

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Ok, so that's a spam of subtasks created for all WMF deployed extensions (and also tarballed?) for the issues to be fixed.

A few are definitely very easy, it's one or two strings or comments to be fixed. Others are a bit more involved.

Some where it's just config in phpcs, or stylelint etc, I haven't done those, as they need upstream changes.

Should be enough to tag all the extensions that we need to look at, and in many cases, put it on the relevant teams boards.

Is there a complete list of terms we want to remove / avoid? For example "sanity" isn't listed on this task ("sanity check" appears loads of time in our codebases) and it probably should be per here, here, etc

Is there a complete list of terms we want to remove / avoid? For example "sanity" isn't listed on this task ("sanity check" appears loads of time in our codebases) and it probably should be per here, here, etc

Not a canonical one.

Maybe now is the time to start one to point people to? Maybe on mediawiki.org, but it feels like something that should potentially eventually end up somewhere like meta (too), as general good practice for the movement.

I've been targetting the white/blacklist ones as they are very commonly used in our codebases.

Is there a complete list of terms we want to remove / avoid? For example "sanity" isn't listed on this task ("sanity check" appears loads of time in our codebases) and it probably should be per here, here, etc

Not a canonical one.

Maybe now is the time to start one to point people to? Maybe on mediawiki.org, but it feels like something that should potentially eventually end up somewhere like meta (too), as general good practice for the movement.

I've been targetting the white/blacklist ones as they are very commonly used in our codebases.

A centralized list would be useful IMHO, and could be integrated into CI (for now probably just as an inline comment for someone to review rather than as a merge blocking change).

Change 670269 merged by jenkins-bot:

[analytics/refinery/source@master] Rename whitelist to allowlist for Refine sanitization

https://gerrit.wikimedia.org/r/670269

Change 680836 had a related patch set uploaded (by Amire80; author: Amire80):

[mediawiki/core@master] Rephrase specialmute-error-no-options

https://gerrit.wikimedia.org/r/680836

Change 680836 merged by jenkins-bot:

[mediawiki/core@master] Rephrase specialmute-error-no-options

https://gerrit.wikimedia.org/r/680836

Is there a complete list of terms we want to remove / avoid?

A centralized list would be useful IMHO, and could be integrated into CI (for now probably just as an inline comment for someone to review rather than as a merge blocking change).

Google seems to have made a good start at a complete list:
https://developers.google.com/style/word-list

This requires having some sort of central list which I would appreciate having regardless

I had started https://www.mediawiki.org/wiki/Inclusive_language, which isn't machine readable...

So I just made https://www.mediawiki.org/wiki/Inclusive_language/words which is... And then created https://www.mediawiki.org/wiki/Module:Inclusive_language (badly named?) to turn that json list into a wiki table... Which can be used in the article.

Might be a bit awkward for translation... but it's progress.

Maybe make the module accept a param for the word list, to allow translators to create a https://www.mediawiki.org/wiki/Inclusive_language/words/<langcode> and have that displayed...

This requires having some sort of central list which I would appreciate having regardless

I had started https://www.mediawiki.org/wiki/Inclusive_language, which isn't machine readable...

So I just made https://www.mediawiki.org/wiki/Inclusive_language/words which is... And then created https://www.mediawiki.org/wiki/Module:Inclusive_language (badly named?) to turn that json list into a wiki table... Which can be used in the article.

Nice. Thoughts on having a "reason" column to help provide additional context or explanation?

This requires having some sort of central list which I would appreciate having regardless

I had started https://www.mediawiki.org/wiki/Inclusive_language, which isn't machine readable...

So I just made https://www.mediawiki.org/wiki/Inclusive_language/words which is... And then created https://www.mediawiki.org/wiki/Module:Inclusive_language (badly named?) to turn that json list into a wiki table... Which can be used in the article.

Nice. Thoughts on having a "reason" column to help provide additional context or explanation?

I don't see any reason why not. If something needs explanation, or references nearby that seems a generally good idea, rather than "just" relying on the list at the bottom (which is helpful in its own right).

I've switched the table to the lua module now. As I said above, that might need some poking when we get the page ready for translation, but that shouldn't be too much of an issue.

I'll add a third column now and people can then see how it makes sense to actually use it

Change 681736 had a related patch set uploaded (by Reedy; author: Reedy):

[operations/software@master] quotereviewer.py: Stop using "blacklist"

https://gerrit.wikimedia.org/r/681736

Change 681736 merged by jenkins-bot:

[operations/software@master] quotereviewer.py: Stop using "blacklist"

https://gerrit.wikimedia.org/r/681736

Since it's come up on a number of subtasks here, I want to note explicitly that we intend to move default branch on all WMF repos still using master to main as we migrate from Gerrit to GitLab. We hope that this can be done in conjunction with the other updates to tooling, documentation, the developer community's local clones, etc., that changing git remotes will require. It's already a substantial effort but in this case I think we can at least combine most of the work.

FYI https://github.com/wikimedia/eslint-config-wikimedia/issues/380 would be a good way to help speed up this effort for client side code.

Change 680827 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Replace uses of DB_MASTER with DB_PRIMARY in documentation and local variables

https://gerrit.wikimedia.org/r/680827

Change 680828 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Replace getMasterDB methods with getPrimaryDB

https://gerrit.wikimedia.org/r/680828

Just want to share some love with all the folks working on these tickets. THANK YOU!

Change 691273 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] More master -> primary documentation and internal var renaming

https://gerrit.wikimedia.org/r/691273

Change 691274 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] i18n: Use more modern language for the primary DB in <readonly_lag>

https://gerrit.wikimedia.org/r/691274

Change 680827 merged by jenkins-bot:

[mediawiki/core@master] Replace uses of DB_MASTER with DB_PRIMARY in documentation and local variables

https://gerrit.wikimedia.org/r/680827

Change 691348 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/TimedMediaHandler@master] Replace uses of `getMasterDB()` with `getPrimaryDB()`

https://gerrit.wikimedia.org/r/691348

Change 691349 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Follow-up I68198bc3: Hard-deprecate getMasterDB() methods

https://gerrit.wikimedia.org/r/691349

Change 691274 merged by jenkins-bot:

[mediawiki/core@master] i18n: Use more modern language for the primary DB in <readonly_lag>

https://gerrit.wikimedia.org/r/691274

I understand this question is probably coming way too late, but I still thought I would ask…
Has there ever been any community-wide discussion on this issue before people started changing things?
Is this move backed by a community consensus and/or WMF decision of some kind? If so, can you refer me to it?
I am asking because I watch the ongoing renaming process disrupting users' daily routines, and I observe how much time is being spent on this issue; so I am asking myself whether this social engineering that we are all now made a part of has received any prior sanction within our ecosystem (other than "I'm starting to see people reminding other people" as in the original post).
Thank you for any feedback.