如何成为核心开发者

Ver. 2.0 | English Ver.

目录


定义

是什么

作为一个开源项目,NEO欢迎并鼓励来自开发者的参与和贡献。从GitHub问题,文档到提供新功能和补丁,任何人都可以做出贡献。对NEO核心代码作出突出贡献的社区开发者,经过NEO Foundation进行工作质量评估后给予“Core developer”以激励。核心开发者有管理核心代码库的权限,相应的,有更多参与核心代码贡献的义务。

为什么

  1. 随着NEO社区的日益庞大,基础设施与核心底层代码的开发的需求提高。Core developer的授予有益于与当前对NEO社区作出突出贡献的开发者进行深度绑定,激励其更专注于NEO底层开发。同时,吸引更多优秀开发者进行NEO底层开发,扩充核心代码开发者团队。
  2. NEO代码库不断完善的同时,需要更多管理者,早期管理者仅有Erik。随着NEO去中心化进程的推进,在核心代码层面更多的赋能社区有益于NEO整体去中心化推进。

注意:成为核心开发者的 社区贡献者并不是NEO的员工;此激励机制也不是为了雇佣开发者,而是为了培养和激励对NEO底层开发的兴趣。

评估

如何贡献

若要成为核心开发者,可对以下的GitHub项目做出贡献。复制(Fork)项目;在你的分支上测试和更新之后,发送Pull Request。项目的维护者会对PR进行检查,然后合并(Merge)改动。NEO核心项目库的说明页面上对此过程有更细节的描述。

以下是核心项目的GitHub库:

对这些项目提交量或提交内容突出的社区贡献者有机会成为核心开发者。

评估方法

NEO Foundation使用 NeoCoreDevelopers 工具来统计贡献并且评估贡献者(工具源代码)。

对以上GitHub库的每一次提交(Commit)经过NEO Foundation 评估之后都会获得’Work’ 和 ‘Importance’ 值。’Work’衡量一个Commit 包含的工作量。所以内容越多的Commit,’Work’值越高。 ‘Importance’衡量一个 Commit 对于项目和NEO的价值。在NEO Foundation 输入这两个值之后,工具会计算每次Commit 和每个 贡献者的分数:

Commit 分数:

Commit 分数 = Work * Importance

贡献者分数:

贡献者分数 = 本人提交的 Commit 分数总和 + 10% * (参与编写的 Commit 分数总和 + 参与审阅的 Commit 分数总和

NeoCoreDevelopers 通过统计每个开发者的贡献者分数来计算其对NEO核心项目的贡献程度。

权限

如果你接受成为核心开发者的邀请,你会获得以下的权限:

Commit权限

你将会在你贡献的GitHub项目里获得合作者(Collaborator)角色。这意味着你会获得commit权限:你可以自己对项目库进行改动,也有合并其他Pull Request的权限。

####管理项目改动

作为核心开发者,你有权力选择是否合并一个Pull Request。如果某个合并造成问题,可以升级到项目管理者进行讨论,甚至可以回滚一个合并。

Issue管理

你可以管理GitHub项目的issues板块,分类,开启或关闭issue等。

责任

NEO的核心开发者有责任和其他开发者以及社区贡献者进行有效的协作。这包括:

  • 和开发者维持有效交流,快速回复问题和GitHub上的Issue
  • 告诉其他核心开发者你的专业和贡献范围,这样相关的问题可以被指向你
  • 对你通过的Pull Request和自己的改动负责–如果某个你通过的改动造成问题,应追踪并修复问题
  • 决定issue是否需要被升级到核心开发者的讨论和项目计划中。

取决于你作为核心开发者的贡献内容,以上责任可能不全部适用。

激励

核心开发者会以此身份被加入到NEO官网的贡献者页面; 并获得NEO Foundation每季度发放的的资金激励。长期贡献的核心开发者会每个季度定期获得激励。资金激励量和 NeoCoreDevelopers 工具计算的贡献者分数成正比:

奖励 = 贡献者分数 * Dollars Per Point

NEO Foundation 目前将Dollars Per Point 设为$200。

核心开发者名单

此名单一年会整理一次,官网的贡献者页面也会作相应更新。前一年成为核心开发者的贡献者可以通过同样的标准成为下一年的核心开发者。

以下为目前已发布的核心开发者名单。


参考

  1. neo-project: 如何贡献[英文]
  2. erikzhang/NeoCoreDevelopers