# 社区成员


本文简要描述了openEuler社区中贡献者角色的各种职责。大部分角色的职责限于这些SIG(Special Interest Group)内:

|角色| 职责范围(简要描述)|要求|定义的文件|
|:-----------|:-------------------- |:----------------------------------------------------- |:----------------------------------------------------------- |
|Contributor|项目的贡献者|| Gitee注册成员|
|Committer| 审核其他成员的贡献| SIG的积极贡献者,经验丰富,愿意投入精力参与到审核工作 | openEuler SIG拥有的存储库中OWNERS文件中的*Committer*条目。 |
| Maintainer| 项目Owner| 经验丰富,富有责任心、出色的技术能力和管理能力| openEuler SIG拥有的存储库中OWNERS文件中的*Maintainer*条目。 |

*说明*:Maintainer和Committer在Gitee的权限上不做区分,两者的区分主要是集中在SIG治理的管理范围上。详细可以见下面的描述。



## 新的贡献者

欢迎新成员加入社区。我们有关于如何开始贡献的指导文档请参考:[openEuler贡献者指南](/zh/contributors/README.md)



## 既有社区成员


既有的社区成员应证明能够遵守本文中的原则,熟悉SIG的组织、角色、政策、软件、约定等,以及相关的技术和/或写作能力。社区成员角色的期望、职责和要求,请参考下面的内容。



## 贡献者 Contributor
贡献者是社区中持续活跃的贡献者,他们可以认领问题和PR,可以参与SIG组活动,并且可以为PR提交前完成测试。



### 要求

+ Gitee上的注册会员
+ 为SIG或社区做出多方面贡献,包括不限于:
  + 在Gitee上提交或审核PR
  + 在Gitee上对问题进行归档或评论
  + 参与SIG或社区讨论
+ 已阅读[贡献者指南](/zh/contributors/README.md)
+ 积极参与1个或多个SIG



### 责任与权利

+ 响应被分配的问题和PR
+ 贡献的代码应该
  + 经过良好的测试
  + 能够让测试用例始终通过
  + 解决后继发生的错误或问题

+ 可以通过 `/lgtm`打开PR
+ 可以分配问题或PR,可以通过 `/cc @username`要求成员进行评论
+ 可以针对PR自动运行测试。`/ok-to-test`不是必要的
+ 可以使用`/ok-to-test`为具有`needs-ok-to-test`标签的PR进行操作,并使用诸如`/close`对PR进行关闭。

**注意**:经常贡献代码的成员应积极的参与代码审查,并努力成为SIG的*审核者Committer*。



## 审核者 Committer

审核者能够在SIG或SIG的某些部分中审核代码的质量和正确性。审核者对代码库和软件工程原理非常了解。

定义者:openEuler SIG拥有的存储库中OWNERS文件中的*developer*条目。

### 要求

+ 作为贡献者至少3个月
+ 作为主要审阅者至少参与了6次PR的审阅
+ 审阅或合并至少20个基本PR到代码库
+ 熟悉代码库
+ 可以自我提名,或由该SIG的审核者或维护者提名

### 责任与权力

+  **评审PR**:对Contributor提交的PR完成评审,评审可以参考社区的[编程建议]()和[安全编程规范]()。
+  **分发处理问题**:请参考“[问题处理流程]()“。
+  **跟踪依赖性问题**:在开发分支中,其他SIG组的软件包的更新可能会到导致破坏本SIG内软件包的依赖关系。此时Committer会收到告警提示,Committer应尽力重建软件包。依赖关系出错可能会使最终用户无法更新系统,打包团队也会介入并重建存在依赖性问题的软件包,但Maintainer不应依赖这些重建。
+  **如有接口变更,通知可能会影响到的SIG**:其他SIG或项目会依赖本SIG的软件包,对软件包接口的变更可能会对他们造成影响。Maintainer应了解并评审&决策变更造成的依赖影响,并公告和发送API或ABI变更的告警邮件。这类公告应在变更发生至少一周前完成,并应通知到所有可能受影响的SIG。具体请参考[接口变更通知流程]()。
+  **更新和维护软件包版本**:遵守社区的[软件包更新质量控制策略]()完成软件包的更新。
+  **和上游社区合作**,包括:
   +    将所有变更推送到上游社区
   +    参与上游社区邮件列表
   +    获取上游社区的bug跟踪器的账户,并跟踪上游社区的重要bug
   +    将严重的错误转发给上游社区以寻求帮助
         更多信息,请参考“[上游社区软件包管理建议]()”
+  **和测试团队合作**,包括:
   +  在提交软件包时,向质量检查人员提供如何调试/分类软件包的信息,以供问题的分类
   +  提供基本功能的测试用例,用于测试回归
   +  提交软件包更新时,提供有关更新中已经修复问题的测试用例,以供质量检查人员使用。 



## 维护者 Maintainer

维护者是SIG组的组长或者管理委员会成员,也是软件包的维护者,能够像Committer一样审查和批准代码贡献。代码审查的重点是代码质量和正确性,而批准的重点是对贡献的整体接受度。**所有Committer的责任与权力,Maintainer均具有**。除此之外,Maintainer还承担了团队的技术路线、内外协调等工作。

**定义**:openEuler SIG拥有的存储库中OWNERS文件中的*developer*条目



### 要求

+ 作为审核者至少3个月
+ 作为主要审阅者至少参与了12次PR的审阅
+ 审阅或合并至少30个基本PR到代码库
+ 熟悉代码库
+ 可以自我提名,也可以由子项目Maintainer提名,并且没有其他子项目Maintainer的反对

### 责任与权力

- **确定SIG所负责项目的技术路线**:包括规划和决策SIG技术方向、路标规划、架构演进。
- **制定SIG所负责项目的发布计划**:确定SIG的关键需求和发布计划;参与社区的PM活动,并协调SIG计划和社区版本的里程碑时间表匹配
- **参与社区协调活动**:作为SIG的代表参与openEuler技术委员会或理事会组织的活动和特定会议等
- **召集SIG组会议**:定期召集SIG会议,决策SIG内上升的争议