Coraline Ada Ehmke has been writing software professionally since 1994. For the past decade, she’s been active in the Ruby programming language community and has created numerous open source tools to help fellow Ruby programmers.
But these days she's best known for a different type of code altogether. Ehmke is the original author of Contributor Covenant, a "code of conduct" for open source projects that encourages participants to use inclusive language and to refrain from personal attacks, harassment, or "other conduct which could reasonably be considered inappropriate in a professional setting."
Those might sound like common-sense rules, but Ehmke saw them as valuable after watching years of bad or questionable behavior by open source developers. For example, Linux creator Linus Torvalds has long had a reputation for profanity-laden rants, sometimes directed squarely at individual contributors to the open source operating system. When former Linux contributor Sage Sharp, then using a different name, suggested in 2013 that Torvalds was creating a toxic environment and recommended a code of conduct, Torvalds balked, telling WIRED "whole venting of frustrations and anger is actually necessary, and trying to come up with some 'code of conduct' that says that people should be 'respectful' and 'polite' is just so much crap and bullshit."
The combative nature of open source has often been blamed for its community's lack of diversity, which comes in even lower than the tech industry as a whole, according to research published last year by the code hosting and collaboration company GitHub. That survey found that 95 percent of open source developers are men.
Ehmke wants to help change that. "One of the things that motivates me is tech completely transformed my life," she explains. "I grew up in a town of 500 people in rural Virginia. I didn't have a lot of prospects. Tech has brought me great success and given me a lot of opportunity."
Codes of conduct are designed to make open source projects more inviting to everyone, and the idea is catching on. Today, more than 40,000 projects have adopted the Contributor Covenant, including Google's artificial intelligence platform TensorFlow and the increasingly popular programming framework Vue. Even Linux is finally on board: Earlier this month the project adopted the Contributor Covenant, and Torvalds apologized for his past behavior.
André Arko, lead maintainter of the popular Ruby tool Bundler, says the Contributor Covenant has changed the project for the better. Before the project adopted the Covenant, the team struggled to find enough contributors to maintain the project. That changed quickly. "We've had dramatically more participation," he adds. That’s meant more participation from women, minorities, and other underrepresented groups, but also more contributions from white men as well.
Ehmke wrote the first draft of the Contributor Covenant in 2014. At the time, there was a growing movement to pressure more tech conferences to adopt codes of conduct, after years of reported incidents of sexualized language in talks, as well as harassment and assault at events. But applying the idea to open source projects, which can involve hundreds of developers scattered around the world, was practically unheard of. Unlike corporate software projects, there’s no human resources department in an open source project to police behavior. "My thinking at the time was that we needed rules and structures not just for when people are physically present, but when virtually present as well," Ehmke says.
The first open source project to adopt the Contributor Covenant was the the Contributor Covenant itself, which Ehmke structured as an open source project. Just like open source software, any company or project can use the Contributor Covenant. People can contribute suggestions through the code collaboration site GitHub. Since the initial version, participants have added examples of positive behavior, such as being respectful and accepting constructive criticism gracefully, so that the code is not simply a laundry list of prohibitions.
Ehmke says the project caught on slowly at first, but gained momentum after a few major projects adopted it, including Ruby on Rails, an enormously popular programming framework used by companies like Airbnb, Kickstarter, and Twitter. Rails creator David Heinemeier Hansson says it was a fairly easy decision: "It just seemed like a no-brainer."
There are still developers who vehemently oppose the entire idea of codes of conduct, and the Contributor Covenant in particular. Ehmke says that she's no stranger to harassment, but notes that the abuse she's experienced since Torvalds announced that Linux would adopt the Contributor Covenant is the worst she's ever faced. Her inbox and Twitter feed have been flooded with homophobic and transphobic remarks, and she received a death threat through the contact form on her website.
Opponents of the Contributor Covenant and other codes of conduct say they worry that the rules will be used to police their speech away from their open source work. An earlier version of the Covenant said that contributors could be removed from a open source project because of things they said in public while representing a project. Right-wing outlets like Breitbart have published multiple stories since the launch of the Covenant, warning that “social justice warriors” are “infiltrating” open source.
Those fears are misplaced. The latest version of the Covenant is more clear that the people maintaining a project can decide what it means for a contributor to be representing a project in public, and what to do if a contributor violates the code of conduct. Ehmke says project maintainers have always had the ability to ban contributors for any reason. The primary maintainers of open source projects are often referred to as a "benevolent dictator for life." A code of conduct doesn't change that; it just clarifies when those dictators might choose to exercise their power.
Arko says the Bundler team has rarely banned people from participating. On the rare occasion that someone violates the code of conduct, he says a warning is sufficient. In addition, the team has never needed to warn or ban anyone for comments they made outside of the Bundler project's official collaboration platforms, according to Arko. Hansson says he doesn't think the Rails team has banned anyone.
Ultimately, any code of conduct is only as effective as its enforcement. Ehmke is now working on a tool for open source maintainers to help them gather and investigate reported violations, including documenting complaints, and communicating with people found to have violated the code.