NXEP 1-治理和决策#

作者

贾罗德·米尔曼<millman@berkeley.edu>

作者

丹·舒尔特<dschult@colgate.edu>

状态

草稿

类型

过程

创建

2020-06-25

摘要#

NetworkX是一个基于共识的社区项目。任何对项目感兴趣的人都可以加入社区,为项目设计做出贡献,并参与决策过程。本文描述了如何参与,如何达成共识,以及如何解决僵局。

角色和责任#

社区#

NetworkX社区由以任何方式使用或处理项目的任何人组成。

贡献者#

任何社区成员都可以通过直接与项目进行具体的交互来成为贡献者,例如:

在其他可能性中。通过对项目的贡献,社区成员可以直接帮助塑造项目的未来。

投稿人应阅读 参与者指南 以及我们的 行为守则 .

核心开发者#

核心开发人员是社区成员,他们通过不断的贡献展示了对项目的持续承诺。他们已经证明,可以信任他们小心地维护NetworkX。成为一个核心开发人员允许贡献者合并批准的请求,投票赞成或反对合并请求,并参与决定对API的重大更改,从而更容易地进行与项目相关的活动。核心开发人员以团队成员的身份出现在 NetworkX Core Team page 可以发短信 @networkx/core-developers . 核心开发人员在遵守 核心开发者指南 .

新的核心开发者可以由任何现有的核心开发者提名。关于新的核心开发者提名的讨论是项目私人管理列表上为数不多的活动之一。邀请新的核心开发者的决定必须通过“懒散共识”做出,这意味着所有响应的现有核心开发者一致同意。邀请必须在首次提名后至少一周举行,以便现有成员有时间发表任何反对意见。

指导委员会#

指导委员会(SC)成员是核心开发人员,他们负有确保项目顺利运行的额外责任。SC成员应参与战略规划,批准对治理模型的更改,并就授予项目本身的资金做出决定。(向社区成员提供资金是他们追求和管理的)SC的目的是从全局角度确保进展顺利。影响整个项目的变化需要根据项目和更大生态系统的长期经验进行分析。当核心开发者社区(包括SC成员)未能在合理的时间内达成共识时,SC就是解决问题的实体。

指导委员会成员作为团队成员出现在 NetworkX Steering Council Team page 可以发短信 @networkx/steering-council . 核心

决策过程#

关于项目未来的决定是通过与社区所有成员的讨论做出的。所有非敏感项目管理讨论均在项目上进行 mailing list 以及 issue tracker . 有时,敏感的讨论可能会出现在私人列表上。

我们应该根据我们的 使命与价值观 .

NetworkX使用 寻求共识 决策过程。该小组试图找到一个在核心开发者中没有公开反对意见的解决方案。核心开发人员应该区分对提案的基本反对意见和他们可以接受的微小缺陷,而不是拖延后者的决策过程。如果在没有异议的情况下无法找到任何选择,则将决定上报给SC,SC本身将利用协商一致寻求解决方案。在不太可能发生的情况下,如果提案得到SC简单多数的支持,它将向前推进。任何提案都必须由一个网络X来描述 增强建议(nxep) .

决策(除了如上所述添加核心开发人员和SC成员)根据以下规则进行:

  • 微小的文档更改 ,例如拼写错误修复,或添加/更正句子(但不更改NetworkX登录页或“about”页),需要核心开发人员的批准 and 核心开发人员在问题或请求页面上没有异议或请求更改(惰性共识)。如果核心开发人员不相信其他人会同意,那么他们应该给其他人“合理的时间”来发表他们对拉取请求的意见。

  • 代码更改和主要文档更改 要求同意 two 核心开发者 and 核心开发人员在问题或请求页面上没有异议或请求更改(惰性共识)。

  • API原则的变更 需要 增强建议(nxep) 并遵循上述决策过程。

  • 对这个治理模式或我们的使命和价值观的改变 需要 增强建议(nxep) 遵循上述决策流程, 除非 核心开发商一致同意这一变化。

如果对懒惰共识提出异议,提案人可以向社区和核心开发人员提出申诉,并通过上报SC批准或拒绝变更,如有必要,提交NXEP(见下文)。

增强建议(nxep)#

任何关于NetworkX增强的建议都应该按照模板作为一个正式的NXEP来编写 NXEP X-模板和说明 . NXEP必须在投票前公布和讨论。讨论必须由提案的主要倡导者在NXEP的适当部分进行总结。一旦让他们了解了这一点,他们就有足够的时间来进行投票。NXEP的工作流在中有详细说明 NXEP 0-目的和过程 .

所有现有nxep的列表可用 here .

致谢#

本文件基于 scikit-image governance document .