CANN社区角色定义及晋升机制
1. 角色定义
- 用户 (Users): 使用CANN项目的广大用户,他们通过Issue向CANN社区反馈问题和提出功能建议。
- 贡献者 (Contributors): 拥有一定编程经验的开发者,他们通过代码贡献、文档贡献、技术方案讨论、问题解答、发表技术文章、策划社区活动等方式参与CANN社区。
- 提交者 (Committers): Committer拥有特定SIG子领域代码仓库的写权限,负责模块设计与评审、代码审核与维护,处理社区的Issue,帮助Contributors提升代码开发技能。Committer的申请是按代码仓库维度进行的,即每个Committer的权限和职责都与其所申请的特定代码仓库相关。
- 维护者 (Maintainers): 负责特定SIG的运营和维护,定义SIG的工作范围和目标,吸纳并发展Committer参与项目孵化和推广,定期(建议至少每年各1次)向技术指导委员会、项目管理委员会汇报SIG运营进展,并基于对应委员会的指导建议完成相关改进。
- 项目管理委员会委员: 项目管理委员会委员,拥有代码库写权限、CANN 新版本发布、Roadmap发布、以及新的项目管理委员会委员提名权。项目管理委员会负责CANN 社区的管理工作,包括开源CANN 社区版本规划、竞争力规划、特性开发代码维护、资料开发、补丁规划等;组织项目管理委员会委员的选举和退出。
- 技术指导委员会委员: 技术指导委员会委员,负责CANN项目全的技术方向规划,决策重要技术事项,参与相关制度建设和修订,列席会议,参与议题评审等。
2. 晋升标准和流程
2.1 晋升标准简介
2.1.1 如何晋升Committer
优秀的贡献者可以按仓库维度申请成为Committer。申请时需满足以下条件:
- 至少参与CANN项目贡献3个月。
- 对所申请的代码仓库提交至少10个PR的审核意见。
- 对所申请的代码仓库提交至少10个实质性的代码PR。
- 对所申请的代码仓库非常熟悉。
- 申请人需由对应代码仓库的审批人或审阅人提名。
2.1.2 如何晋升Maintainer
优秀的Committer通过SIG组例会批准后,可成为Maintainer。申请方式分为两种:
- 新SIG的Maintainer: 任何开发者可以寻找3个及以上志同道合的开发者,确定Maintainer候选人,通过技术指导委员会申请新建SIG,经批准后成为新SIG的Maintainer。
- 已有SIG的Maintainer: 已是对应SIG领域的Committer,可以由1名Maintainer提名,SIG下全员Maintainer投票,获得1/2及以上投票即可。
2.1.3 如何晋升项目管理委员会委员
优秀的Maintainer可由现任项目管理委员会委员提议并投票通过后成为项目管理委员会委员。
2.1.4 如何晋升技术指导委员会委员
优秀的Maintainer/项目管理委员会委员可由现任技术指导委员会委员提议并投票通过后成为技术指导委员会委员。
2.2 晋升Maintainer / Committer投票流程
2.2.1 提名与邮件通知
现任Maintainer/Committer提名申请人,并以标题“[VOTE] New Maintainer/Committer xxx”发送邮件至SIG组邮箱。
2.2.2 SIG组内投票
所有Maintainer/Committer通过“+1”或“-1”的形式进行投票,投票时间一般为72小时。
2.2.3 投票通过条件
提名为Maintainer/Committer需要至少4票赞成且无反对票。反对票必须附有具体理由,否则视为无效。投票发起人可以对问题进行澄清或修复。
2.2.4 投票结果公告
投票通过后,Maintainer将在CANN社区公告新晋升的Maintainer/Committer,并同步更新对应SIG README.md及Maintainer配置(详见:org-info.yaml文件指导说明)/ Committer配置(详见:sig-info.yaml文件指导说明)。
2.3 晋升项目管理委员会委员投票流程
2.3.1 提名与会议陈述
由现任项目管理委员会委员提名候选人,并在项目管理委员会会议上进行陈述。
2.3.2 投票决策
项目管理委员会委员进行投票,候选人需获得至少1/2的参会项目管理委员会委员的赞成票。会议有效的前提是有投票权的到会项目管理委员会委员超过应到会成员的2/3。
2.3.3 投票结果公告
投票通过后,项目管理委员会主席在技术指导委员会审议通过后,将在CANN社区公告新晋升的项目管理委员会委员,并同步更新PMC README.md及PMC委员配置。
2.4 晋升技术指导委员会委员投票流程
2.4.1 提名与会议陈述
由现任技术指导委员会委员提名候选人,并在技术指导委员会会议上进行陈述。
2.4.2 投票决策
技术指导委员会委员进行投票,候选人需获得至少1/2的参会技术指导委员会委员的赞成票。会议有效的前提是有投票权的到会技术指导委员会委员超过应到会成员的2/3。
2.4.3 投票结果公告
投票通过后,将在CANN社区公告新晋升的技术指导委员会委员,并同步更新TSC README.md及TSC委员配置。
3. 非活跃成员退出标准和流程
3.1 非活跃成员定义
- 非活跃Committer:连续6个月以上未参与代码审核、PR提交或设计评审等活动。
- 非活跃Maintainer:连续3个月以上未参加SIG会议,或连续6个月以上未参与代码审核、PR提交、设计评审、社区活动推广等。
- 非活跃SIG:连续3个月以上未召开SIG会议,或连续6个月以上未在项目管理委员会交流SIG项目进展。
- 非活跃项目管理委员会委员:连续3个月以上未参与项目管理委员会会议,或连续6个月以上未参与代码审核、PR提交、设计评审、社区活动推广等。
- 非活跃技术指导委员会委员:连续3个月以上未参与技术指导委员会会议,或连续6个月以上未参与代码审核、PR提交、设计评审、社区活动推广等。
3.2 非活跃成员退出流程
非活跃成员退出方式:
方式一
- SIG组织Maintainer定期收集非活跃成员名单,例会审视识别不活跃Committer和Maintainer进行退出。
- PMC定期审视非活跃PMC委员名单,不活跃PMC成员进行退出处理。
- TSC定期审视不活跃SIG组织,非活跃SIG组织进行退出处理。
- TSC定期审视非活跃TSC委员名单,不活跃TSC成员进行退出处理。
方式二
-
非活跃成员自行申请退出,邮件标题为“Inactive [Committer/Maintainer/项目管理委员会委员/技术指导委员会委员] xxx”,发送至对应组织(SIG/PMC/TSC)邮箱。
-
对应领域组织对申请退出的非活跃成员进行处理。