One of the first tasks for the Rust Leadership Council is to elect new Project Directors. But before we can do that, we need to create a process for doing so. To do this, and in the spirit of delegation from the Leadership Council, we've formed a smaller group to focus on designing this process. This group so far consists of myself, Jane Losare-Lusby, and Ryan Levick.

We have the beginnings of a proposal, but I wanted to write it up in my own blog to help make sure I understand it. Note that this is a draft proposal at best at this point and nothing is set in stone. I also want to recognize Jane's work in coming up with this process. This is largely based on her initial suggestion and I want to make sure I'm not taking credit for something I didn't come up with. But, any failings in this post should be viewed as my own and not hers.

What are Project Directors?🔗

Rust is split into two major organizations: the Rust Foundation and the Rust Project. The Foundation does a few things. It provides a legal structure to hold Rust's intellectual property. It provides an entity for organizations to contribute financially to support Rust. It supports the long term health of the Rust project. One way it does this is through the Community Grants Program.1

The Foundation is governed by a Board of Directors, and five of the seats on the Board of Directors are reserved for members of the Rust Project. These seats are known as Rust Project Directors. Project Directors are meant to serve for a term of two years with the hope that we can stagger terms and rotate out a subset of the directors this year.

Unfortunately, due to the lack of Rust Project governance over the better part of the last two years, we have not appointed new directors in place of those whose terms are completed. Instead, the Foundation Board has voted several times to extend the terms. Currently the terms are set to expire on September 21, 2023 so we'd like to be able to appoint new ones without having to ask for another extension.

How should we select Project Directors?🔗

There are a number of desired features and constraints on this process.

First of all, the Foundation bylaws state that Directors must be elected by those they represent.2 In the case of Project Directors, this means they must be elected by the Rust Project, and the Project governance is set up so that the electors will be the Rust Leadership Council. There is some flexibility in what counts as an election though. For example, we could follow some other selection process and the Council could then vote to ratify the results of that process.

So one possible process is to have the Council pick and vote on a set of directors without any input from rest of the project. This would be a bad process. We want something that gives the Rust Project a chance to provide input to the process. And we want some transparency in how the Project Directors were elected.

Doing a more traditional election would also be at odds with Rust's culture, which tends to prefer consent based decision making rather than rule by majority or plurality.

A possible process🔗

With this background in mind, we can now discuss a possible process for selecting Project Directors. I've based this off of the notes here, and the process described there is heavily influenced by Sociocracy for All's Selection Process.

I think of the process as a bottom-up process, so I'm going to describe it in those terms. We start by soliciting nominations from each top level Rust team. These nominations go to the Council, which will do the final selection. Let's look at these in more detail.

Gathering Nominations🔗

When we kick off the process, we will start by telling all the Rust teams that they should begin nominating candidates for Rust Project Directors, with a deadline for when nominations will be closed.3 Teams should look at the role description and think of people they think would be a qualified candidate. These candidates will likely come from the team itself, but there's no requirement. Teams can nominate anyone who they believe meets the qualifications that will be set forth in the role description. We aren't planning to impose a requirement to nominate a certain number of candidates. It doesn't really make sense to nominate more than the number of vacancies, but there's no reason a team couldn't do that. Similarly, a team may choose not to nominate anyone, or they may do this by default if the deadline expires.

We plan to leave the process for nominating candidates up to the teams, with a strong suggestion to follow a miniature version of the process the Council will follow. For the purposes of accountability though, I think it makes sense to have the team's Council Representative drive the process, although "driving the process" might mean delegating to someone else who wants to run the process. The main reason for this default is to make sure someone is responsible for making progress.

Once the team has selected a set of candidates, they should report these to the Council. The team's council representative will be responsible for communicating these to the Council as a whole. One of the goals of this project is to gather feedback to help members of the project grow. Thus, I think it would make sense for the team to provide their nominees as a document (we might even provide a template) that lists the nominees and why they were chosen. It might also make sense to include a list of people who were considered but not nominated, and why they weren't nominated. I would hope this is a positive experience, so we don't say "we didn't nominate person X because they're terrible," but more as a way of highlighting rising stars. For example, we could say "Person Y was considered and shows promise, but we would like to see more growth in these areas first. Please consider them in the future."

Selecting Candidates🔗

The next step is for the Council to select the Project directors from the pool of nominees. There may not be much to decide here, since it's quite likely that we have exactly the number of nominees as there are openings. But even in this case, we want to have a defined process that we follow.

The draft proposal says the Council should select a facilitator to lead the process. The Council would then go through a round process, where each council member proposes a candidate from the nominees and explains why they think the candidate is a good choice. After the first round, they Council goes around again in a change round, which gives everyone the chance to change their nomination based on the discussion so far. Once this is done, the facilitator takes all of the suggestions and proposes one candidate. The Council then consents to this choice, or if there are objections then the facilitator proposes a new candidate.

The process as I've described it so far is an iterative process, meaning we'd run the process to select one candidate, then do it again to select the second, and so on until filled all the open seats (two or three, in this case). The subsequent rounds should be much faster than the first, because we can reuse most of the information gathered in the first phase.

An alternate way to do this would be as a batch process, where we pick the whole set of candidates at once. I think this would be my preference for a couple of reasons. First off, it's likely to be more time efficient, since we only have to do one process.4 Secondly, and more important to me, is that picking all the candidates at once allows us to more directly look at characteristics of the candidates as a group. We'll already need to account for employment constraints, but choosing the set of directors as a group also lets us more directly make sure we have broad representation within the project. In my mind, the thing we want to select for is a successful group more than any individual characteristics of the members.

Anyway, the batch process would be essentially the same, only instead of going through rounds proposing individuals, we'd propose a set of individuals to fill all the seats at once.

Once the Council has consented to a set of candidates, we'll have a vote to ratify the selection. Since we've already heard all objections and consented to the selection, this would be expected to be a unanimous vote. The main purpose here is to make sure we are meeting the requirement in the Foundation bylaws to elect the Project Directors.

After the vote passes, the process is complete. The Council would then announce the results and the new Project Directors would take office once the outgoing Directors' terms end.

What's Next🔗

I've described my interpretation of the process we have in mind so far, along with some of my own opinions and additions to it. My main goal here is to explain what I'm thinking so we can make sure the project director election group has a shared understanding of the proposal, and also to fold any relevant thoughts back into the proposal. But I'd also like this to serve as a chance to raise awareness and solicit feedback. If this is something you're interested in, please come see us at #council/project-director-election-proposal on Zulip.

To give us enough time to follow this process, we are going to try to reach consensus on the proposal within the not too distant future. Look for official communication from the Rust Leadership Council once that happens.

Thanks to Jane Losare-Lusby for reviewing this post.


This isn't an exhaustive list, and having a more complete understanding of everything the Foundation does is something I'm definitely working to build.↩


We've been interpreting this to mean we need to have a vote, but there's some ambiguity here. For example, maybe "selection" and "election" are just synonyms for each other. To be play it safe though, we expect to have a ratification vote following the selection process we're currently designing.↩


The deadline is important here because we need to choose Project Directors by the time the current term ends on September 21.↩


Of course, it may turn out that picking three people at once is actually much much harder than picking one person three times in a row.↩