SciPy 项目治理#

本文档的目的是规范化SciPy项目在日常和特殊情况下的治理过程,并阐明决策的制定方式以及我们社区中各元素的互动方式,包括开源协作开发与可能由营利或非营利实体资助的工作之间的关系。

项目#

SciPy 项目(The Project)是一个开源软件项目。The Project 的目标是开发用于 Python 科学计算的开源软件,特别是 scipy 包。The Project 开发的软件在 BSD(或类似)开源许可证下发布,公开开发并托管在 scipy GitHub 组织下的公共 GitHub 仓库中。

该项目由一群分布式开发者开发,称为贡献者。贡献者是那些为项目贡献了代码、文档、设计或其他工作的人。任何人都可以成为贡献者。贡献者可以隶属于任何法律实体或没有隶属关系。贡献者通过提交、审查和讨论GitHub Pull Requests和Issues,以及参与GitHub、论坛和其他渠道上的公开项目讨论来参与项目。项目参与的基础是开放性和透明度。

项目社区由所有项目的贡献者和用户组成。贡献者代表并负责于更大的项目社区,我们努力保持贡献者和用户之间的障碍尽可能低。

该项目不是一个法律实体,目前也没有与任何法律实体建立正式关系。

治理#

本节描述了项目的治理和领导模式。

项目治理的基础是:

  • 开放与透明

  • 积极贡献

  • institutional neutrality

传统上,项目领导由一部分贡献者提供,这些贡献者被称为核心开发者,他们的积极和持续的贡献得到了认可,获得了项目GitHub仓库的“提交权限”。通常,所有项目决策都是通过核心开发者之间的共识来制定的,并结合社区的意见。

虽然这种方法一直为我们服务得很好,但随着项目的成长,我们看到了对更正式治理模式的需求。SciPy 核心开发者表达了对包含 BDFL(终身仁慈独裁者)的领导模式的偏好。因此,未来的项目领导将由 BDFL 和指导委员会组成。

BDFL#

该项目将有一位BDFL(终身仁慈独裁者),目前是Pauli Virtanen。作为独裁者,BDFL有权对项目做出所有最终决定。作为仁慈的独裁者,BDFL实际上选择将这一权力交给社区讨论渠道和指导委员会(见下文)的共识。预计,并且过去也是如此,BDFL很少会行使他们的最终权力。因为很少使用,我们称BDFL的最终权力为“特殊”或“超越”投票。当这种情况发生时,BDFL的超越通常发生在指导委员会陷入僵局或指导委员会要求BDFL对特定事项做出决定的情况下。为了确保BDFL的仁慈,如果项目成员不同意BDFL的总体方向,项目鼓励他们分叉项目。BDFL可以根据自己的判断将他们的权力委托给任何其他委员会成员,以做出特定决定或一系列决定。

BDFL 可以任命他们的继任者,但预计会在此决定上咨询指导委员会。如果 BDFL 无法任命继任者,指导委员会将做出这一决定——最好是达成共识,但如果需要,则通过多数投票。

请注意,BDFL 可以随时下台,并且本着诚意,也会听取严肃的呼吁这样做。另请注意,BDFL 的角色更多是用于后备决策,而不是导演/CEO的角色。

指导委员会#

项目将有一个指导委员会,由在质量和数量上都有显著贡献,并且至少持续了一年的项目贡献者组成。委员会的总体角色是通过与BDFL合作并听取社区的意见,确保项目在技术上和作为一个社区的长期健康发展。

理事会将有一位主席,其职责是确保理事会和项目的组织运作按计划进行。理事会还将任命一位项目发布经理,该经理对一个或多个版本的发布负最终责任。

在日常项目活动中,理事会成员参与所有讨论、代码审查和其他项目活动,与所有其他贡献者和社区成员平等。在这些日常活动中,理事会成员通过其在理事会的成员身份不享有任何特殊权力或特权。然而,由于理事会成员在贡献的质量和数量以及对项目软件和服务的专业知识方面的优势,预计他们将为经验可能较少的贡献者提供有用的指导,无论是技术方面还是项目方向方面。

指导委员会及其成员在某些情况下扮演着特殊的角色。特别是,委员会可以:

  • 对项目的整体范围、愿景和方向做出决策。

  • 就与其他组织或个人的战略协作做出决策。

  • 对具体的技术问题、功能、错误和拉取请求做出决策。它们是指导代码审查过程和合并拉取请求的主要机制。

  • 对由项目运行的服务做出决策,并为了项目和社区的利益管理这些服务。

  • 在常规社区讨论未能在合理时间内就某一问题达成共识时,做出决定。

  • 更新政策文件,例如本文件。

理事会成员#

要成为指导委员会成员的资格,个人必须是项目贡献者,其贡献在质量和数量上都是实质性的,并且至少持续了一年。潜在的委员会成员由现有委员会成员提名,并在询问潜在成员是否有兴趣并愿意担任该职务后,由现有委员会投票决定。委员会最初将由截至2017年1月在过去两年中一直非常活跃的核心开发者组成。

在考虑潜在成员时,理事会将全面审视候选人的贡献。这包括但不限于代码、代码审查、基础设施工作、论坛和聊天参与、社区帮助/建设、教育与推广、设计工作等。我们有意不设定任意的量化指标(如“在此仓库中提交100次”),以避免鼓励那些迎合指标而非项目整体健康的行为。我们希望在我们的团队中鼓励多样化的背景、观点和才能,这就是为什么我们明确表示代码不是评估理事会成员资格的唯一标准。

如果一名理事会成员在项目中连续一年不活跃,他们将被考虑从理事会中移除。在移除之前,不活跃的成员将被联系,以了解他们是否计划恢复积极参与。如果没有,他们将在理事会投票后立即被移除。如果他们计划在不久后恢复积极参与,他们将被给予一年的宽限期。如果在该宽限期内他们没有恢复积极参与,他们将通过理事会投票被移除,不再有进一步的宽限期。所有前理事会成员都可以在未来任何时候再次被考虑加入理事会,就像其他项目贡献者一样。退休的理事会成员将被列在项目网站上,以表彰他们在理事会中活跃的时期。

理事会有权驱逐除BDFL以外的现任成员,如果他们被认为对项目的健康发展有积极危害,并且沟通和冲突解决的尝试已经失败。

当前指导委员会成员的名单保存在 关于我们 页面。

理事会主席#

主席将由指导委员会任命。主席可以一直担任,但可以随时辞职,并将听取严肃的辞职请求(类似于BDFL角色)。主席将负责:

  • 每年大约在四月中旬和十月中旬,开始对项目的技术方向(如 SciPy 路线图 所记录的)进行两次审查。

  • 在每年的同一时间,总结上一时期相关的组织更新和问题,并在论坛上征求反馈/建议。

  • 确保指导委员会的组成保持最新。

  • 确保指导委员会在私下讨论的事项在论坛上得到总结,以保持社区的知情。

  • 确保在添加后,其他重要的组织文件(例如,行为准则、财务赞助协议)保持最新。

发布经理#

发布经理对发布负有最终责任。这包括:

  • 提议和决定发布的时间。

  • 在没有就特定更改或功能达成共识的情况下,确定发布内容。

  • 创建发布版本并在相关公共渠道宣布。

有关这些职责在实践中具体是什么样子的更多细节,请参阅 发布流程

利益冲突#

预计BDFL和理事会成员将在各种公司、大学和非营利组织中任职。因此,成员可能会有利益冲突。这些利益冲突包括但不限于:

  • 与项目外的投资、就业或合同工作等财务利益,这些利益可能会影响他们在项目上的工作。

  • 访问可能潜在泄露到与项目合作中的雇主专有信息。

所有理事会成员,包括BDFL在内,应向理事会其他成员披露他们可能存在的任何利益冲突。在特定问题上存在利益冲突的成员可以参与该问题的理事会讨论,但必须在该问题上回避投票。如果BDFL在特定决策中回避,理事会将任命一名替代BDFL参与该决策。

理事会的私人通信#

除非特别要求,所有理事会的讨论和活动都将公开进行,并与项目贡献者和社区合作和讨论。理事会将有一个私密的邮件列表,该列表将谨慎使用,并且仅在特定事项需要隐私时使用。当需要进行私密通信和决策时,理事会将在删除不应发布到公共互联网的个人/私密/敏感信息后,尽力向社区总结这些内容。

理事会决策#

如果指导委员会需要做出正式决定,他们将使用 Apache 基金会投票流程 的一种形式。这是共识的正式化版本,其中 +1 票表示同意,-1 票是反对票(并且必须附有理由,如上所述),如果一个人希望表达意见而不完全反对,也可以投部分票(例如 -0.5, +0.5)。这些数字投票也常被非正式地用作了解人们对某些问题的普遍感受的方式,通常不应被视为正式投票。只有在明确宣布的情况下才会进行正式投票,如果确实发生,投票应保持开放足够长的时间,以便所有感兴趣的委员会成员有机会回应——至少一周。

在实践中,我们预计对于大多数指导委员会的决定(例如,投票选举新成员),一个更非正式的流程将足够。

机构合作伙伴和资金#

指导委员会是项目的主要领导。没有任何外部机构、个人或法律实体能够拥有、控制、篡夺或影响项目,除非通过作为贡献者和委员会成员参与项目。然而,由于机构可以成为项目的重要资金来源,因此正式承认机构在项目中的参与是很重要的。这些是机构合作伙伴。

机构贡献者是指任何作为机构合作伙伴的正式职责的一部分,为项目做出贡献的个人项目贡献者。同样,机构理事会成员是指任何作为机构合作伙伴的正式职责的一部分,为项目做出贡献的项目指导委员会成员。

根据这些定义,机构合作伙伴是指在任何国家中任何被认可的法律实体,该实体至少雇佣了1名机构贡献者或机构理事会成员。机构合作伙伴可以是营利性或非营利性实体。

机构通过雇用积极作为其正式职责的一部分为项目做出贡献的个人,才有资格成为机构合作伙伴。换句话说,合作伙伴影响项目的唯一方式是通过积极参与项目的开放开发,与贡献者和理事会成员社区中的任何其他成员平等。仅在机构背景下使用项目软件并不能使实体成为机构合作伙伴。财务捐赠并不能使实体成为机构合作伙伴。一旦机构有资格成为机构合作伙伴,指导委员会必须提名并批准该合作伙伴关系。

如果在某个时间点,现有的机构合作伙伴停止有任何贡献的员工,那么将开始一年的宽限期。如果在这一年结束时,他们仍然没有贡献的员工,那么他们的机构合作伙伴关系将失效,恢复它将需要通过新的合作伙伴关系的正常流程。

机构合作伙伴可以自由通过任何合法手段为其在项目中的工作寻求资金。这可能涉及非营利组织从私人基金会和捐赠者筹集资金,或营利性公司开发利用项目软件和服务的专有产品和服务。机构合作伙伴为项目工作筹集的资金称为机构资金。然而,任何机构合作伙伴获得的资金都不能凌驾于指导委员会之上。如果合作伙伴有资金进行SciPy工作,而委员会决定不将该工作作为项目进行,合作伙伴可以自行进行该工作。然而,在这种情况下,该部分工作将不在SciPy的保护伞下,并且不能以任何暗示正式关系的方式使用项目商标。

机构合作伙伴的福利包括:

  • 在SciPy网站和演讲中的致谢

  • 能够在SciPy网站和演讲中承认他们自己的资金来源

  • 通过其理事会成员参与项目的影响力

  • 邀请理事会成员参加SciPy开发者会议

当前机构合作伙伴的列表维护在 关于我们 页面。

文档历史#

scipy/scipy

致谢#

本文档的实质部分改编自 Jupyter/IPython 项目的治理文档NumPy 的治理文档

许可证#

在法律允许的范围内,作者已放弃SciPy项目治理文档的所有版权及相关或邻接权利,根据 CC-0公共领域贡献/许可证