Django项目的组织

原则

Django项目由一个志愿人员团队管理,该团队致力于实现三个目标:

  • 推动Django Web框架的开发,

  • 培育django相关软件的生态系统,

  • 按照本节所述的价值观领导Django社区 Django Code of Conduct .

Django项目不是合法实体。这个 Django Software Foundation 是一个非营利性组织,负责处理与Django项目有关的财务和法律事务。除此之外,Django软件基金会允许Django项目管理Django框架、其生态系统及其社区的发展。

合并

角色

Mergers 是一小群人,他们将拉入请求合并到 Django Git repository

特权

合并拥有以下特权:

  • 合并任何构成 minor change (足够小,不需要使用 DEP process )。合并不得合并主要由该合并编写的更改,除非拉入请求已获得以下机构的批准:

  • 在适当的地点发起对微小变更的讨论,并要求在讨论进行期间其他合并不要合并它。

  • 如果合并方认为讨论未能达成共识,则要求指导委员会就任何细微的变化进行投票。

  • 要求指导委员会在以下情况下进行表决 major change (重要性足以要求使用 DEP process )达到其实施里程碑之一,并打算合并。

会员

The steering council 选择 Mergers 如有必要,将其数量维持在至少三个,以便分散工作量,避免负担过重或耗尽任何个别合并。合并的数量没有上限。

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

以下限制适用于合并的作用:

  • 一个人不能同时担任指导委员会的成员。如某项合并获选进入督导委员会,则在出任督导委员会成员后,该等合并即告终止。

  • 一个人可以同时担任释放者和合并者的角色。

当出现空缺或指导委员会认为有必要挑选更多人担任这一职务时,遴选过程如下:

  • 任何在适当讨论场所有良好信誉的成员,或Django软件基金会董事会根据DSF联谊会的意见行事,都可以推荐一名考虑人选。

  • 指导委员会考虑提出的建议,然后指导委员会的任何成员正式提名该角色的候选人。

  • 指导委员会对提名者进行投票。

合并者可以在任何时候辞职,但应努力提前通知,以便选择继任者。Django软件基金会终止一名Django研究员的合同,暂时暂停该人的合并角色,直到指导委员会对他们的提名进行投票。

否则,可通过下列方式取消合并:

  • 因当选为指导委员会成员而被取消资格。

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

  • 指导委员会的一次投票。

释放器

角色

Releasers 是一小部分有权将Django的打包版本上载到 Python Package Index 以及对 djangoproject.com 网站。

特权

Releasers :DOC: build Django releases </internals/howto-release-django> and upload them to the Python Package Index and to the djangoproject.com 网站。

会员

The steering council 选择 Releasers 视需要将他们的人数维持在至少三人,以便分散工作量,并避免使任何个别释放者负担过重或筋疲力尽。释放者的数量没有上限。

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

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

当出现空缺或指导委员会认为有必要挑选更多人担任这一职务时,遴选过程如下:

  • 任何在适当讨论场所有良好信誉的成员,或Django软件基金会董事会根据DSF联谊会的意见行事,都可以推荐一名考虑人选。

  • 指导委员会考虑提出的建议,然后指导委员会的任何成员正式提名该角色的候选人。

  • 指导委员会对提名者进行投票。

发布者可以在任何时候辞去他们的角色,但应该努力提前通知,以便选择替代者。Django软件基金会终止Django For的合同,暂时暂停该人的Releaser角色,直到指导委员会可以对他们的提名进行投票。

否则,可通过以下方式移除释放器:

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

  • 指导委员会的一次投票。

督导委员会

角色

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

  • 提供对Django开发和发布过程的监督,

  • 协助确定功能开发和发布的方向;

  • 参与填补某些角色,以及

  • 当其他决策过程失败时,拥有打破平局的投票权。

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

特权

督导委员会拥有以下特权:

  • 对Django的任何技术变更问题做出具有约束力的决定。

  • 否决将任何特定的代码片段合并到Django中,或者命令恢复任何特定的合并或提交。

  • 宣布呼吁对Django未来的技术方向提出建议和想法。

  • 设置和调整《Django》的发行时间表。

  • 选择和删除合并和释放者。

  • 在认为适当的情况下,参与罢免指导委员会成员。

  • 在督导委员会认为适当的时候,在自动触发的选举之外召集督导委员会的选举。

  • 参与修改Django的治理(请参见 改变组织 )。

  • 拒绝就指导委员会认为不适合做出具有约束力的决定的问题进行投票,或者指导委员会认为该问题超出了其权力范围。

  • 负责Django开源项目中其他技术团队的管理,并相应地管理这些团队。

会员

The steering council 是由五名经验丰富的贡献者组成的选举小组,他们展示了:

  • 对Django或Django生态系统做出实质性贡献的历史。这段历史必须在个人成为指导委员会候选人之前至少18个月开始,并且至少包括以下要点中的两个方面的实质性贡献:-对Django项目或Django生态系统中的主要第三方包的代码贡献-审查拉请求和/或对Django项目票证进行分类-文档、教程或博客文章-关于Django上的Django的讨论-开发人员邮件列表或Django论坛-运行Django相关活动或用户组

  • 一段与姜戈的方向和未来接触的历史。这不一定是最近的,但过去三年没有从事过工作的候选人仍然必须表现出对姜戈在这三年内的变化和方向的理解。

在Django的每个发布周期之后,都会选举一个新的委员会。选举过程的工作方式如下:

  1. 指导委员会指示其一名成员以书面形式通知Django软件基金会秘书选举的触发以及触发选举的条件。秘书将张贴到适当的地点--|Django-Developers|邮件列表和 Django forum 宣布选举及其时间表。

  2. 选举一宣布, DSF Board 开始一段时间的选民登记。全 individual members of the DSF 是自动注册的,不需要显式注册。所有其他认为自己有资格投票,但尚未登记投票的人,可以向DSF董事会申请投票特权。选民登记表和选民名册由DSF董事会维护。DSF董事会可能会质疑和拒绝它认为是恶意登记的选民,或者它认为伪造自己资格或其他不合格的选民的登记。

  3. 选民登记在选举宣布一周后关闭。在这一点上,候选人登记开始。任何合资格人士均可登记为候选人。候选人登记表和候选人名册由DSF董事会保存,作为登记的一部分,候选人必须提供其资格的证据。DSF董事会可以质疑和拒绝它认为不符合指导委员会成员资格的候选人的注册,或者它认为是恶意注册的候选人的注册。

  4. 考生报名在开学一周后截止。候选人登记结束一周后,DSF秘书将候选人名单公布到|Django-Developers|邮件列表和 Django forum ,选举开始。DSF董事会提供了一个投票表,供登记选民使用,并是投票的保管人。

  5. 投票采用无记名投票方式,按随机顺序列出候选人名单和与候选人有关的任何材料。每个选民最多可以在选票上投票给五名候选人。

  6. 选举开始一周后就结束了。然后,DSF董事会统计选票并制作摘要,包括投票总数和每个候选人获得的人数。此摘要由DSF董事会以多数票批准,然后由DSF秘书发布到|Django-Developers|邮件列表和Django论坛。得票率最高的五名候选人将立即成为新的指导委员会。

督导委员会成员可在下列情况下被免职:

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

  • 确定他们不具备督导委员会成员的资格。这项决定必须由督导委员会的其他成员和 DSF Board 。有效的不合格判定要求指导委员会的所有其他成员和DSF董事会的所有成员对可以就该问题投票的所有成员(受影响的人,如果是DSF董事会成员,不得投票)在有关该人不符合资格的动议上投赞成票。

改变组织

对此文档的更改需要使用 DEP process ,其中的修改描述在 DEP 0010