The Perl community is in a shambles due to disputes concerning its (nonexistent) Code of Conduct, its (inconsistent) enforcement of community standards, and an inability to agree on what constitutes toxicity or a proper response to it.
At least five extremely senior Perl community members have resigned from their positions and/or withdrawn from working on Perl itself so far in 2021:
- Community Affairs Team (CAT) chair Samantha McVey
- The Perl Foundation (TPF) Board of Directors member Curtis Poe (author of Beginning Perl and Perl Hacks)
- TPF Grant Committee member Elizabeth Mattijsen
- TPF Perl Steering Committee member, key Perl Core developer, and former pumpking Sawyer X
- Perl developer and SUSE engineer Sebastian Riedel
It’s difficult to impossible to pin down the current infighting to a single core incident. With that said, the rash of resignations revolves entirely around problems with unprofessional conduct—and in most cases, a focus on interminable yak-shaving that does little or nothing to address the actual problems at hand.
Sawyer X (resigned April 12)
Perl Core developer and “pumpking” (roughly meaning elected manager of the entire Perl language) Sawyer X resigned from the Perl Steering Committee and Perl Core in April, claiming an intolerable barrage of hostile messages from Perl community members. Sawyer cites responses to a message saying “there is cruft in [Perl]” as the excuse some Perl community members used to “push him into a corner” until he deactivated his Twitter account.
In the crucial thread, developer Matthew Trout dismissively states, “the people actually doing the work on perl core don’t seem to find the ‘cruft’ problematic.” After some back-and-forth over who does or does not count as a Perl maintainer who might object to cruft, Sawyer declares, “I have no interest in discussing anything with you, Matt.”
To an outsider, the thread seems quite tame, even reasonably polite. Only Sawyer’s refusal to continue discussion with Trout hints at the real distress underneath—which might have something to do with the reasons Trout was permanently banned from Perl events a week later.
Trout’s ban was due in part to 2019 conference behavior which fellow developer Aaron Crane described elusively as philosemitic antisemitism—and in part to unspecified “ongoing behavior” from Trout which makes other community members uncomfortable. The Board later reviewed the CAT’s actions, deleted its “transparency” reports, and changed Trout’s permaban to a one year ban.
Trout, for his part, later told The Register that he was upset about having hurt Sawyer and that he accepted the revised one-year ban as “the best thing for [Trout’s] friends and community.”
Sebastian Riedel (resigned June 25)
In March of this year, Patrick Spek—a former member of the Perl 6 (Raku) steering council—committed to
.config/git/config with a commit message saying “Get a job” followed by the n-word. Sebastian Riedel lodged a complaint with TPF board, which he says was railroaded by a board member—therefore, Riedel quit.
Riedel’s complaint to the board points out that this isn’t Spek’s first racism rodeo. CPAN still offers downloads containing a 2017-era tarball from Spek with a folder named “perl6-n[word]”. We downloaded the linked file and can verify that it’s still available from CPAN, and it does in fact contain that folder.
Making matters worse, Riedel alleges that McVey—who headed up the CAT, and thus was responsible for responding to the incidents in question—is romantically involved with Spek.
Samantha McVey (resigned Aug 7)
At the time of her resignation, Samantha McVey chaired TPF’s Community Action Team (CAT). McVey cited her resignation as primarily due to TPF Board’s failure to pass a Charter and Code of Conduct, along with the Board’s decision to unilaterally revoke (and delete) all CAT transparency reports issued in 2021.
“Retracting the CAT’s transparency reports sends the message the Board of Directors is not willing to support the CAT, and is not prioritizing the safety of the community,” McVey said. She added that she was not involved in the Board’s decision to retract the reports—and that if she were not to resign, it would appear she supports the Board’s actions.
Although McVey’s resignation primarily cited her perception of the Board’s inability to lead and lack of transparency, she seems to share a general frustration with the Perl community with others who resigned. In a recent interview with The Register, McVey said, “I’m fresh out of ideas with regards to handling toxicity in the Perl community.”
McVey’s position in Perl’s struggles is complicated by Riedel’s allegations that she is romantically involved with Spek (who has a history of undeniably racist language and commits) and that she was indifferent to reports of Spek’s use of the “n-word” in messages and code commits. That’s conduct one assumes would flagrantly violate the Code of Conduct McVey submitted to the Board in the first place.
Elizabeth Mattijsen (resigned Aug 7)
TPF Grant Committee member Elizabeth Mattijsen resigned on the same day as Board member Samantha McVey, citing TPF Board’s decision to put the CAT on hiatus and retract its former reports as “the last straw.”
Mattijsen said she was already considering resignation before the CAT hiatus, due to the Board failing to confirm funding for already approved grant requests. “TPF has not published anything about their financial state ever,” Mattijsen told one Twitter commenter. She added that “the chair of the Grant Committee was told to wait for the treasurer to return from vacation, to find out whether grants were to be funded. Which I found VERY odd.”
Later, Mattijsen proffered a Reddit r/Perl comment accusing McVey of being at the center of some shadowy cabal as “an example of the kind of toxicity that made me leave the Perl community.”
Curtis Poe (resigned Aug 9)
On Github, Poe categorizes his resignation from TPF Board as due to “burnout”—”I stopped reading the meeting minutes. And that’s when I realized I was burned out. Or burnt out. Or whatever. I just didn’t care.”
Poe names various controversies over the Community Affairs Team—its actions and lack thereof, the community’s reactions to that, the CAT’s response to those, and so forth—as key to his final decision, though he is reticent to explain more concretely.
“If you don’t understand the following, consider yourself lucky. I’ve no desire to explain this mess,” Poe writes. Although Poe refuses to go into much detail, he appears to be referring to the ongoing strife between Sawyer X and developer Matt Trout, which ultimately led to Sawyer’s exodus from Perl.
After spending a day wading through the stated reasons and back stories of these high-profile resignations, it’s difficult to come to any single, clear conclusion—although “burn this entire pile of serpents down, with the most primal of magics” is frankly tempting.
I have personally used and enjoyed the Perl language for nearly 30 years, and it’s distressing to see the bigotry and edgelording coming from prominent elements of the community—not to mention the Board’s failures to respond decisively. The Perl community is not the first to struggle with “culture wars” revolving around a code of conduct, either, which makes it all the more puzzling why its Board seems incapable of formulating one.
Ultimately, the presence of toxic elements—whether racist, sexist, or just plain aggressively bullying—in a community of any real size is perhaps inevitable. The real test of a community is not the discovery of those elements, but its reaction to them—particularly its willingness to acknowledge them. So far, the Perl community seems to be failing that test.