Django 项目的组织 — Django 文档

来自菜鸟教程
Django/docs/3.1.x/internals/organization
跳转至:导航、​搜索

Django 项目的组织

原则

Django 项目由一群追求三个目标的志愿者管理:

  • 推动 Django Web 框架的开发,
  • 培育 Django 相关软件的生态系统,
  • 按照 Django 行为准则 中描述的价值观领导 Django 社区。

Django 项目不是法律实体。 Django 软件基金会 是一个非营利组织,负责处理与 Django 项目相关的财务和法律事务。 除此之外,Django 软件基金会让 Django 项目管理 Django 框架、其生态系统和社区的开发。


合并

角色

Mergers 是将拉取请求合并到 Django Git 存储库 的一小部分人。


特权

合并具有以下特权:

  • 合并构成 次要更改 的任何拉取请求(小到不需要使用 DEP 进程 )。 合并不得合并主要由该合并创作的更改,除非拉取请求已由以下人员批准:
  • 在适当的地点开始讨论一个小的变化,并要求其他合并者在讨论进行时不要合并它。
  • 如果合并认为讨论未能达成共识,则要求技术委员会对任何细微更改进行投票。
  • 重大变更 (重大到需要使用 DEP 流程 )达到其实施里程碑之一并打算合并时,请求技术委员会投票。


会员资格

技术委员会根据需要选择合并,以将其数量保持在至少三个,以分散工作量并避免过度负担或烧毁任何单个合并。 合并数量没有上限。

不要求合并者也是 Django 研究员,但 Django 软件基金会有权使用研究员职位的资金作为使合并的作用可持续的一种方式。

以下限制适用于 Merger 的角色:

  • 一个人不得同时担任技术委员会的成员。 如果合并被选入技术委员会,他们将在成为技术委员会成员后立即不再是合并。
  • 一个人可以同时担任发布者和合并者的角色。

当出现空缺或技术委员会认为有必要为此类角色选择其他人员时,选拔过程如下:

  • 任何在适当讨论场所的信誉良好的成员,或在 DSF 奖学金委员会的意见下行事的 Django 软件基金会董事会,都可以推荐一个人以供考虑。
  • 技术委员会考虑提出的建议,然后技术委员会的任何成员正式提名该职位的候选人。
  • 技术委员会对被提名人进行投票。

合并者可以随时辞去职务,但应尽量提前通知,以便选择替代者。 Django 软件基金会终止 Django 研究员的合同会暂时中止该人的合并角色,直到技术委员会可以对他们的提名进行投票。

否则,可以通过以下方式删除合并:

  • 由于选举到技术委员会而被取消资格。
  • 由于 Django 软件基金会行为准则委员会采取的行动而被取消资格。
  • 技术委员会的投票。


发布者

角色

Releasers 是有权将 Django 的打包版本上传到 Python Package Indexdjangoproject.com 网站的一小部分人。


特权

发布者 构建 Django 版本 and upload them to the Python 包索引, and to the djangoproject.com website.


会员资格

技术委员会根据需要选择发布者,以将其数量保持在至少三个,以分散工作量并避免过度负担或烧毁任何一个发布者。 发布者的数量没有上限。

发布者不一定是 Django Fellow,但 Django 软件基金会有权使用 Fellow 职位的资金作为使 Releaser 角色可持续的一种方式。

一个人可以同时担任发布者和合并者的角色。

当出现空缺或技术委员会认为有必要为此类角色选择其他人员时,选拔过程如下:

  • 任何在适当讨论场所的信誉良好的成员,或在 DSF 奖学金委员会的意见下行事的 Django 软件基金会董事会,都可以推荐一个人以供考虑。
  • 技术委员会考虑提出的建议,然后技术委员会的任何成员正式提名该职位的候选人。
  • 技术委员会对被提名人进行投票。

发行人可以随时辞去职务,但应尽量提前通知,以便选择替代人选。 Django 软件基金会终止 Django 研究员的合同会暂时中止该人的发布者角色,直到技术委员会可以对他们的提名进行投票。

否则,发布者可能会被删除:

  • 由于 Django 软件基金会行为准则委员会采取的行动而被取消资格。
  • 技术委员会的投票。


技术委员会

角色

技术委员会是一群经验丰富的贡献者,他们:

  • 监督 Django 的开发和发布过程,
  • 协助设定功能开发和发布的方向,
  • 参与填补某些角色,以及
  • 当其他决策过程失败时,进行决胜投票。

他们主要关心的是保持 Django Web 框架的质量和稳定性。


特权

技术委员会拥有以下特权:

  • 对 Django 的任何技术更改问题做出具有约束力的决定。
  • 否决将任何特定代码段合并到 Django 中,或命令任何特定合并或提交的还原。
  • 宣布对 Django 未来技术方向的提案和想法的征集。
  • 设置和调整 Django 的发布时间表。
  • 选择和删除合并者和释放者。
  • 在认为合适的情况下,参与罢免技术委员会成员。
  • 在技术委员会认为适当的时候,在自动触发的选举之外召集技术委员会的选举。
  • 参与修改Django的治理(见改变组织)。
  • 拒绝就技术委员会认为不成熟的具有约束力的决定或技术委员会认为超出其权力范围的问题进行投票。
  • 负责管理 Django 开源项目中的其他技术团队,并相应地管理这些团队。


会员资格

技术委员会是由五名经验丰富的贡献者组成的选举小组,他们证明:

  • 对 Django 或 Django 生态系统的技术贡献历史。 此历史记录必须在个人成为技术委员会候选人之前至少 18 个月开始。
  • 在贡献之外参与 Django 开发的历史合并到 Django Git 存储库 。 这可能包括但不限于:
    • 参与 django-developers 邮件列表或 Django 论坛 的讨论。
    • 审查 Django 源代码存储库中的拉取请求并提供反馈。
    • 协助分类和管理 Django 错误跟踪器。
  • 最近参与 Django 的方向和发展的历史。 这种参与必须在个人成为技术委员会候选人之前不超过两年的时间内发生。

Django 的每个发布周期后都会选出一个新的董事会。 选举过程如下:

  1. 技术委员会指示其一名成员以书面形式通知 Django 软件基金会秘书选举的触发以及触发条件。 秘书张贴到适当的地点 - django-developers 邮件列表和 Django 论坛 宣布选举及其时间表。
  2. 选举一经宣布,DSF 委员会 就开始进行选民登记。 DSF 的所有 个人成员都是自动注册的,不需要显式注册。 所有其他认为自己有资格投票但尚未登记投票的人,可以向 DSF 委员会申请投票特权。 选民登记表和选民名册由 DSF 委员会维护。 DSF 委员会可以质疑和拒绝其认为恶意登记的选民或其认为伪造其资格或以其他方式不合格的选民的登记。
  3. 选民登记在选举宣布一周后结束。 届时,考生报名开始。 任何符合条件的人都可以注册为候选人。 候选人注册表和候选人名册由 DSF 委员会维护,候选人必须提供其资格证明作为注册的一部分。 DSF 委员会可以质疑和拒绝其认为不符合技术委员会成员资格的候选人的注册,或者它认为注册恶意的候选人。
  4. 候选人注册在开放一周后关闭。 候选人注册结束一周后,DSF 秘书将候选人名单发布到 django-developers 邮件列表和 Django 论坛 ,选举开始。 DSF 委员会提供可供注册选民使用的投票表,并且是选票的保管人。
  5. 投票采用无记名投票方式,其中包含候选人名册以及与候选人有关的任何相关材料,按随机顺序排列。 每个选民最多可以在选票上投票给五名候选人。
  6. 选举在开始一周后结束。 然后,DSF 委员会会统计选票并生成摘要,包括投票总数和每位候选人获得的票数。 该摘要由 DSF 委员会以多数票批准,然后由 DSF 秘书发布到 django-developers 邮件列表和 Django 论坛。 总票数最高的五名候选人立即成为新的技术委员会。

技术委员会成员可以通过以下方式免职:

  • 由于 Django 软件基金会行为准则委员会采取的行动而被取消资格。
  • 确定他们不具备技术委员会成员的资格。 该决定必须由技术委员会的其他成员和 DSF 委员会 共同做出。 对不合格的有效判定要求技术委员会的所有其他成员和 DSF 委员会的所有成员都可以对该问题进行投票(受影响的人,如果是 DSF 委员会成员,则不得投票)对一项动议投“是”该人不符合资格。


改变组织

对本文档的更改需要使用 DEP 流程 ,并在 DEP 0010 中进行了修改。