开发者社区治理执行细则(初稿)

开发者社区治理执行细则(初稿)

我们的目标是让PlatON/Alaya成为社区化驱动、开放性开发、可持续发展的开源项目。

PlatON/Alaya开源项目将基于共识的精英制治理模式进行管理,所有代码开源在GitHub社区,任何对项目感兴趣的人都可以加入社区,为项目发展做出贡献并参与决策过程。本文档将描述了PlatON/Alaya项目中参与者的角色职责,参与方式,议事过程等内容。

基本原则

开放包容、公开透明、尊重认可

如何为PlatON/Alaya开源做贡献

作为开源项目,构成开源项目的代码、文档和产品都由项目社区成员创建、测试、使用、讨论和改进。这些流程可以分解为无数的任务,需要不同的技能、参与程度和技术专长。因此,任何人都能为开源项目作出贡献。

点击下方链接详细了解如何为开源项目贡献,以及为什么要参与贡献:

所有这些贡献都有助于保持项目活跃并加强社区。因此,我们鼓励更广泛的社区开发者和项目团队参与。

组织架构

角色职责

贡献者Contributor

所有参与项目GitHub活跃的用户都属于贡献者,贡献者有机会被现有维护者(见下方说明)提名为新的维护者。

由于目前项目开发者社区还处于初始启动阶段,当前期望的贡献者类型主要是有意愿参与项目开发、技术支持和翻译贡献的开发者。

贡献者类型 主要职责
核心开发者
Core Developer
主要负责PlatON/Alaya项目底层、工具和应用开发和支持工作
1,社区支持:解答新用户问题,分析和回复关键Issue(以及LatticeX论坛,Discord)
2,测试和报告bug:对现有版本和PR进行代码Review、测试,并提交问题至Issue
3,修复bug:分析和修复Issue报告的错误
4,提交提案建议
5,参与新特性开发设计:对现有协议模块和逻辑进行优化和改进
6,编写及更新项目文档:
常见问题-为项目编写和汇总常见问题
项目指南教程-为项目编写和优化Readme,贡献指南,常见问题,解决方案(文档、视频)等
用户指南-为项目编写和维护一个全面的用户指南
开发者指南-为项目编写或者改进和更新开发者指南
7,传播和推广项目,吸收更多社区贡献者
8,核心技术课题研究
翻译员
Translator
负责所有技术文档,及项目产品的翻译工作
1, 翻译GitHub Issue,PIP,PR,ReleaseNote内容
2,翻译项目相关文档

如果您希望参与上述贡献,请首先在我们的Discord频道上与核心开发人员建立联系,以确保您的贡献符合项目总体理念并获得早期反馈和建议,这可以使您的工作更加轻松。

维护者Maintainer

维护者是指拥有GitHub开源仓库管理权限的社区成员,包含项目的PM和提交者,主要负责GitHub维护和管理工作,促进GitHub活跃,确保项目走在正确的方向上。

维护者类型 主要职责
提交者
Committer
主要负责PR管理和促进Issue问题解决:
issue:问题回复,讨论解决方案
PR:PR分类,标记,代码审查,促进PR改进,合并代码(日志需关联对应Issue,PIP及标识贡献者),发布release,关闭PR。
PM 主要负责项目的任务管理和核心开发者协调
1,分配和跟进核心开发者任务
2,负责维护仓库代码的branchs,跟进issues、PR、PIP的状态,更新project进度,跟进PR评审进度等:
Issue:Issue分类,标记,促进Issue解决,关闭Issue
PIP:PIP内容和格式审查,促进PIP讨论,促进PIP实施
3,维护各项目贡献者名单(GitHub ID 和联系邮箱)

新的维护者由现有维护者邀请,并经过PMC项目管理委会投票批准加入。每个项目可分配多个有多个维护者。

项目管理委员会PMC

项目管理委员会(PMC)初始由所有维护者组成,并由现有PMC成员邀请,提名后需经过现有PMC成员的讨论,然后进行投票,经PMC成员的批准后方可成为PMC成员。(包含Alaya PMC,PlatON PMC)

PMC成员主要拥有对新维护者和PMC成员的投票权。以及当社区无法达成共识时,拥有最终投票决定权。【社区采用懒惰共识,即日常决策在社区发布超过72小时后,社区贡献者和维护者在没有明确反对时,即默认同意】

PMC的主要职责包括:

  • 审查GitHub提交日志确保项目正朝着预期的方向发展。
  • 对社区无法形成共识的行动进行最终决策
  • 决定项目的产品发布
  • 提名新的PMC成员和维护者。
  • 组织核心开发者会议
  • 维护项目的共享资源,包括代码库、邮件列表、网站。

项目管理委员会设立一名主席Chairman,由PMC成为投票选举产生,任期3个月且可连任。PMC主席主要担任组织者,协调者和促进者的角色,确保PMC的所有的管理程序得到遵守。

主要职责包括

  • 收集和整理社区贡献,向LatticeX基金会申请资助
  • 每季度向LatticeX基金会提交开源社区运营报告(包含开源社区的状况,以及技术进展)
  • 组织社区开发者会议,其中包含收集讨论议题
  • 发起新的PMC成员和维护者投票,并统计投票结果计公布(满足2/3同意即可加入)
  • 发起某行为决策投票,并统计投票结果计公布(满足2/3同意则可通过)

参与方式

贡献方式

  • 主动贡献

作为开源社区,任何人都能够通过从开源项目贡献中获得收获,无论贡献大小。

  • 任务指派

由提交人直接指派任务给潜在的贡献者以及维护者者认领,贡献者或维护者可以是全职或兼职,根据投入时间和能力情况分配不同的任务。

考核和资助

由PMC主席收集和整理贡献者、维护者的工作业绩,并反馈给LatticeX基金会申请激励。

LatticeX基金会采用资助模式,好的贡献输出多资助,差的贡献输出少资助或停止资助。

沟通方式

沟通的主要渠道是项目GitHub(PlatON GitHub:https://github.com/PlatONnetwork Alaya GitHub:https://github.com/AlayaNetwork),或者LatticeX论坛帖子中进行。

在必要的情况下,通过电话或网络会议、Discord公开频道、公开邮件列表等方式进行沟通也是欢迎的。

议事流程

任何成员都可以对项目提出想法和改进建议供社区探讨(提交Issue或者PR),社区内所有的改进建议由社区核心开发者收集整理和分析,并提交社区(GitHub,论坛、开发者会议)进行充分讨论形成正式提案,任何社区成员都可以通过提案库的改进提案进行批准或者不批准,不批准必须附上理由。

一般来说,只要没有人明确反对该提案,它就被认为得到了社区的支持,这个过程正常需要72小时(3天)。这就是所谓的懒惰共识–也就是说,那些没有明确表示意见的人已经隐含地同意了该提案的实施。

在有明确反对建议的下,我们将通过开发者会议,或公开邮件列表进行进一步讨论和投票,PMC成员拥有有约束力的投票权,2/3成员同意则提案将通过。所有过程记录都公开透明对外发布。

核心开发者会议

由核心开发者发起,平均1~2周召集一次核心开发者会议,与会者要包括:

  • 核心开发者
  • 维护者(包含PM,提交者)
  • 有兴趣参与的其他贡献者(包括当前活跃在issue/PR/PIP的贡献者,翻译员等)

会议讨论的议题包括但不限于:

  1. 梳理当前活跃issues的分析和处理进度
  2. 讨论GitHub或论坛上开发者提交的优化建议
  3. 对PR或PIP的评审
  4. 核心开发者或贡献者对特定调研结果的分享

会议议题将提前公布在meeting-issues,会议建议采用网络会议的形式进行,每次会议由会议发起人指定主持和纪要人员,纪要和会议视频同步归档在meeting仓库,视频上传YouTube,B站。

社区开发者会议

PMC根据迭代计划择期选择1-3个月召开一次社区开发者会议,会议的常规议题包括:

会议的常规议题包括:

  1. 向社区开发者实时同步基金会和PMC的工作进展

  2. 收集社区开发者的意见

  3. 对关键版本和特性的投票表决

  4. 就网络迭代和特性升级等关键问题答疑

任何关注PlatON/Alaya的人都可以参加,会议形式同核心开发者会议。