# 社区成员


本文简要描述了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内上升的争议


