Fuchsia 工程委员会章程

概览

Fuchsia 工程委员会 (FEC) 是一小组高级技术主管,负责为 Fuchsia 提供一致的技术愿景。该委员会主要通过委托和批准运作,在整个社区中传播工程标准、价值观和目标,然后审核和批准项目贡献者提出的具体工程提案。具体而言,FEC 负责通过 Fuchsia RFC 流程批准或拒绝 Fuchsia RFC,以及解决无法在子团队内部解决的技术争议。

联系方式

如需与 FEC 的成员联系,请发送电子邮件至 eng-council@fuchsia.dev。涉及 FEC 的公开讨论应使用 eng-council-think@fuchsia.dev 列表。

目标

FEC 旨在通过为项目提供一致的技术愿景,推动在 Fuchsia 平台实现卓越技术。

任何设计系统(广泛定义)的组织都将产生其结构是组织通信结构的副本的设计。- Melvin E. 康威

作为项目通信结构中的顶级节点,委员会有助于制定系统设计,以便在项目范围内进行协调一致的权衡。

为了做出权衡,委员会旨在维护项目的价值观:

  • 尊重用户。该委员会最重视对使用 Fuchsia 所构建的产品的最终用户有影响的因素。例如,委员会倾向于采用可提高系统安全性、隐私保护和性能的设计,因为系统的这些方面会直接惠及最终用户。

  • 尊重开发者。该委员会优先考虑影响最终开发者(编写在 Fuchsia 上运行的软件)的最终开发者的因素,而不是影响项目贡献者(编写属于 Fuchsia 自身的软件)的因素。例如,破坏接口协定对项目贡献者来说可能很方便,但此类更改会给最终开发者带来沉重的负担。

  • 务实。相较于理论完美的方法,委员会会优先选择在实践中有效的方法。例如,委员会优先考虑通过运行代码而证明过的设计,而不是仅存在于纸面上的设计。

Activity

该委员会负责以下活动。其中大多数活动都是公开进行的,但如果委员会需要考虑非公开信息,则可以私下沟通。

系统架构

委员会维护着一组描述系统架构的文档。这些文档描述的是系统的当前状态,而不是对系统架构应如何演变的描述性文档。您应改用 Fuchsia RFC 流程发布更改系统架构的规范性方案。

系统架构文档可推动整个系统的技术一致性,因为它们有助于贡献者了解系统的整体工作原理,以及他们所负责的系统部分如何融入整个系统。

工程标准

委员会负责维护有关项目的工程标准的文档。工程标准描述了项目在审核代码贡献和设计文档时所应用的工程值。例如,这些标准说明了代码贡献的预期测试级别,以及设计中短期和长期考虑因素之间的平衡。

委员会可委托这部分职责。例如,该机构负责监管负责 Fuchsia 的 API Surface 的 API 委员会

工程审核

该委员会负责促进工程设计审核。该委员会确立了工程设计文档应以 RFC 形式发布的规范,包括支持 RFC 作者实现其设计社交,以及确定合适的利益相关方来详细审核设计。

评论请求 (RFC)

审核工程设计的最常用方法是通过 Fuchsia RFC 流程。在此过程中,委员会会就项目是接受还是拒绝 RFC 做出正式决定。在该流程中,委员会的作用主要是确保 RFC 已收到由负责详细审核文档的相应利益相关方组成的代码审核 +2。

如果 RFC 作者与一个或多个利益相关方之间存在无法解决的技术争议,委员会可以通过接受或拒绝 RFC 来解决争议。如果项目过程中出现技术争议,委员会可以要求其中一位争议者在 RFC 中记录争议的解决情况。

工程评价

委员会还可以在工程审核会议中审核工程设计。委员会倾向于尽可能使用 RFC 流程,因为 RFC 流程可扩大审核范围。但是,如果问题具有高时效性、涉及机密信息,或者相关讨论对于代码审核会话来说过于复杂,则工程审核就很适合。

委员会在工程审核中的职责主要是促进讨论,以及就所审核的问题的解决方式做出正式决定。工程评价的非机密结果应以 RFC 形式发布。

异议解决情况

该委员会负责解决无法在各个团队内部解决的技术争议。直接或间接参与争议的人员可将争议上报至理事会。委员会倾向于通过调解来解决争议,但对于无法通过调解解决的争议,委员会有权利进行仲裁。

决策过程

经委员会评估,委员会通过在议员之间粗略共识做出正式决定。如果委员会无法达成粗略共识,主席将作出最终决定。

成员资格状态

议会的人数没有预先确定。但是,为了提供一致的技术愿景,该委员会仅指定了少数成员。成员由项目的管理机构任命。

录取条件

计划成员应满足以下条件:

  • 成员必须对 Fuchsia 深入了解。通常,贡献者通过在项目上投入大量时间以及与系统的多个部分进行交互来获取这些知识。

  • 成员必须受到 Fuchsia 社区的广泛尊重。虽然委员会确实有一些正式的决策权,但委员会成员主要通过影响间接推动技术卓越,这在成员在社区中得到广泛尊重时效果最佳。

  • 团队成员必须具备很强的冲突解决能力。委员会的一个重要职能是解决技术争议,这要求委员会成员展现出强大的冲突解决技能,而这往往需要出色的沟通技能。

  • 成员还必须具备良好的技术领导经验。例如,成员可能是 Fuchsia 重要组件的实际或正式权威,也可能是在评估系统提议的更改之后寻求专业知识和判断的人。

候选人是否符合上述条件将由任命机构决定。委员会成员无需受雇于任何特定公司或组织。

当前会员人数

此 OWNERS 文件中列出了 Fuchsia 工程委员会的当前成员。