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 项目治理文档的所有版权和相关或邻接权利。