SciPy 项目治理#

本文档旨在正式确定 SciPy 项目在一般和特殊情况下的治理流程,并阐明决策如何制定以及我们社区的各个要素如何互动,包括开源协作开发与营利性或非营利性实体资助的工作之间的关系。

项目#

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

本项目由一组分布式开发者(称为贡献者)开发。贡献者是指为项目贡献了代码、文档、设计或其他工作的人员。任何人都可以成为贡献者。贡献者可以隶属于任何法律实体,也可以不隶属于任何法律实体。贡献者通过提交、审查和讨论 GitHub 拉取请求(Pull Requests)和议题(Issues),以及参与 GitHub、论坛和其他渠道上的开放和公开项目讨论来参与项目。项目参与的基础是开放和透明。

项目社区由项目的所有贡献者和用户组成。贡献者代表更广泛的项目社区工作,并对社区负责,我们努力将贡献者和用户之间的障碍降到最低。

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

治理#

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

项目治理的基础是:

  • 开放和透明

  • 积极贡献

  • 机构中立

传统上,项目领导权由一部分贡献者(称为核心开发者)提供,他们的积极和持续贡献因获得项目 GitHub 仓库的“提交权限”而得到认可。一般来说,所有项目决策都通过核心开发者之间的共识以及社区的意见来制定。

虽然这种方法一直很有效,但随着项目的发展,我们看到了对更正式治理模型的需要。SciPy 核心开发者表示倾向于包含 BDFL(终身仁慈独裁者)的领导模型。因此,未来项目的领导层将由 BDFL 和指导委员会组成。

BDFL#

本项目将设一名 BDFL(终身仁慈独裁者),目前是 Pauli Virtanen。作为独裁者,BDFL 有权为本项目做出所有最终决定。作为仁慈的独裁者,BDFL 在实践中选择将该权力委托给社区讨论渠道和指导委员会(见下文)的共识。预期且过去的情况是,BDFL 很少行使他们的最终权力。由于很少使用,我们将 BDFL 的最终权力称为“特殊”或“否决”投票。当它确实发生时,BDFL 的否决通常发生在指导委员会出现僵局或指导委员会要求 BDFL 对特定事项做出决定时。为确保 BDFL 的仁慈,如果其他人不同意 BDFL 所采取的总体方向,本项目鼓励他们分叉(fork)项目。BDFL 可酌情将其对特定决策或一系列决策的权力委托给任何其他委员会成员。

BDFL 可以指定其继任者,但预计在这一决定上会征求指导委员会的意见。如果 BDFL 无法指定继任者,指导委员会将做出此决定——最好通过共识,但如果需要,可采取多数投票。

请注意,BDFL 可以随时辞职,并且会本着诚信原则听取认真的辞职呼吁。另请注意,BDFL 更多是作为备用决策的角色,而非董事/首席执行官的角色。

指导委员会#

本项目将设立一个指导委员会,由质量和数量均显著且持续至少一年贡献的项目贡献者组成。委员会的总体职责是,通过与 BDFL 合作并听取社区意见,确保项目的长期健康发展,包括技术方面和社区方面。

委员会将设一名主席,负责使委员会和项目的组织方面保持正轨。委员会还将为项目任命一名发布经理,他将对一个或多个发布负有最终责任。

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

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

  • 就项目的总体范围、愿景和方向做出决定。

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

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

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

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

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

委员会成员资格#

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

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

如果一名委员会成员在项目中断了一年,他们将被考虑从委员会中移除。在移除之前,将与不活跃的成员联系,以了解他们是否计划恢复积极参与。如果否,他们将在委员会投票后立即被移除。如果他们计划很快恢复积极参与,他们将获得一年的宽限期。如果他们在此期限内未恢复积极参与,他们将被委员会投票移除,不再给予进一步的宽限期。所有前委员会成员将来可以随时再次被考虑成为成员,就像任何其他项目贡献者一样。退休的委员会成员将列在项目网站上,并注明其在委员会中活跃的时期。

委员会保留在沟通和冲突解决尝试失败后,如果现有成员(BDFL 除外)被认定对项目健康造成积极损害,则将其驱逐的权利。

当前指导委员会成员名单可在 关于我们 页面查阅。

委员会主席#

主席将由指导委员会任命。主席可以根据意愿任职,但可以随时辞职,并会听取认真的辞职呼吁(类似于 BDFL 的角色)。主席将负责:

  • 每年两次,约在四月中旬和十月中旬,启动对项目技术方向(由SciPy 路线图所记录)的审查。

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

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

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

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

发布经理#

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

  • 提出并决定发布的时机。

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

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

有关这些职责在实践中如何体现的更多详细信息,请参阅制作 SciPy 发布版本

利益冲突#

预计 BDFL 和委员会成员将受雇于各种公司、大学和非营利组织。因此,成员可能存在利益冲突。此类利益冲突包括但不限于:

  • 项目外部可能影响其项目工作的经济利益,例如投资、雇佣或合同工作。

  • 获取其雇主的专有信息,该信息可能渗透到其项目中。

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

委员会的私下沟通#

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

委员会决策制定#

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

在实践中,我们预计对于大多数指导委员会的决策(例如,投票吸纳新成员),更非正式的流程就足够了。

机构合作伙伴与资金#

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

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

根据这些定义,机构合作伙伴是指在任何国家/地区雇佣至少一名机构贡献者或机构委员会成员的任何受认可的法律实体。机构合作伙伴可以是营利性或非营利性实体。

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

如果在某个时候,现有机构合作伙伴不再有任何贡献员工,则一年宽限期开始。如果在此一年期结束时,他们仍然没有任何贡献员工,则其机构合作伙伴关系将失效,恢复该关系将需要按照新的合作伙伴关系的正常流程进行。

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

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

  • 在 SciPy 网站和讲座中获得认可

  • 能够在 SciPy 网站和讲座中感谢自己的资金来源

  • 通过其委员会成员的参与影响项目

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

当前机构合作伙伴名单可在 关于我们 页面查阅。

文档历史#

scipy/scipy

致谢#

本文档的很大一部分改编自Jupyter/IPython 项目的治理文档NumPy 的治理文档

许可#

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