Openj9: Replacing master/slave with more inclusive terms

Created on 3 Jul 2020  路  11Comments  路  Source: eclipse/openj9

Due to recent events and in alignment with IBM's emb(race) pledge the IBM style guide has recently flagged certain words as "do not use" list for public content such as:

Instead of using: blacklist & whitelist
use: blocklist & allowlist

Instead of using: master & slave
use:

  • coordinator/controller/leader/main/manager/parent/primary
  • worker/child/helper/replica/secondary

Since OpenJ9 feeds into IBM J9 I think it makes sense to adopt this language here as well.

I noticed that the terminology master/slave threads are used quite a bit in gc code. I'm happy to make the changes for this but can someone more familiar with that area advise on what words make the most sense to use as alternates?

All 11 comments

Thanks for opening this issue @theresa-m. This is the right thing to do and I'm glad you've started the discussion here.

A number of discussions have been quietly happening around this and similar topics including changing the name of the master branch in all OpenJ9 repos (@keithc-ca) and using referring to Jenkins's machines as nodes or workers (@AdamBrousseau).

In discussion with @amicic & @dmitripivkine, we agreed to rename the GC Slave threads to be GC Worker threads, and the master gc thread to the main gc thread. It makes sense to start with the thread names as they are visible in javacores, and then work through removing the other uses in the code.

Code changes can start immediately. PRs for name changes should target changing names and avoid additional refactorings to speed review and merge processes.

Branch name changes should wait until after the 0.21.0 release is complete to avoid any delays to the release.

For whitelist/blacklist I've replaced some uses in DDR: https://github.com/eclipse/openj9/pull/10076

@AdamBrousseau fyi there are WHITE_LIST & copyright_whitelist in the copyright check, I'll leave that to you so I don't break anything

Yes, thank you Theresa. I have on my list to update all the code under buildenv. We have many candidates.

This is my non buildenv/branch name list:

docs:

openj9 blogs:

  • [x] replacements in blog posts to avoid confusion (edit: couldn't find any uses of gc/vm structs or method names that need changing)

@theresa-m Please create a docs issue for any updates that might be necessary as a result of code changes. I can't see much that's likely, except "slave" - see below.
I have already made the following changes, which should be visible after 0.21.0 GA:
0x "whitelist" or "blacklist"
1x "master" in xtgc.md : ("master thread" --> "main thread")
4x "slave" in tool_jdmpview.md not changed: These occur in some sample output, but I assume that output will need to be regenerated as a result of code changes.

I have some commits drafted. The one I am struggling with is master, particularly "Jenkins Master" and anytime we're referencing the main branch of a repository. For the branch names I don't think we can change most of these instances as things will break or doc won't make sense. For Jenkins Master, that is Jenkins' defined term. Not that we _can't_ call it something else like main or primary, but nobody will know what we're talking about. Maybe I'm not being open minded about it.

Hopefully Jenkins will update their terminology too. In the mean-time, we can use the term 'controller', or something else suitable, with a foot-note in the documentation explaining the translation. Outside that foot-note, though, everything should be consistent.

Github plans to make 'main' the default branch name, but there's nothing that says we can't change our branch names now.

The gc/vm and related docs part of this issue is complete.

@theresa-m is there anything left to do for this besides https://github.com/eclipse/openj9/pull/10279 ?

I don't believe so.

I'll go ahead and close this, since we have #10279 open for the remaining work. I've added it to the next milestone so it's not forgotten.

Was this page helpful?
0 / 5 - 0 ratings