Manim 治理

最后修改于2022年1月3日

摘要

本草案提出了一种新的基于指导委员会的Manim正式治理流程。该委员会拥有广泛的权力,并力求尽可能少地行使这些权力。

当前指导委员会

当前指导委员会成员包括

  • Benjamin Hackl
  • Naveen M K
  • Darylgolden

根据以下投票结果。

核心团队由GitHub上“核心”团队的成员组成。

规范

指导委员会

组成

指导委员会是一个由3人组成的委员会。

职责

指导委员会应致力于

  • 维护Manim及其相关项目的质量和稳定性,
  • 直接获取资金(如有)并有效地用于项目利益,
  • 使贡献尽可能可访问、包容和可持续,
  • 为提案建立适当的决策流程,
  • 在以正式身份行事之前,寻求贡献者和核心团队之间的共识,
  • 作为所有其他方法均告失败的决策的“最终上诉法院”。

权力

委员会拥有广泛的权力来对项目做出决策。例如,他们可以

  • 接受或拒绝提案
  • 执行或更新项目的行为准则
  • 管理任何项目资产
  • 将部分权力委托给其他小组委员会或流程

但是,除了本政策中规定的机制外,他们不能修改本政策或影响核心团队的成员资格。

委员会应寻求尽可能少地使用这些权力。与其投票,不如寻求共识。与其对个别提案做出裁决,不如定义一个标准的提案决策流程。与其对个别案件做出裁决,不如设立一个行为准则委员会。以此类推。

为行使权力,委员会进行投票。每位委员会成员必须投票或明确弃权。在特定投票中存在利益冲突的成员必须弃权。通过需要非弃权委员会成员的绝对多数票。

在可能的情况下,委员会的审议和投票应公开进行。

委员会成员通常在任何平台都拥有最高权限,包括但不限于

  • Discord(最高权限和所有权),
  • GitHub(所有者),
  • Twitter,
  • PyPI 和
  • Read the Docs。

可能无法将其中一些权利分配给所有委员会成员。在这种情况下,委员会应选择一名成员,代表委员会负责相关平台。

这些权利的使用反映了委员会的意愿,而非单个成员的意愿。

选举委员会

委员会选举分为两个阶段

  • 阶段1——提名:候选人表达其任职意愿。候选人必须由核心团队成员提名。允许自荐。
  • 阶段2 Alpha——投票:每位核心团队成员最多可投票给三名候选人。投票匿名进行。委员会应理想地反映Manim贡献者和用户的多样性,鼓励核心团队成员相应地投票。候选人按其获得的票数总和进行排名。如果出现平局,可通过候选人之间的相互协议解决,或者阶段2 Bravo生效。
  • 阶段2 Bravo——决选:当阶段2 Alpha未能产生明确获胜者时,应在所有平局候选人之间举行决选。每位核心团队成员拥有一票。如果平局仍无法解决,则随机选择平局候选人,直到所有委员会席位填满。

每个阶段持续一到两周,由即将离任的委员会自行决定。

选举过程由即将离任的委员会选出的一名志愿者管理。Christopher Besch负责首次选举。

任期

每六个月选举一次新委员会。每个委员会的任期从选举结果确定之日起,直至下届委员会任期开始。没有任期限制。

空缺

委员会成员可随时辞去其职务。

在委员会正常任期内出现空缺时,委员会可投票任命一名替代者来完成剩余任期。

如果一名委员会成员失去联系,并且一个月或更长时间无法联系到,则委员会其他成员可以投票替换他们。

开除核心团队成员

在特殊情况下,可能需要违背某人意愿将其从核心团队中移除。(例如:严重且持续的行为准则违规。)这可以通过指导委员会投票来实现,但与其他指导委员会投票不同的是,这需要至少三分之二的多数票。如果有3名成员投票,这意味着2:1的赞成票是此类投票成功的最低要求。此外,这是指导委员会唯一不能被委托的权力,并且在不信任投票进行期间不能使用此权力。

如果被开除的核心团队成员同时也是指导委员会成员,那么他们也将被从指导委员会中移除。

被开除的核心团队成员将不被视为非活跃或荣誉成员。

不信任投票

在特殊情况下,核心团队可以通过不信任投票罢免现任委员会成员或整个委员会。

当一名核心团队成员在适当的项目沟通渠道(例如内部Discord频道)中提出不信任投票,并由另一名核心团队成员附议该提案时,不信任投票将被触发。

投票持续两周。核心团队成员可投票支持或反对罢免,或弃权。如果至少三分之二的投票者表示不信任,则投票成功。

不信任投票有两种形式:针对单个成员的,和针对整个委员会的。不信任投票的初始提议必须指明其类型。如果针对单个成员的投票成功,则该成员将被从委员会中移除,由此产生的空缺可按常规方式处理。如果针对整个委员会的投票成功,则委员会将被解散,并立即启动新的委员会选举。

核心团队

职责

核心团队是管理Manim的一群值得信赖的志愿者。他们承担着实现项目目标所需的许多角色,特别是那些需要高度信任的角色。他们做出影响项目未来的决策。

核心团队成员应作为社区的榜样和项目的守护者,代表社区以及所有依赖Manim的人。

在极少数需要干预的情况下,他们将在必要时介入在线讨论或Manim官方活动。

他们对Manim项目基础设施拥有权限,包括Manim项目网站本身、Manim GitHub组织和仓库、缺陷跟踪系统、社交媒体、Discord服务器等。

特权

核心团队成员可以参与正式投票,通常用于提名新团队成员和选举指导委员会。

成员资格

Manim核心团队成员应展现

  • 对Manim项目理念有很好的理解
  • 在建设性和乐于助人方面有良好的记录
  • 以任何形式对项目目标做出重大贡献
  • 愿意投入时间改进Manim

随着项目的成熟,贡献不再局限于代码。以下是一些可考虑加入核心团队的贡献领域(不分先后),此列表不尽详尽

  • 参与社区管理和外联工作
  • 在社交媒体和Discord服务器上提供支持
  • 分类处理工单
  • 编写补丁(代码、文档或测试)
  • 审查补丁(代码、文档或测试)
  • 参与设计决策
  • 提供特定领域(安全、国际化等)的专业知识
  • 管理持续集成基础设施
  • 管理服务器(网站、追踪器、文档等)
  • 维护相关项目(插件等)
  • 创建视觉设计

核心团队成员资格是对持续且有价值的努力的认可,这些努力与Manim项目的理念和目标高度契合。

通常在Discord上的非正式私下投票获得共识时授予。

核心团队成员一直在寻找有潜力的贡献者,教导他们如何管理项目,并在他们准备好时将其名字提交给核心团队进行投票。

核心团队成员资格没有时间限制。然而,为了让公众合理了解有多少人维护Manim,鼓励已停止贡献的核心团队成员声明自己为“非活跃”成员。两年内未做出任何非微不足道贡献的成员可能会被要求转至此类别,如果他们不回应则会被移入此类别。为了记录和表彰他们的贡献,非活跃团队成员将继续与活跃核心团队成员一同列出;如果他们之后恢复贡献,可以随时切换回活跃状态。然而,在非活跃状态下,他们会失去活跃特权,如投票或提名指导委员会成员,以及提交代码的权限。

最初的活跃核心团队成员将包括目前在GitHub上“Manim核心”团队中列出的所有人,而最初的非活跃成员将包括过去曾是提交者(committer)的所有其他人。

修改本文档

对本文档的修改需要核心团队投票中至少三分之二的多数票,该投票应开放一周。

版权

本文档基于Python的PEP 13,该文档已进入公共领域。本文档也进入公共领域。