SciPy 项目治理#
本文档的目的是正式化 SciPy 项目在正常和非常情况下使用的治理流程,并阐明如何做出决策以及我们社区的各个组成部分之间的互动方式,包括开源协作开发与可能由盈利或非盈利实体资助的工作之间的关系。
项目#
SciPy 项目(项目)是一个开源软件项目。项目的目的是开发用于 Python 科学计算的开源软件,特别是 scipy
软件包。项目开发的软件在 BSD(或类似)开源许可下发布,在 scipy
GitHub 组织下公开开发并托管在公共 GitHub 存储库中。
项目由一组分布式开发者团队开发,称为贡献者。贡献者是指为项目贡献代码、文档、设计或其他工作的人员。任何人都可以成为贡献者。贡献者可以隶属于任何法律实体或不隶属于任何法律实体。贡献者通过提交、审查和讨论 GitHub 拉取请求和问题以及参与 GitHub、论坛和其他渠道上的公开项目讨论来参与项目。项目参与的基础是开放性和透明度。
项目社区由所有贡献者和项目的使用者组成。贡献者代表项目社区工作并对社区负责,我们努力尽可能降低贡献者和使用者之间的壁垒。
项目不是一个法律实体,目前也没有与任何法律实体建立正式关系。
治理#
本节介绍项目的治理和领导模式。
项目治理的基础是
开放性和透明度
积极贡献
机构中立性
传统上,项目领导由一组贡献者提供,称为核心开发者,他们的积极和持续贡献因获得项目 GitHub 存储库的“提交权限”而得到认可。通常,所有项目决策都是通过核心开发者之间达成共识并征求社区意见做出的。
虽然这种方法对我们来说很有用,但随着项目的发展,我们发现需要一个更正式的治理模式。SciPy 核心开发者表示他们更倾向于一个包括 BDFL(终身仁慈独裁者)的领导模式。因此,项目领导将由 BDFL 和指导委员会组成。
BDFL#
项目将有一个 BDFL(终身仁慈独裁者),目前是 Pauli Virtanen。作为独裁者,BDFL 有权对项目做出所有最终决定。作为仁慈者,BDFL 在实践中选择将权力委托给社区讨论渠道和指导委员会的共识(见下文)。人们预期,并且过去也一直如此,BDFL 很少会行使最终权力。因为很少使用,我们将 BDFL 的最终权力称为“特殊”或“优先”投票。当它发生时,BDFL 优先通常发生在指导委员会出现僵局的情况下,或者当指导委员会要求 BDFL 对特定事项做出决定时。为了确保 BDFL 的仁慈,项目鼓励其他人如果不同意 BDFL 正在采取的总体方向,则对项目进行分支。BDFL 可以自行决定将他们对特定决策或一组决策的权力委托给任何其他委员会成员。
BDFL 可以任命他们的继任者,但预计指导委员会会就此决定进行协商。如果 BDFL 无法任命继任者,指导委员会将做出此决定 - 最好是通过共识,但如果需要,可以进行多数票决。
请注意,BDFL 可以随时辞职,并且会本着诚信行事,也会听取严肃的辞职呼吁。还要注意,BDFL 更多的是一个备用决策角色,而不是董事/首席执行官的角色。
指导委员会#
项目将有一个指导委员会,该委员会由项目贡献者组成,他们所做出的贡献在质量和数量上都是实质性的,并且持续了至少一年。委员会的总体职责是通过与 BDFL 合作并征求社区的意见,确保项目的长期福祉,包括技术和社区方面。
委员会将有一个主席,负责确保委员会和项目运作的组织方面按计划进行。委员会还将任命项目的发布经理,该经理对一个或多个版本的最终发布负责。
在日常项目活动中,委员会成员作为所有其他贡献者和社区的同等成员参与所有讨论、代码审查和其他项目活动。在这些日常活动中,委员会成员不会因其在委员会中的成员身份而拥有任何特殊权力或特权。然而,人们预期,由于他们贡献的质量和数量,以及他们对项目软件和服务的专业知识,委员会成员将为经验可能不足的贡献者提供有用的指导,包括技术指导和项目方向指导。
指导委员会及其成员在某些情况下发挥着特殊作用。特别是,委员会可以
决定项目的总体范围、愿景和方向。
决定与其他组织或个人进行战略合作。
决定具体的技术问题、功能、错误和拉取请求。它们是指导代码审查流程和合并拉取请求的主要机制。
决定项目运行的服务并管理这些服务,以造福项目和社区。
在常规社区讨论在合理时间范围内无法就某个问题达成共识时做出决定。
更新政策文件,例如本文件。
委员会成员资格#
要成为指导委员会成员的候选人,个人必须是项目贡献者,并且所做出的贡献在质量和数量上都是实质性的,并且持续了至少一年。潜在的委员会成员由现任委员会成员提名,并在征求潜在成员的兴趣和意愿后,由现任委员会投票决定。委员会将最初由现有的核心开发者组成,他们从 2017 年 1 月起在过去两年中一直非常活跃。
在考虑潜在成员时,委员会将全面审视他们的贡献。这将包括但不限于代码、代码审查、基础设施工作、论坛和聊天参与、社区帮助/建设、教育和宣传、设计工作等。我们故意不设定任意数量指标(如“此存储库中的 100 次提交”)以避免鼓励为指标而非项目的整体福祉而表现出色的行为。我们希望在我们团队中鼓励各种背景、观点和才能,这就是为什么我们明确不将代码定义为评价委员会成员资格的唯一指标的原因。
如果委员会成员在项目中变得不活跃,持续时间为一年,则将考虑将其从委员会中删除。在删除之前,将与不活跃的成员联系,以了解他们是否计划恢复积极参与。如果没有,他们将立即通过委员会投票被删除。如果他们计划很快恢复积极参与,将给予他们一年的宽限期。如果他们在宽限期内没有恢复积极参与,他们将被委员会投票删除,不再有宽限期。所有前任委员会成员可以随时重新申请成员资格,就像任何其他项目贡献者一样。退休的委员会成员将在项目网站上列出,以确认他们在委员会中活跃的时期。
委员会保留权利,如果认为现有成员(除了 BDFL)对项目的福祉造成积极的伤害,并且沟通和冲突解决的尝试失败,则将他们剔除。
当前指导委员会成员的名单在以下页面维护:关于我们。
委员会主席#
主席将由指导委员会任命。主席可以担任他们想要的时间,但可以随时辞职,并且会听取严肃的辞职呼吁(类似于 BDFL 角色)。主席将负责
每两年(大约在 4 月中旬和 10 月中旬)启动对项目技术方向的回顾(如 SciPy 路线图 中所述)。
在每年的相同时间,总结前一段时间的任何相关组织更新和问题,并征求论坛上的反馈/建议。
确保指导委员会的组成保持最新。
确保指导委员会在私下讨论的事项在论坛上得到总结,以使社区了解情况。
确保其他重要的组织文件(例如,行为准则、财务赞助协议)在添加后保持最新。
发布经理#
发布经理对发布的最终发布负责。这包括
提议并决定发布的时间。
在对特定更改或功能没有共识的情况下,确定发布的内容。
创建发布并将其在相关的公共渠道上公布。
有关这些职责在实践中的具体表现的更多详细信息,请参阅 发布 SciPy 版本。
利益冲突#
人们预期 BDFL 和委员会成员将在各种公司、大学和非营利组织任职。因此,成员可能会存在利益冲突。此类利益冲突包括但不限于
财务利益,例如投资、雇佣或承包工作,在项目之外可能影响他们在项目上的工作。
访问其雇主可能泄露到他们与项目合作的工作中的专有信息。
包括 BDFL 在内的所有委员会成员应向其他委员会成员披露他们可能存在的任何利益冲突。在特定问题上存在利益冲突的成员可以参与委员会关于该问题的讨论,但必须回避对该问题的投票。如果 BDFL 已经回避了某个特定决定,委员会将为该决定任命一名替代 BDFL。
委员会的私人通信#
除非特别需要,所有理事会讨论和活动将公开进行,并与项目贡献者和社区协作讨论。理事会将拥有一个私人邮件列表,该列表将谨慎使用,仅在特定事项需要保密时使用。当需要私人通信和决策时,理事会将尽力在删除不应发布到公共互联网的个人/私人/敏感信息后,将这些信息总结给社区。
理事会决策#
如果指导理事会需要做出正式决定,他们将使用Apache 基金会投票流程的一种形式。这是一种形式化的共识版本,其中+1 票表示同意,-1 票表示否决(并且必须附带理由,如上所述),也可以投票分数(例如 -0.5,+0.5),如果希望表达意见而无需注册完全否决。这些数字投票也经常被非正式地用作了解人们对某个问题的普遍感受的一种方式,通常不应视为正式投票。正式投票只有在明确声明时才进行,如果确实发生,则投票应保持开放足够长的时间,让所有感兴趣的理事会成员有机会做出回应 - 至少一周。
在实践中,我们预计对于大多数指导理事会决策(例如,投票选出新成员),更非正式的流程就足够了。
机构合作伙伴和资金#
指导理事会是项目的核心领导。任何外部机构、个人或法律实体都无法拥有、控制、篡夺或影响项目,除非作为贡献者和理事会成员参与项目。但是,由于机构可以成为项目的重要的资金机制,因此正式承认机构参与项目非常重要。这些是机构合作伙伴。
机构贡献者是指任何作为机构合作伙伴官方职责的一部分,为项目做出贡献的个人项目贡献者。同样,机构理事会成员是指任何作为机构合作伙伴官方职责的一部分,为项目做出贡献的项目指导理事会成员。
根据这些定义,机构合作伙伴是指任何国家/地区的任何认可的法律实体,雇用至少 1 名机构贡献者或机构理事会成员。机构合作伙伴可以是营利性或非营利性实体。
机构通过雇用积极为项目做出贡献的个人作为其官方职责的一部分,有资格成为机构合作伙伴。换句话说,合作伙伴影响项目的唯一途径是积极参与项目的开放开发,与社区中任何其他贡献者和理事会成员的条件相同。仅仅在机构环境中使用项目软件并不允许实体成为机构合作伙伴。经济资助不会使实体成为机构合作伙伴。一旦机构有资格成为机构合作伙伴,指导理事会必须提名并批准合作伙伴关系。
如果在某个时间点,现有的机构合作伙伴不再有任何贡献员工,则会开始为期一年的宽限期。如果在此一年的期限结束时,他们仍然没有任何贡献员工,则他们的机构合作伙伴关系将失效,恢复它将需要经过新合作伙伴关系的正常流程。
机构合作伙伴可以通过任何合法方式为他们在项目上的工作寻求资金。这可能涉及非营利组织从私人基金会和捐助者那里筹集资金,或者营利性公司构建利用项目软件和服务的专有产品和服务。机构合作伙伴获得用于项目工作的资金称为机构资金。但是,任何机构合作伙伴获得的资金都不能凌驾于指导理事会。如果合作伙伴有资金做 SciPy 工作,而理事会决定不将其作为项目进行,则合作伙伴可以自行进行。但是,在这种情况下,合作伙伴工作的这部分将不会在 SciPy 伞下,并且不能以任何暗示正式关系的方式使用项目商标。
机构合作伙伴的权益是
在 SciPy 网站和演讲中获得认可
能够在 SciPy 网站和演讲中确认他们自己的资金来源
能够通过其理事会成员的参与来影响项目
邀请理事会成员参加 SciPy 开发者会议
当前机构合作伙伴的列表在页面 关于我们 上维护。
文档历史记录#
致谢#
本文档的大部分内容改编自Jupyter/IPython 项目的治理文档 和 NumPy 的治理文档。
许可证#
在法律允许的范围内,作者根据 CC-0 公共领域奉献/许可 放弃了 SciPy 项目治理文档的所有版权和相关或邻接权利。