-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Scaling Rust's Governance #1068
Conversation
👍 |
## Background: today's governance structure | ||
|
||
Rust is governed by a | ||
[core team](https://github.com/rust-lang/rust/wiki/Note-core-team), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Broken link, should reference the wiki backup instead.
Is it team leader’s resposibility to select subteam members or perhaps one has to nominate oneself somehow (if so, how)? |
|
||
* Each subteam will have a dedicated discuss forum tag. | ||
|
||
* Subteams should have some kind of regular meeting or other way of making |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: Probably should have public minutes as much as possible.
The team will select new members. This can either be unilaterally by the team owner, or by a discussion amongst the other members, if any. Should be the latter in general, though I think the RfC leaves the decision of how subteams can be expanded to the individual subteams so a subteam might decide on a more involved process. Of course, you can nominate yourself by asking the team leader 😛 |
@nagisa @lambda I've taken your suggestions, thanks! And @nagisa, I added a bit of text about how the subteam membership evolves. Basically the policy is left to each subteam to decide (since the needs will differ by area), but after the team is up and running changes to its makeup should involve some kind of team consensus. |
…borate on how decisions are communicated.
@Manishearth: I've pushed a commit to address both of the points you raised. Thanks! |
* Setting up the subteam: | ||
|
||
* Deciding on the initial membership of the subteam (in consultation with | ||
the core team). Once the subteam is up and running. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once the subteam is up and running.
? Missing a word or extra punctuation or something?
Overall this seems like a major improvement to the current process, 👍. All of my thoughts/concerns are basically things that can/should be hashed out adhoc by the individual teams, I think. |
👍 from me too, this seems really nice. |
never. Recent blog posts about the 1.0 release and stabilization | ||
have made a big step in this direction. After 1.0, as part of the | ||
regular release process, we'll want to find some regular cadence for | ||
setting and communicating priorities. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For a project to be truly open, the process on deciding on these priorities must be public as well as the outcomes. Blog posts etc. have a place in keeping casual users informed, but to truly involve the community, we need to do much better at sharing how the core team arrive at decisions and trade-offs.
I.e., we need to find ways for the community to be part of the process (even if that is just as observers), not just recipients of the outcomes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you feel the RFC process is deficient in some way with regard to this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The process of setting priorities and strategic level direction has not been part of the RFC process, its been decided by the core team and only the results of the process have been stated publicly (not even the results sometimes). So it seems to be a process which is (somewhat) orthogonal to the RFC process and one where the level of openness has been sub-optimal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Niko's recent post about post-1.0 priorities is a good example of the kind of communication I have in mind here. The initial priorities laid out came out of consultation with a large number of people in the community, and the post itself is an explicit "request for comments". I'll make some additional replies about core team communication elsewhere on thread.
Is there sill a role for the current weekly meeting or should its responsibilities be entirely covered by the subteams? Can we have minutes for the core team meeting? And a general move towards more open communication between the core team? I would very much like to see some movement in that direction in this RFC. |
I think that if we make the move to subteams, the current meeting structure should be completely rethought. And yes, in particular the weekly meeting should be replaced by subteam meetings. I'm personally still interested in an additional, "town hall" style meeting, perhaps once per cycle.
Sure, we can put out minutes of whatever meetings we wind up with (it's a little unclear how things will be structured if we move to subteams). |
I think at the very least a summary of the discussions, and why each decision was made, would be nice. |
I'm not sure what this is a reply to, but these summaries and explanations of rationales are already made when merging or closing RFCs -- it's something we've been working really hard to do with every RFC. They could certainly be consolidated into meeting minutes, but as I said above we try to avoid making decisions in meetings anyway. But maybe I'm misunderstanding what you mean? |
Nah, it was a general comment on the entire minutes discussion. Never mind it :) |
After the discussion on this thread, the core team decided to start publishing minutes for its meetings, regardless of the outcome of this RFC. The first set of minutes is up here. As you can see, rather than a transcript (which tends to have a mixed amount of detail, be difficult to follow, and require someone to focus on real-time transcription rather than the conversation), we've summarized the contents of the meeting post hoc. |
\o/ nice 😄 |
Awesome, happy to see the core team meeting minutes |
and future). | ||
|
||
* Ensures that simple, uncontentious changes can be made quickly, without undue | ||
process burden. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A minor nitpick: I would say "unnecessary" or "needless" rather than "undue". The phrase "undue process burden" sounds like a reference to the concept of "due process", which is well-known legal jargon in most English-speaking countries, but I think that's just a distracting coincidence.
I still need time to re-read/re-think this and the comments, but a few immediate thoughts:
|
I don't think we'll need a decision-making subteam here -- any decisions can be handled by the core or the compiler subteam, and there are people who do occasionally make PRs about this. |
@Manishearth I simply disagree. I regard this as a separate and essential specialty. The core team is by design not intended to deal with specialties, and my understanding is that the reference compiler team will have a lot of competing concerns. (Besides which, language design and libraries are both as relevant as the compiler.) To be frank, I suspect that we will get by without such a subteam for a while, because it's not completely critical, and because we may not have enough people who are invested in Rust and prefer to specialize in hardware yet. (We have occasional RFCs, but fewer than I would expect for a systems language.) I think that in the medium/long run maintaining competitive performance will be difficult, though, without a body of specialists who look specifically at throughput and the ability to express various optimizations in Rust. |
The thing is, the subteams are not for working on an issue, they are for prioritization and decision making. There's not much decision making to be done here, mostly just work. There may be occasional prioritization necessary and this sort of stuff can be handled by the core team (similar to all the other fields which rarely need a decision). A group of specialists can be formed; I just don't see how it fits into the subteam system. |
@Manishearth OK, I agree now. |
Have you considered having a single person in charge, possibly elected by the core team? The issue with having a team in charge is that decisions may happen (or not happen) without any single person feeling truly responsible for them, which may result in bad decisions or inaction where action would be necessary. As an example, you could have a situation where something is criticized and everyone on the core team could legitimately respond with "well, I'm not totally sure about that, but we decided to do it this way last meeting" and do nothing, while a single leader would have to either back up his decision or realize he made a mistake and move to correct it. |
For subteams or the core team? Subteams have a leader, except for the mod subteam. The core team has a bettry interpersonal dynamic than that I think -- If such things are happening there's a problem with the team. Also fwiw most decisions will be made by the relevant subteam, which will be headed by a core team member (?), so for an individual decision there is a "responsible" party. ish. |
Seems like we've reached a fixed point on this? I guess we should move to the "final comment period" for this RfC then 😛 |
Final comment: 👍 This is a real step forward, and I'm glad we're taking it. |
Time to merge? :D |
After giving this RFC a go through a trial run of the "final comment period", it looks like it's come out quite well! At this point there appears to be broad consensus that this is a great step forward for Rust's governance, both improving its transparency, scalability, and openness. As such, I'm now going to merge this RFC. Thanks again for everyone's discussion on this topic, it has been quite valuable! The core team has been discussing the initial set of subteams and membership, and more details are soon to follow. This will also include an initial sketch for how the subteams may operate with guidelines about communication, status reports, etc. Stay tuned! |
This RFC proposes to expand, and make more explicit, Rust's governance
structure. It seeks to supplement today's core team with several
subteams that are more narrowly focused on specific areas of
interest.
Thanks to Nick Cameron, Manish Goregaokar, Yehuda Katz, Niko Matsakis
and Dave Herman for many suggestions and discussions along the way.
Rendered