主要治理文件#
此文档的正式版本,以及治理部分中定义的角色的个人和机构列表,包含在项目治理存储库中:
项目#
Matplotlib 项目(项目)是一个开源软件项目,隶属于 NumFOCUS 基金会。项目的目的是开发开源软件,并部署开放的公共网站和服务,用于数据可视化。项目开发的软件在 BSD(或类似的宽松)开源许可下发布,公开开发,并在 Matplotlib GitHub 组织 下的公共 GitHub 存储库中托管。项目软件的示例包括用于数据可视化的 Matplotlib 库及其相关的扩展和依赖项。项目运行的服务包括在 matplotlib.org 域名下托管的公共网站和 Web 服务。
该项目由一个分布式开发人员团队开发,称为贡献者。贡献者是指为一个或多个项目存储库贡献代码、文档、设计或其他工作的人员。贡献者在项目许可证中也称为“Matplotlib 开发团队 (MDT)”。任何人都可以成为贡献者。贡献者可以隶属于任何法律实体,也可以不隶属于任何法律实体。贡献者通过提交、审查和讨论 GitHub 拉取请求和问题,以及参与 GitHub、Discourse、Hackmd、Gitter 聊天室和邮件列表上的公开项目讨论来参与项目。项目参与的基础是开放和透明。
例如,以下是当前对主 Matplotlib 存储库的贡献者的部分列表
项目其他存储库的日志中还列出了许多其他贡献者。这尤其不包括代码以外项目的贡献,例如报告和评论问题,因此只是被视为贡献者的个人的子集。
项目社区由所有贡献者和项目用户组成。贡献者代表项目社区工作并对其负责,我们努力将贡献者和用户之间的障碍降到最低。
该项目正式隶属于 NumFOCUS 基金会 (http://numfocus.org),这是一个根据美国国税局法典第 501(c)(3) 条款成立的非营利组织。NumFOCUS 担任其财务赞助商,可能持有项目商标和其他知识产权,帮助管理项目捐赠并充当母体法律实体。NumFOCUS 是唯一与该项目有正式关系的法律实体(见下文“机构合作伙伴”部分)。
治理#
本节介绍项目的治理和领导模式。
项目治理的基础是
开放与透明
积极贡献
机构中立
项目领导最初由原作者 John D. Hunter 提供。在他于 2012 年去世前不久,领导权移交给了 Michael Droettboom,他后来邀请 Thomas A Caswell 担任联合领导。项目领导也由一些贡献者提供,这些贡献者被称为开发人员,他们因对项目存储库获得“提交权限”而获得了认可,他们的贡献显著或持续。一般来说,所有项目决策都是通过开发人员之间达成共识,并征求社区意见的方式做出的。
虽然这种方法一直为我们服务良好,但随着项目的发展,面临着更多法律和财务决策,并与其他机构互动,我们看到了对更正式的治理模式的需求。展望未来,项目领导将由项目负责人、几位副负责人和一个指导委员会组成。我们认为这种治理模式是对我们正在做的事情的正式化,而不是方向的改变。
项目负责人#
该项目将设有项目负责人 (PL),目前由 Thomas A Caswell 担任。PL 拥有对项目的最终决定权。在实践中,PL 选择将该权力委托给社区讨论渠道、副项目负责人和指导委员会 (见下文) 的共识。预计,并且过去也一直如此,PL 很少会行使最终权力。由于很少使用,我们将 PL 的最终权力称为“特殊”或“否决”投票。当这种情况发生时,PL 否决通常发生在指导委员会出现僵局的情况下,或者指导委员会要求 PL 对特定事项做出决定时。
PL 是指导委员会 (见下文) 的主席,可以自行决定将他们对特定决定或一组决定的权力委托给任何其他委员会成员。PL 负责确保所有需要投票的 SC 活动都得到妥善记录。
PL 可以任命他们的继任者,但预计指导委员会会对此决定进行协商。如果 PL 无法任命继任者,指导委员会将向 NumFOCUS 主委员会提出建议或建议。虽然指导委员会和 NumFOCUS 主委员会将在 PL 选拔过程中密切合作,但 NumFOCUS 主委员会将做出最终决定。NumFOCUS 委员会可能会在特殊情况下将 PL 从项目中移除。
指导委员会#
该项目将设有指导委员会,由对项目做出过重大贡献(质量和数量方面)且持续至少一年的项目贡献者组成。委员会的总体作用是通过与 PL 合作并从社区获取意见,确保项目的长期福祉,包括技术、财务和社区方面。
委员会成员不得通过雇佣或承包关系向同一个人汇报。
在日常项目活动中,委员会成员与所有其他贡献者和社区成员一样,参与所有讨论、代码审查和其他项目活动。在这些日常活动中,委员会成员不会因其在委员会中的成员身份而拥有任何特殊权力或特权。但是,预计由于其贡献的质量和数量以及他们对项目软件和服务的专业知识,委员会成员将为可能经验不足的贡献者提供有用的指导,包括技术和项目方向方面的指导。
指导委员会及其成员在某些情况下发挥着特殊作用。特别是,委员会可以
开发资金来源并确定资金的使用方式(参见下文财务小组)。
对项目的整体范围、愿景和方向做出决策。
对与其他组织或个人的战略合作做出决策。
对项目运行的服务做出决策,并管理这些服务以造福项目和社区。
在常规的社区讨论在合理的时间范围内无法就某个问题达成共识时做出决策。
授予或撤销提交权限。
指导委员会将由 5 到 7 人组成,包括项目负责人。加入指导委员会是一项责任,而不是对长期贡献者的认可。
委员会成员#
要成为指导委员会成员的候选人,必须是项目贡献者,其贡献在质量和数量上都相当大,并且持续至少一年。潜在的委员会成员由现任委员会成员提名,并在征求潜在成员的意愿和意愿后由现任委员会投票决定。委员会将最初由项目负责人从符合上述标准的现有开发人员中提名组成。
在考虑潜在成员时,委员会将全面了解候选人的贡献。这将包括但不限于代码、代码审查、基础设施工作、邮件列表和聊天参与、社区建设、用户和开发人员支持、教育和外展、拨款写作和设计工作。我们故意不设定量化指标(例如“此仓库中的 100 次提交”)以避免鼓励以指标为导向的行为,而不是项目的整体福祉。我们希望在团队中鼓励多元化的背景、观点和才能,这就是我们明确不将代码定义为评估委员会成员资格的唯一指标的原因。
当被邀请加入指导委员会时,贡献者承诺服务两年。两年期满后,经其他委员会成员同意,可以选择重新加入委员会。如果他们选择不重新加入委员会,则使用上述流程招募新成员。
指导委员会成员(项目负责人除外)将分成两个平等的类别,任期相差一年。这将有助于随着时间的推移保持指导委员会的连续性。
指导委员会成员可以随时辞职。如果一名委员会成员在 2 个月内处于非活跃状态,项目负责人 (PL) 将会联系他们,询问他们是否计划恢复活跃参与。如果他们不打算恢复活跃参与,将被要求辞职。如果委员会成员表示他们打算重新活跃,但在 1 个月后仍未恢复活跃,委员会可以投票将其移除。
如果一名委员会成员提前离开委员会,可以使用与上述相同的流程进行替换。他们的替代者将加入相同的届别,并担任剩余的 2 年任期。
每个届别成员数量可以在 2 到 3 人之间浮动,只要总的委员会规模(包括项目负责人)在 5 到 7 人之间。如果一个届别成员数量过少,则必须招募一名新的成员。
所有前任委员会成员都可以在未来任何时候再次被考虑加入,就像任何其他项目贡献者一样。退休的委员会成员将在项目网站上列出,并承认他们在委员会任职期间的活跃时间。
委员会保留权利,通过超级多数投票,将任何个人,包括委员会成员,从项目的在线空间中驱逐出去,如果他们被认为对项目的福祉构成积极的危害,并且沟通和冲突解决的尝试失败。
利益冲突#
预计项目负责人、副项目负责人和委员会成员将在各种公司、大学和非营利组织工作。因此,成员可能会存在利益冲突。此类利益冲突包括但不限于
财务利益,例如投资、雇佣或承包工作,这些工作不在项目之外,可能会影响他们在项目上的工作。
访问其雇主的专有信息,这些信息可能会泄露到他们在项目上的工作中。
包括项目负责人,委员会的所有成员都应向委员会其他成员披露他们可能存在的任何利益冲突。在特定问题上存在利益冲突的成员可以参与委员会关于该问题的讨论,但必须回避对该问题的投票。如果项目负责人回避了特定决定的投票,他们将为该决定任命一名代理项目负责人。
委员会的私人通信#
除非有特殊要求,所有委员会讨论和活动将公开进行,并通过正常的沟通渠道与项目贡献者和社区进行协作和讨论。委员会将拥有一个私人邮件列表,该列表将谨慎使用,仅在特定事项需要保密时使用。当需要私人通信和决策时,委员会将尽力在删除不应发布到公共互联网的个人/私人/敏感信息后,将这些信息总结给社区。
分委员会#
委员会可以创建分委员会,为项目的特定方面提供领导和指导。与整个委员会一样,分委员会应以公开和公开的方式开展业务,除非明确要求保密。私人分委员会通信应在委员会的主要私人邮件列表中进行,除非有特殊要求或有外部成员。
NumFOCUS 小组委员会#
理事会将维持一个专注于管理与 NumFOCUS 互动关系的子委员会,该委员会将包括外部成员。
NumFOCUS 小组委员会由 4 人组成,负责管理通过 NumFOCUS 获得的项目资金。预计这些资金将以符合 NumFOCUS 非营利使命和项目方向的方式支出,该方向由全体理事会决定。
该小组委员会不应决定项目的走向、范围或技术方向。
该小组委员会将有 4 名成员,其中至少 2 名成员也是指导委员会成员,其中 1 名成员将是指导委员会外部成员。小组委员会成员不能通过雇佣或承包工作向与小组委员会其他成员相同的人汇报。这避免了有效多数依赖于一个人。
行为准则小组委员会#
该委员会应由 3 到 7 人组成,其中至少 1 人是指导委员会成员,至少 1 人不是。该委员会负责处理在我们数字和物理空间内发生的 CoC 报告。他们将维护自己的私人邮件列表和报告地址。有关如何处理 CoC 的详细政策将在其他地方记录。
副项目负责人#
副项目负责人 (DPL) 拥有预先授权的权限,可以在其职责范围内做出决定。与 PL 一样,DPL 应在行使权力之前努力达成共识。DPL 做出的决定可以上诉给 PL,但推定 PL 将服从 DPL,除非在特殊情况下。DPL 之间的争议将由 PL 解决。
DPL 由指导委员会成员提名,并由指导委员会多数票从其任命之日起任命为 1 年任期(发布经理除外)。在每个 1 年任期内,DPL 可以选择继续一年或辞职。SC 可以通过超级多数票罢免 DPL。
根据 SC 和 PL 的决定,DPL 职位可能不会被填补,在这种情况下,责任将重新归属给 PL。SC 可以通过多数票创建新的 DPL 职位、取消未填补的 DPL 职位或更改职位描述。
任何当前活跃的贡献者都有资格被考虑担任 DPL,一个人可以同时担任多个 DPL。
项目特定负责人#
Matplotlib 在其麾下拥有多个领域特定软件包,这些软件包托管在 Matplotlib GitHub 组织中。每个项目都将有自己的项目负责人,他们可以根据自己的判断运行项目,只要符合 Matplotlib 行为准则即可。
如果某个项目希望托管在 GitHub 上的 Matplotlib 组织中,他们可以向指导委员会 (SC) 提出申请,并通过简单多数票获得批准。项目可以随时离开该组织,也可以通过指导委员会 (SC) 的三分之二多数票从该组织中移除。
机构合作伙伴和资金#
项目负责人和指导委员会是项目的首要领导。除了作为贡献者和委员会成员参与项目之外,任何外部机构、个人或法律实体都无权拥有、控制、篡夺或影响项目。然而,由于机构是项目的主要资金来源,因此正式承认机构对项目的参与非常重要。这些机构被称为机构合作伙伴。
机构贡献者是指任何作为机构合作伙伴正式职责的一部分为项目做出贡献的个人项目贡献者。同样,机构委员会成员是指任何作为机构合作伙伴正式职责的一部分为项目做出贡献的项目指导委员会成员。
根据这些定义,机构合作伙伴是指在美国或其他地方注册的任何合法实体,其雇用了至少一名机构贡献者或机构委员会成员。机构合作伙伴可以是营利性或非营利性实体。
机构通过雇用积极参与项目并将其作为其正式职责的一部分的个人,有资格成为机构合作伙伴。换句话说,机构合作伙伴影响项目的方式,只能是积极参与项目的开放式开发,与社区中任何其他贡献者和委员会成员平等。仅仅在机构环境中使用 Matplotlib 软件并不允许实体成为机构合作伙伴。财务捐赠也不允许实体成为机构合作伙伴。一旦机构有资格成为机构合作伙伴,指导委员会必须提名并批准该合作伙伴关系。
如果现有的机构合作伙伴不再拥有贡献员工,他们将获得一年的宽限期,以便其他员工开始贡献。
机构合作伙伴可以通过任何合法途径为其在项目上的工作寻求资金。这可能包括非营利组织从私人基金会和捐助者那里筹集资金,或者营利性公司构建利用项目软件和服务的专有产品和服务。机构合作伙伴为项目工作而获得的资金称为机构资金。但是,机构合作伙伴获得的任何资金都不能凌驾于项目计划和指导委员会之上。如果合作伙伴有资金进行 Matplotlib 工作,而委员会决定不将该工作作为项目进行,则合作伙伴可以自行进行。但是,在这种情况下,合作伙伴工作的这部分将不在 Matplotlib 范围内,并且不能使用项目商标来暗示正式关系。
根据赞助级别,机构需要提供至少
6 人月/年 的付费工作时间,用于一个或多个 Matplotlib 维护者或定期贡献者参与任何 Matplotlib 团队或活动
才能成为机构合作伙伴。除了赞助文档中描述的赞助者致谢之外,机构合作伙伴还可以
在 Matplotlib 网站、演讲和 T 恤上确认自己的资金来源。
更改治理文档#
对治理文件的更改通过 GitHub 拉取请求提交到 The Project 的治理文件 GitHub 仓库,地址为 matplotlib/governance。拉取请求随后会根据公众意见和审查进行细化,目标是在社区中达成共识。在公开期结束后,指导委员会成员会向指导委员会提议批准更改并合并拉取请求(接受提议的更改),或者提议关闭拉取请求而不合并(拒绝提议的更改)。成员应在提议接受或拒绝的拉取请求中说明最终提交的哈希值,并简要概述拉取请求。整个指导委员会必须投票,至少 2/3 的票数必须为正数才能执行提议的行动(票数的小数部分向上取整到最接近的整数)。由于项目负责人拥有 The Project 的最终权限,项目负责人有权单独决定接受或拒绝更改,或推翻指导委员会的决定。