Rust Project Reveals New ‘Constitution’ in Wake of Crisis
The Rust open source project, which handles standards for the language, released a new governance plan Thursday, the cumulation of six months of intense work. Released as a request for comment on GitHub, it will now undergo a comment period. It requires ratification by team leaders before it’s accepted.
The Rust project interacts with, but is separate from, the Rust Foundation, which primarily handles the financial assets of Rust. Two years ago, the project had a very public blowup after its entire mod team resigned and publicly posted a scathing account of the core team, which the mod team called “unaccountable to anyone but themselves.” It even suggested the core team was not to be trusted, although the team later recanted and apologized for that.
Josh Triplett understandably didn’t want to dwell on the kerfuffle that lead to this action. He focused instead on the underlying structural issues that lead to the leadership crisis.
“As a result of that, there was widespread agreement within the project that we needed to create a better formal governance structure that removed some of those ambiguities and conflicts, and had mechanisms for dealing with this without ever having a similar crisis,” Triplett told The New Stack. “We don’t want to ever to have things get to that point again.”
Triplett, who serves as a language team lead for the Rust project and is a joint author on the new governance model request for comment, jokingly compared writing the new governance model to writing the Constitution.
Roots of the Rust Project and Problems
The original Rust project governance structure evolved out of Mozilla, where Rust began and was nurtured for years. In 2015, a request for comment came out that established the Rust project’s governance, Triplett said. It created approximately six teams, including the core, language, mod, library and tooling (such as Cargo).
Among the problems with the old model was that the core team became responsible for not just overseeing problems that arose, but solving them as well, Triplett said. That led to burnout and problems, said JT Turner, one of the co-authors on the new model and a member of the Rust core team.
“There’s no way we can wear this many hats and do this many things,” they said. “It used to be that the core team was the team leads only, so the team leads would report up into the core team. You’d have to lead a team and focus on that and focus on the overarching governance, and to a lot of people that was just way, way too much work to try to do both, unless you’re getting paid full time.”
Triplett agreed it was too much for one team.
“Ideally, they would make teams and delegate and they did sometimes do that,” he said. “But at the end of the day, they were drowning under the minutia, because they were the team of miscellaneous. And all of it was important, but at the same time it was too much work for any one team.”
Ultimately, the old governance model was “not a very precise document,” Triplett added.
“It was just, ‘Hey, here’s the rough divisions of power,’ and because that document was very rough and informal, it didn’t scale to today,” he said. “That’s one of the things that led to the governance crisis.”
Rust isn’t the first open source group to experience public growing pains: Node.js also experienced a governance crisis, in 2014, that actually briefly forked the framework.
Such a public feud might have brought down any volunteer organization, but instead the Rust project regrouped and decided it had to face the conflict head-on. Since last August, the Rust project has been working on a new governance model.
The Rust project spent six intense months of working through the conflicts — via Zoom, no less — but the group was able to find new solutions to old problems, Turner said.
“We all came together and said, ‘Let’s make something that can be more flexible, that works a bit better long term,” they told The New Stack. “We knew that dealing with conflict in a constructive way is something we needed to lean into. So that’s what we started practicing as a group is — OK, conflict, great, let’s lean into it, try to understand what’s underneath the conflict, dig up the fundamentals, and then use those fundamentals to create a solution.”
A Peaceful Transition
The new governance plan outlines when the Rust project might create a new team, what happens when a team has finished its work and needs to wind down, and how to reorganize teams within the project, Triplett said. It creates a new top-level council, this time formed of members from each of the other teams. It also includes checks and balances, like the U.S. Constitution, to deal with problems.
“We need some top-level organizational structure that lets us make those calls in a reasonably timely fashion, and where we landed was a representative structure where every top-level team sends a representative to a council, and that council can make decisions on behalf of those teams or take things back to those teams,” Triplett said.
Thursday, the RFC posted on GitHub. Its other authors include JT, Triplett, Khionu Sybiern (moderation), Mark Rousskov (core project director, release lead), Ryan Levick (core project director), Olive Gould (moderation) and Jane Losare-Lusby (collaboration project director).
Although interested parties are welcome to comment — Triplett asked that commenters to start here first — the comment period is primarily for members of the Rust Project. The document has to be ratified by about 20 team leads and the former core team, who will be voluntarily stepping down in favor of the new leadership the governance document creates. Most of the team members have already informally seen and contributed their thoughts, Triplett added, so he’s hopeful it will be ratified with only minor alterations to the draft.
“This will be a peaceful transition,” Triplett said. “We’ve been working very collaboratively on it for quite some time now and putting together all the corner cases, all the things that will scale, all the ways to make sure of — not just ways that we could come in conflict in the future — but also ways we can solve problems the project will have in the future.”