UPDATE: As of August 12
The Jenkins project has voted on the replacement term for “master” and it will be “controller.” In the blog below, CloudBees disclosed our steps in moving forward with allowlist, denylist and agent as replacements for words we thought offensive, but were awaiting guidance from the Jenkins project about the term for master. The Jenkins project has confirmed that “Jenkins controller” will be utilized in place of "Jenkins master."
For the CloudBees-proprietary components, we will replace the term “master” with “controller” - as in, managed controller, client controller, team controller. Our product and engineering teams are reviewing how the various terms are used within our source code, endpoints and artifacts. We will take a pragmatic approach to clean these up, ensuring the least amount of downstream impact as possible. Please know that these are not easy changes and will not happen overnight. That said, we are committed to ensuring a culture and environment of inclusiveness and acceptance - this includes ensuring the changes are not just cosmetic ones, but pervasive.
Sometimes terms creep into language that are offensive, even though they were never intended that way. In the IT industry, several examples of these terms are “master” and “slave;” “whitelist” and “blacklist.” Based on historical connotations, these terms are deeply offensive to people of color. Unfortunately, these terms are also commonly used in the industry and in Jenkins. They have been around the industry for decades, but that does not make them OK. Language is how we communicate and we must, therefore, make an effort to ensure our language is respectful and accepting of all.
The environment at CloudBees is one of inclusion, transparency and respect. Our Bees collaborate globally - within and outside of CloudBees - with many others in the industry. This diversity of ethnicity, gender, culture and experience brings new and different (and often much better) ideas that lead to greater innovation. As a result, we advance software, together - whether it be our own commercial offerings, Jenkins or the many other open source projects our Bees contribute to.
About four or so years ago, we worked with the Jenkins project to replace the term “slave." Harpreet Singh, then vice president of products at CloudBees and Kohsuke Kawaguchi, founder of the Jenkins project, along with a small team of Bees wanted to get rid of the term “slave” - as in “master/slave.” The change we proposed was to replace it with “agent.” As always, we collaborated with the Jenkins project to be sure we were both in lockstep, since our software is based on Jenkins. We got quick concurrence on expunging the word and moved immediately to do so. All external content was updated and “agent” was referenced in the Jenkins glossary of terms; there is no mention of "slave." The only remaining places the term still exists are more complicated places - like within the actual codebase of Jenkins. Those areas will also be addressed, but doing so is a much more complicated task, as a fix could potentially break major functionality if not approached in a thoughtful way. However, recent events have made it clear we need to revisit this.
More recently, we considered the second part of this issue - the term “master.” This fostered a lot of discussion, because it is also a well-entrenched term in the IT and Jenkins worlds. When used as a verb or adjective, the definition of it is straightforward. However, the historical connotation of it when used as a noun, includes “a man who has people working for him, especially servants or slaves.” In addition to the obvious reference to slaves, the gender role associated with the word (a “man” in control of others), also makes it offensive. The usage of the term with regard to Jenkins masters IS a noun. It had to go.
Once again, the Jenkins community and CloudBees worked together to both adopt the same replacement word. Potential candidates are being reviewed within the Jenkins project right now and a decision will be announced soon. We will update this blog once the decision is final.
As we evolve and try to continuously improve in our respect and concern for all, we have looked at other ways to ensure we aren’t using potentially offensive terms. We have also changed our use of “whitelist” to “allowlist” and “blacklist” to “denylist.” These are much more meaningful terms and they get away from the concept of “good” and “bad” being associated with color and, by extension, race.
We understand that changing terminology and code does not solve the problem of discrimination. We need to do better. We pledge to continue to identify ways that we can build a more inclusive and welcoming space for all. We will strive to continuously improve in ensuring a welcoming environment for people of all backgrounds and orientations - not just in words, but also in deeds.