DEV Community

Cover image for ✊ woke - Check for insensitive language in your source code
Caitlin Elfring
Caitlin Elfring

Posted on • Updated on • Originally published at Medium

✊ woke - Check for insensitive language in your source code

Adopting Inclusive Language in Tech

It's 2020 and it seems the tech industry is finally coming to terms with the outdated, racially insensitive language that has become ubiquitous in our day-to-day lives.

It's incredible to see real action on this front happening. 
Companies like GitHub, Apple, and Twitter, to name a few, have already committed and have began rolling out changes to remove insensitive language and replace it with more inclusive alternatives.

Terms like master/slave that are common when describing database architecture, being replaced by primary/secondary, or whitelist/blacklist to describe access patterns, being replaced with non-color alternatives such as allowlist/denylist.

When I saw all of this, I was inspired! And when my colleague, Fabiana Scala, brought up the subject adopting conscious language within codebases and conversations, I started researching ways to help developers maintain a commitment to building inclusive code. When I came up short, I decided to build a tool myself, and to build it as an open source project.

Words Matter

Check out my post on Rent the Runway's tech blog on why this is important to me, personally, as well as Engineering at RTR: https://dresscode.renttherunway.com/blog/woke.

Introducing woke 

GitHub logo get-woke / woke

✊ A text file analysis tool that detects non-inclusive language in your source code.

woke is the tool that I created that will detect non-inclusive language in your source code. It is an open source project, and contributions are welcome!

woke demo

What is it?

woke is a text file analyzer. It searched through lines of text and matches it against a set of rules to find insensitive words, then suggests inclusive alternatives.

Features

woke is quite similar to the linters we use on a regular basis.

  • Built-in default set of rules.
  • You can define your own rules, or disable default rules, via a config file, which can be committed to your repos for use in CI pipelines.
  • You can define files that should always be ignored (ie pre-compile assets or package-log.json), or ignore specific lines within files with a comment.
  • You can either run woke against an entire directory or specific files. This can be something like **/*.go, or a space-separated list of filenames or directories.
  • You can also have woke read from stdin
  • If woke finds any violations, it will output them in different formats and will return with an exit code of 0. If you want it to return with exit code 1, you can. 
  • This is useful when running as a Pull/Merge Request check, where you want to let the author know there are violations, but you might not want to block the code from being merged.

Using woke

There are currently two officially-supported integrations (via GitHub Actions):

Since woke is compiled to a static binary, other integrations can easily be built! For example, woke can be run as a VSCode extension or Atom package, a Jenkins plugin, used in any other CI platform, like GitLab, CircleCI, TravisCI, you name it! If it can run a static binary, it can run woke. And your code will be more inclusive because of it!

Now what?

Now what? Start running woke against all your source code! Add it to your open source projects to show potential contributors that you care about inclusivity! Convince your leadership to integrate woke within your organization! While it may seem like a small step, it has the potential to make a huge long-term impact to build and maintain an inclusive culture.

Don't forget to become a stargazer or watch the repo!

Resources

Some excellent articles that go more in-depth about the importance of inclusive language in tech.

GitHub logo get-woke / woke

✊ A text file analysis tool that detects non-inclusive language in your source code.

woke logo

A text file analysis tool that detects non-inclusive language in your source code

I stay woke - Erykah Badu



GitHub release (latest SemVer) GitHub All Releases Build MIT License Go Report Card Coverage Status

PkgGoDev pre-commit GitHub go.mod Go version FOSSA Status


Creating an inclusive work environment is imperitive to a healthy, supportive, and productive culture, and an environment where everyone feels welcome and included.

woke is a text file analysis tool that finds places within your source code that contain non-inclusive languagem and suggests replacing them with more inclusive alternatives.

Companies like GitHub, Twitter, and Apple are already pushing these changes.

woke.gif

Table of Contents

Installation

macOS

You can install a binary release on macOS using brew

brew install get-woke/tap/woke
brew upgrade get-woke/tap/woke

Simple installation

curl -sSfL https://git.io/getwoke | \
  bash -s -- -b /usr/local/bin

Feel free to change…

Top comments (1)

Collapse
 
krussellsmith profile image
K. Russell Smith

wokescold parody
you missed some. Seriously though, are you aware that the terms "master" and "slave" are racially neutral? The concept of slavery goes back thousands of years (every race can claim to have been enslaved, in fact the term "Slav" comes from the Romans keeping eastern Europeans as slaves). This feel-good virtue signalling is not going to do anything to solve any actual problem, rather it's going to make the tech industry a complete laughing stock. Otherwise, neat analyzer program.