• Feature Name: not applicable
  • Start Date: 2015-02-27
  • RFC PR: rust-lang/rfcs#1068
  • Rust Issue: N/A

Summary

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.

Motivation

Rust's governance has evolved over time, perhaps most dramatically with the introduction

はじめに、導入
of the RFC system -- which has itself been tweaked many times. RFCs have been a major boon for improving design
設計(する)
quality and fostering deep, productive discussion. It's something we all take
とる
pride in.

That said, as Rust has matured, a few growing pains have emerged.

We'll start with a brief review of today's governance and process, then discuss what needs to be improved.

Background: today's governance structure

Rust is governed by a core team, which is ultimately responsible for all decision-making in the project. Specifically,

特に
the core team:

  • Sets
    セットする、集合
    the overall direction
    方向
    and vision for the project;
  • Sets
    セットする、集合
    the priorities and release schedule;
  • Makes final decisions on RFCs.

The core team currently has 8 members, including some people working full-time on Rust, some volunteers, and some production

生成規則
users.

Most technical decisions are decided through the RFC process. RFCs are submitted for essentially all changes to the language,

言語
most changes to the standard library, and a few other topics. RFCs are either closed immediately
直後に、直接的に
(if they are clearly not viable), or else assigned
代入する
a shepherd who is responsible for keeping the discussion moving and ensuring all concerns are responded to.

The final decision to accept

受け付ける、受理する
or reject an RFC is made by the core team. In many cases this decision follows
下記の、次に続く、追従する
after many rounds of consensus-building among all stakeholders for the RFC. In the end, though, most decisions are about weighting various
さまざまな
tradeoffs, and the job of the core team is to make the final decision about such weightings in light of the overall direction
方向
of the language.
言語

What needs improvement

At a high level, we need to improve:

  • Process scalability.
  • Stakeholder involvement.
  • Clarity/transparency.
  • Moderation processes.

Below, each of these bullets is expanded into a more detailed analysis

解析
of the problems. These are the problems this RFC is trying to solve. The "Detailed Design"
設計(する)
section
then gives the actual
実際の
proposal.

Scalability: RFC process

In some ways, the RFC process is a victim of its own success: as the volume and depth of RFCs has increased,

増加する、昇順の
it's harder for the entire core team to stay educated and involved in every RFC. The shepherding process has helped make sure that RFCs don't fall through the cracks, but even there it's been hard for the relatively small number of shepherds to keep up (on top of the other work that they do).

Part of the problem, of course, is due to the current push toward 1.0, which has both increased

増加する、昇順の
RFC volume and takes
とる
up a great deal of attention from the core team. But after 1.0 is released, the community is likely to grow significantly,
著しく
and feature requests will only increase.

Growing the core team over time has helped, but there's a practical limit to the number of people who are jointly making decisions and setting

セットする、集合
direction.
方向

A distinct

区別された/独立した
problem in the other direction
方向
has also emerged recently: we've slowly been requiring RFCs for increasingly minor changes. While it's important that user-facing changes and commitments be vetted, the process has started to feel heavyweight (especially for newcomers), so a recalibration may be in order.
順序

We need a way to scale

規模を変更する
up the RFC process that:

  • Ensures each RFC is thoroughly reviewed by several people with interest and expertise in the area, but with different perspectives and concerns.

  • Ensures each RFC continues moving through the pipeline at a reasonable pace.

  • Ensures that accepted RFCs are well-aligned with the values, goals, and direction

    方向
    of the project, and with other RFCs (past, present,
    ある
    and future).

  • Ensures that simple, uncontentious changes can be made quickly, without undue process burden.

Scalability: areas of focus

In addition,

追加
there are increasingly areas of important work that are only loosely connected with decisions in the core language
言語
or APIs: tooling, documentation,
文書
infrastructure, for example. These areas all need leadership, but it's not clear that they require the same degree of global coordination that more "core" areas do.

These areas are only going to increase in number and importance, so we should remove obstacles holding

保有する、有効である
them back.

Stakeholder involvement

RFC shepherds are intended to reach out to "stakeholders" in an RFC, to solicit their feedback. But that is different from the stakeholders having a direct role in decision making.

To the extent practical, we should include a diverse range

範囲
of perspectives in both design
設計(する)
and decision-making, and especially include people who are most directly
直接
affected by decisions: users.

We have taken some steps in this direction

方向
by diversifying the core team itself, but (1) members of the core team by definition
定義
need to take
とる
a balanced, global view of things and (2) the core team should not grow too large. So some other way of including more stakeholders in decisions would be preferable.

Clarity and transparency

Despite many steps toward increasing

増加する、昇順の
the clarity and openness of Rust's processes, there is still room
余地
for improvement:

  • The priorities and values set

    セットする、集合
    by the core team are not always clearly communicated today. This in turn can make the RFC process seem opaque, since RFCs move along at different speeds (or are even closed as postponed) according
    according to 〜に応じて
    to these priorities.

    At a large scale,

    規模を変更する
    there should be more systematic communication
    通信
    about high-level priorities. It should be clear whether a given
    与えられた
    RFC topic would be considered
    みなす、考慮する
    in the near term,
    項、用語
    long term,
    項、用語
    or 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.

    At a smaller scale,

    規模を変更する
    it is still the case that RFCs fall through the cracks or have unclear statuses (see Scalability problems above). Clearer, public tracking of the RFC pipeline would be a significant improvement.

  • The decision-making process can still be opaque: it's not always clear to an RFC author exactly

    正確に
    when and how a decision on the RFC will be made, and how best to work with the team for a favorable decision. We strive to make core team meetings as uninteresting as possible (that is, all interesting debate should happen in public online communication), but there is still room
    余地
    for being more explicit
    明示的な
    and public.

Community norms and the Code of Conduct

Rust's design

設計(する)
process and community norms are closely intertwined. The RFC process is a joint exploration of design
設計(する)
space and tradeoffs, and requires consensus-building. The process -- and the Rust community -- is at its best when all participants recognize that

... people have differences of opinion and that every design

設計(する)
or implementation
実装
choice carries a trade-off and numerous costs. There is seldom a right answer.

This and other important values and norms are recorded in the project code of conduct (CoC), which also includes language

言語
about harassment and marginalized groups.

Rust's community has long upheld a high standard of conduct, and has earned a reputation for doing so.

However, as the community grows, as people come and go, we must continually work to maintain this standard. Usually, it suffices to lead by example, or to gently explain the kind of mutual respect that Rust's community practices. Sometimes, though, that's not enough, and explicit

明示的な
moderation is needed.

One problem that has emerged with the CoC is the lack of clarity about the mechanics of moderation:

  • Who is responsible for moderation?
  • What about conflicts of interest? Are decision-makers also moderators?
  • How are moderation decisions reached? When are they unilateral?
  • When does moderation begin, and how quickly should it occur?
  • Does moderation take
    とる
    into account past history?
  • What venues does moderation apply
    適用する
    to?

Answering these questions, and generally clarifying how the CoC is viewed and enforced, is an important step toward scaling up the Rust community.

Detailed design
設計(する)

The basic idea is to supplement the core team with several "subteams". Each subteam is focused on a specific

特定の
area, e.g., language
言語
design
設計(する)
or libraries. Most of the RFC review process will take
とる
place within the relevant subteam, scaling up our ability to make decisions while involving a larger group of people in that process.

To ensure

保証する
global coordination and a strong, coherent vision for the project as a whole, each subteam is led by a member of the core team.

Subteams

The primary

主要な、初等の、第一の
roles of each subteam are:

  • Shepherding RFCs for the subteam area. As always, that means (1) ensuring that stakeholders are aware of the RFC, (2) working to tease out various

    さまざまな
    design
    設計(する)
    tradeoffs and alternatives,
    代わりのもの、選択肢
    and (3) helping build consensus.

  • Accepting or rejecting RFCs in the subteam area.

  • Setting

    セットする、集合
    policy on what changes in the subteam area require RFCs, and reviewing direct PRs for changes that do not require an RFC.

  • Delegating reviewer rights for the subteam area. The ability to r+ is not limited to team members, and in fact earning r+ rights is a good stepping stone toward team membership. Each team should set

    セットする、集合
    reviewing policy, manage reviewing rights, and ensure
    保証する
    that reviews take
    とる
    place in a timely manner. (Thanks to Nick Cameron for this suggestion.)

Subteams make it possible to involve a larger, more diverse group in the decision-making process. In particular, they should involve a mix of:

  • Rust project leadership, in the form

    形式、形態、形作る
    of at least one core team member (the leader of the subteam).

  • Area experts: people who have a lot of interest and expertise in the subteam area, but who may be far less engaged with other areas of the project.

  • Stakeholders: people who are strongly affected by decisions in the subteam area, but who may not be experts in the design

    設計(する)
    or implementation
    実装
    of that area. It is crucial that some people heavily using Rust for applications/libraries have a seat at the table, to make sure we are actually addressing real-world needs.

Members should have demonstrated a good sense for design

設計(する)
and dealing with tradeoffs, an ability to work within a framework of consensus, and of course sufficient knowledge about or experience with the subteam area. Leaders should in addition
追加
have demonstrated exceptional communication,
通信
design,
設計(する)
and people skills. They must be able to work with a diverse group of people and help lead it toward consensus and execution.
実行

Each subteam is led by a member of the core team. The leader is responsible for:

  • 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.

    • Working with subteam members to determine

      決定する
      and publish subteam policies and mechanics, including the way that subteam members join or leave the team (which should be based
      基となる、基底(の)
      on subteam consensus).

  • Communicating core team vision downward to the subteam.

  • Alerting the core team to subteam RFCs that need global, cross-cutting attention, and to RFCs that have entered the "final comment period" (see below).

  • Ensuring that RFCs and PRs are progressing at a reasonable rate, re-assigning shepherds/reviewers as needed.

  • Making final decisions in cases of contentious RFCs that are unable to reach consensus otherwise

    さもなければ
    (should be rare).

The way that subteams communicate internally and externally is left to each subteam to decide, but:

  • Technical discussion should take

    とる
    place as much as possible on public forums, ideally on RFC/PR threads and tagged discuss posts.

  • Each subteam will have a dedicated discuss forum tag.

  • Subteams should actively seek out discussion and input from stakeholders who are not members of the team.

  • Subteams should have some kind of regular

    普通の、正規の
    meeting or other way of making decisions. The content of this meeting should be summarized with the rationale for each decision -- and, as explained below, decisions should generally be about weighting a set
    セットする、集合
    of already-known tradeoffs, not discussing or discovering new rationale.

  • Subteams should regularly publish the status of RFCs, PRs, and other news related to their area. Ideally, this would be done in part via a dashboard like the Homu queue

Core team

The core team serves

働く、用をなす
as leadership for the Rust project as a whole. In particular, it:

  • Sets

    セットする、集合
    the overall direction
    方向
    and vision for the project.
    That means setting
    セットする、集合
    the core values that are used when making decisions about technical tradeoffs. It means steering the project toward specific
    特定の
    use cases where Rust can have a major impact. It means leading the discussion, and writing RFCs for, major initiatives in the project.

  • Sets

    セットする、集合
    the priorities and release schedule. Design
    設計(する)
    bandwidth is limited, and it's dangerous to try to grow the language
    言語
    too quickly; the core team makes some difficult decisions about which areas to prioritize for new design,
    設計(する)
    based
    基となる、基底(の)
    on the core values and target use cases.

  • Focuses on broad, cross-cutting concerns. The core team is specifically

    特に
    designed
    設計(する)
    to take
    とる
    a global view of the project, to make sure the pieces are fitting together in a coherent way.

  • Spins up or shuts down subteams. Over time, we may want to expand the set

    セットする、集合
    of subteams, and it may make sense to have temporary
    一時的な
    "strike teams" that focus on a particular, limited task.

  • Decides whether/when to ungate a feature. While the subteams make decisions on RFCs, the core team is responsible for pulling the trigger

    引き起こす
    that moves a feature from nightly to stable. This provides
    与える
    an extra check that features have adequately addressed cross-cutting concerns, that the implementation
    実装
    quality is high enough, and that language/library commitments are reasonable.

The core team should include both the subteam leaders, and, over time, a diverse set

セットする、集合
of other stakeholders that are both actively involved in the Rust community, and can speak to the needs of major Rust constituencies, to ensure
保証する
that the project is addressing real-world needs.

Decision-making

Consensus

Rust has long used a form

形式、形態、形作る
of consensus decision-making. In a nutshell the premise is that a successful outcome is not where one side of a debate has "won", but rather where concerns from all sides have been addressed in some way. This emphatically does not entail design
設計(する)
by committee, nor compromised design
設計(する)
. Rather, it's a recognition that

... every design

設計(する)
or implementation
実装
choice carries a trade-off and numerous costs. There is seldom a right answer.

Breakthrough designs

設計(する)
sometimes end up changing the playing field by eliminating tradeoffs altogether, but more often difficult decisions have to be made. The key is to have a clear vision and set
セットする、集合
of values and priorities
, which is the core team's responsibility to set
セットする、集合
and communicate, and the subteam's responsibility to act
振る舞う
upon.

Whenever possible, we seek to reach consensus through discussion and design

設計(する)
revision. Concretely, the steps are:

  • Initial
    初期
    RFC proposed, with initial
    初期
    analysis
    解析
    of tradeoffs.
  • Comments reveal additional
    追加の
    drawbacks, problems, or tradeoffs.
  • RFC revised to address comments, often by improving the design.
    設計(する)
  • Repeat above until "major objections" are fully
    完全に
    addressed, or it's clear that there is a fundamental choice to be made.

Consensus is reached when most people are left with only "minor" objections, i.e., while they might choose the tradeoffs slightly differently they do not feel a strong need to actively block the RFC from progressing.

One important question is: consensus among which people, exactly? Of course, the broader the consensus, the better. But at the very least, consensus within the members of the subteam should be the norm for most decisions. If the core team has done its job of communicating the values and priorities, it should be possible to fit the debate about the RFC into that framework and reach a fairly clear outcome.

Lack of consensus

In some cases, though, consensus cannot be reached. These cases tend to split into two very different camps:

  • "Trivial" reasons, e.g., there is not widespread agreement about naming, but there is consensus about the substance.

  • "Deep" reasons, e.g., the design

    設計(する)
    fundamentally improves one set
    セットする、集合
    of concerns at the expense of another, and people on both sides feel strongly about it.

In either case, an alternative

代わりのもの、選択肢
form
形式、形態、形作る
of decision-making is needed.

  • For the "trivial" case, usually either the RFC shepherd or subteam leader will make an executive decision.

  • For the "deep" case, the subteam leader is empowered to make a final decision, but should consult with the rest of the core team before doing so.

How and when RFC decisions are made, and the "final comment period"

Each RFC has a shepherd drawn from the relevant subteam. The shepherd is responsible for driving the consensus process -- working with both the RFC author and the broader community to dig out problems, alternatives,

代わりのもの、選択肢
and improved design,
設計(する)
always working to reach broader consensus.

At some point, the RFC comments will reach a kind of "steady state", where no new tradeoffs are being discovered, and either objections have been addressed, or it's clear that the design

設計(する)
has fundamental downsides that need to be weighed.

At that point, the shepherd will announce that the RFC is in a "final comment period" (which lasts for one week). This is a kind of "last call"

呼び出し
for strong objections to the RFC. The announcement of the final comment period for an RFC should be very visible; it should be included in the subteam's periodic communications.
通信

Note that the final comment period is in part intended to help keep RFCs moving. Historically, RFCs sometimes stall out at a point where discussion has died down but a decision isn't needed urgently. In this proposed model, the RFC author could ask the shepherd to move to the final comment period (and hence toward a decision).

After the final comment period, the subteam can make a decision on the RFC. The role of the subteam at that point is not to reveal any new technical issues or arguments;

引数
if these come up during discussion, they should be added
たす
as comments to the RFC, and it should undergo another final comment period.

Instead, the subteam decision is based

基となる、基底(の)
on weighing the already-revealed tradeoffs against the project's priorities and values (which the core team is responsible for setting,
セットする、集合
globally). In the end, these decisions are about how to weight tradeoffs. The decision should be communicated in these terms,
項、用語
pointing out the tradeoffs that were raised and explaining how they were weighted, and never introducing new arguments
引数
.

Keeping things lightweight

In addition

追加
to the "final comment period" proposed above, this RFC proposes some further
さらなる、それ以上
adjustments to the RFC process to keep it lightweight.

A key observation is that, thanks to the stability system and nightly/stable distinction, it's easy to experiment with features without commitment.

Clarifying what needs an RFC

Over time, we've been drifting toward requiring an RFC for essentially any user-facing change, which sometimes means that very minor changes get stuck awaiting an RFC decision. While subteams + final comment period should help keep the pipeline flowing a bit better, it would also be good to allow

許可する、可能にする
"minor" changes to go through without an RFC, provided
与える
there is sufficient review in some other way. (And in the end, the core team ungates features, which ensures at least a final review.)

This RFC does not attempt to answer the question "What needs an RFC", because that question will vary for each subteam. However, this RFC stipulates that each subteam should set

セットする、集合
an explicit
明示的な
policy about:

  1. What requires an RFC for the subteam's area, and
  2. What the non-RFC review process is.

These guidelines should try to keep the process lightweight for minor changes.

Clarifying the "finality" of RFCs

While RFCs are very important, they do not represent the final state of a design.

設計(する)
Often new issues or improvements arise during implementation,
実装
or after gaining some experience with a feature. The nightly/stable distinction exists in part to allow
許可する、可能にする
for such design
設計(する)
iteration.
反復、繰り返し

Thus

それゆえに、従って、
RFCs do not need to be "perfect" before acceptance. If consensus is reached on major points, the minor details can be left to implementation
実装
and revision.

Later, if an implementation

実装
differs from the RFC in substantial ways, the subteam should be alerted, and may ask for an explicit
明示的な
amendment RFC. Otherwise,
さもなければ
the changes should just be explained in the commit/PR.

The teams

With all of that out of the way, what subteams should we start with? This RFC proposes the following

下記の、次に続く、追従する
initial
初期
set:
セットする、集合

  • Language
    言語
    design
    設計(する)
  • Libraries
  • Compiler
  • Tooling and infrastructure
  • Moderation

In the long run, we will likely also want teams for documentation

文書
and for community events, but these can be spun up once there is a more clear need (and available resources).

Language
言語
design
設計(する)
team

Focuses on the design

設計(する)
of language-level features; not all team members need to have extensive implementation
実装
experience.

Some example RFCs that fall into this area:

Library team

Oversees both std and, ultimately, other crates in the rust-lang github organization. The focus up to this point has been the standard library, but we will want "official" libraries that aren't quite std territory but are still vital for Rust. (The precise plan here, as well as the long-term plan for std, is one of the first important areas of debate for the subteam.) Also includes API conventions.

Some example RFCs that fall into this area:

Compiler team

Focuses on compiler internals, including implementation

実装
of language
言語
features. This broad category includes work in codegen, factoring of compiler data structures, type inference, borrowck, and so on.

There is a more limited set

セットする、集合
of example RFCs for this subteam, in part because we haven't generally required RFCs for this kind of internals work, but here are two:

Tooling and infrastructure team

Even more broad is the "tooling" subteam, which at inception is planned to encompass every "official" (rust-lang managed) non-rustc tool:

  • rustdoc
  • rustfmt
  • Cargo
  • crates.io
  • CI infrastructure
  • Debugging tools
  • Profiling tools
  • Editor/IDE integration
  • Refactoring tools

It's not presently clear exactly

正確に
what tools will end up under this umbrella, nor which should be prioritized.

Moderation team

Finally, the moderation team is responsible for dealing with CoC violations.

One key difference from the other subteams is that the moderation team does not have a leader. Its members are chosen directly

直接
by the core team, and should be community members who have demonstrated the highest standard of discourse and maturity. To limit conflicts of interest, the moderation subteam should not include any core team members. However, the subteam is free to consult with the core team as it deems appropriate.

The moderation team will have a public email address that can be used to raise complaints about CoC violations (forwards to all active moderators).

Initial
初期
plan for moderation

What follows

下記の、次に続く、追従する
is an initial
初期
proposal for the mechanics of moderation. The moderation subteam may choose to revise this proposal by drafting an RFC, which will be approved by the core team.

Moderation begins whenever a moderator becomes aware of a CoC problem, either through a complaint or by observing it directly.

直接
In general,
一般
the enforcement steps are as follows:
下記の、次に続く、追従する

These steps are adapted from text written by Manish Goregaokar, who helped articulate them from experience as a Stack Exchange moderator.

  • Except for extreme cases (see below), try first to address the problem with a light public comment on thread, aimed to de-escalate the situation. These comments should strive for as much empathy as possible. Moderators should emphasize that dissenting opinions are valued, and strive to ensure

    保証する
    that the technical points are heard even as they work to cool things down.

    When a discussion has just gotten a bit heated, the comment can just be a reminder to be respectful and that there is rarely a clear "right" answer. In cases that are more clearly over the line into personal attacks, it can directly

    直接
    call
    呼び出し
    out a problematic comment.

  • If the problem persists on thread, or if a particular person repeatedly comes close to or steps over the line of a CoC violation, moderators then email the offender privately. The message should include relevant portions of the CoC together with the offending comments. Again, the goal is to de-escalate, and the email should be written in a dispassionate and empathetic way. However, the message should also make clear that continued violations may result

    結果、戻り値
    in a ban.

  • If problems still persist, the moderators can ban the offender. Banning should occur

    起こる
    for progressively longer periods, for example starting at 1 day, then 1 week, then permanent. The moderation subteam will determine
    決定する
    the precise guidelines here.

In general,

一般
moderators can and should unilaterally take
とる
the first step, but steps beyond that (particularly banning) should be done via consensus with the other moderators. Permanent bans require core team approval.

Some situations call

呼び出し
for more immediate, drastic measures: deeply inappropriate comments, harassment, or comments that make people feel unsafe. (See the code of conduct for some more details about this kind of comment). In these cases, an individual
個々の、それぞれの
moderator is free to take
とる
immediate, unilateral steps including redacting or removing comments, or instituting a short-term ban until the subteam can convene to deal with the situation.

The moderation team is responsible for interpreting

解釈する
the CoC. Drastic measures like bans should only be used in cases of clear, repeated violations.

Moderators themselves are held to a very high standard of behavior,

ふるまい
and should strive for professional and impersonal interactions when dealing with a CoC violation. They should always push to de-escalate. And they should recuse themselves from moderation in threads where they are actively participating in the technical debate or otherwise
さもなければ
have a conflict of interest. Moderators who fail to keep up this standard, or who abuse the moderation process, may be removed by the core team.

Subteam, and especially core team members are also held to a high standard of behavior.

ふるまい
Part of the reason to separate the moderation subteam is to ensure
保証する
that CoC violations by Rust's leadership be addressed through the same independent body of moderators.

Moderation covers all rust-lang venues, which currently include github repos, IRC channels (#rust, #rust-internals, #rustc, #rust-libs), and the two discourse forums. (The subreddit already has its own moderation structure, and isn't directly

直接
associated with the rust-lang organization.)

Drawbacks

One possibility is that decentralized decisions may lead to a lack of coherence in the overall design

設計(する)
of Rust. However, the existence of the core team -- and the fact that subteam leaders will thus
それゆえに、従って、
remain in close communication
通信
on cross-cutting concerns in particular -- serves
働く、用をなす
to greatly mitigate that risk.

As with any change to governance, there is risk that this RFC would harm processes that are working well. In particular, bringing on a large number of new people into official decision-making roles carries a risk of culture clash or problems with consensus-building.

By setting

セットする、集合
up this change as a relatively slow build-out from the current core team, some of this risk is mitigated: it's not a radical restructuring, but rather a refinement of the current process. In particular, today core team members routinely seek input directly
直接
from other community members who would be likely subteam members; in some ways, this RFC just makes that process more official.

For the moderation subteam, there is a significant shift toward strong enforcement of the CoC, and with that a risk of over-application: the goal is to make discourse safe and productive, not to introduce

導入する
fear of violating
違反する
the CoC. The moderation guidelines, careful selection
選択
of moderators, and ability to withdraw moderators mitigate this risk.

Alternatives
代わりのもの、選択肢

There are numerous other forms

形式、形態、形作る
of open-source governance out there, far more than we can list
リスト、列挙する
or detail here. And in any case, this RFC is intended as an expansion of Rust's existing governance to address a few scaling problems, rather than a complete
完全な
rethink.

Mozilla's module system, was a partial inspiration for this RFC. The proposal here can be seen as an evolution of the module system where the subteam leaders (module owners) are integrated into an explicit

明示的な
core team, providing
与える
for tighter intercommunication and a more unified sense of vision and purpose. Alternatively, the proposal is an evolution of the current core team structure to include subteams.

One seemingly minor, but actually important aspect is naming:

  • The name "subteam" (from jQuery) felt like a better fit than "module" both to avoid

    避ける、回避する
    confusion (having two different kinds of modules associated with Mozilla seems problematic) and because it emphasizes the more unified nature of this setup.

  • The term

    項、用語
    "leader" was chosen to reflect that there is a vision for each subteam (as part of the larger vision for Rust), which the leader is responsible for moving the subteam toward. Notably, this is how "module owner" is actually defined
    定義する
    in Mozilla's module system:

    A "module owner" is the person to whom leadership of a module's work has been delegated.

  • The term

    項、用語
    "team member" is just following
    下記の、次に続く、追従する
    standard parlance. It could be replaced by something like "peer" (following the module system tradition), or some other term
    項、用語
    that is less bland than "member". Ideally, the term
    項、用語
    would highlight the significant stature of team membership: being part of the decision-making group for a substantial area of the Rust project.

Unresolved questions

Subteams

This RFC purposefully leaves several subteam-level questions open:

  • What is the exact venue and cadence for subteam decision-making?
  • Do subteams have dedicated IRC channels or other forums? (This RFC stipulates only dedicated discourse tags.)
  • How large is each subteam?
  • What are the policies for when RFCs are required, or when PRs may be reviewed directly?

These questions are left to be address by subteams after their formation, in part because good answers will likely require some iterations

反復、繰り返し
to discover.

Broader questions

There are many other questions that this RFC doesn't seek to address, and this is largely intentional. For one, it avoids

避ける、回避する
trying to set
セットする、集合
out too much structure in advance, making it easier to iterate on the mechanics of subteams. In addition,
追加
there is a danger of too much policy and process, especially given
与えられた
that this RFC is aimed to improve the scalability of decision-making. It should be clear that this RFC is not the last word on governance, and over time we will probably want to grow more explicit
明示的な
policies in other areas -- but a lightweight, iterative approach seems the best way to get there.