Django 项目的新治理模型
一段时间以来,关于更改 Django 开源项目治理的提案一直在讨论和完善中。它被写成 Django 增强提案 (DEP),编号为DEP 10。
更改 Django 项目的治理并非易事,也不是一件可以轻率行事的事情。它需要 Django 核心团队、Django 技术委员会和 Django 软件基金会董事会的同意。所有这些团体现在都已举行讨论,并投票接受 DEP 10。
在接下来的几周内,DEP 10 的实施将开始认真进行,但今天值得快速总结一下发生了哪些变化以及原因。如需了解完整详细信息,您还可以阅读 DEP(但请记住,它是一个治理文档,力求尽可能精确并涵盖许多潜在的边缘情况,因此有点冗长乏味)。
历史和基本原理
Django 开源项目由 Adrian Holovaty 和 Jacob Kaplan-Moss 发起,他们也担任了该项目的首任领导者。在 Django 开源后的早期,他们向其他人授予了最初的提交访问权限,到 2014 年,提交者的核心团队已大幅增长,当时 Adrian 和 Jacob 选择辞去领导职务。当时,保留了提交者核心团队可以根据自己的意愿向 Django 添加代码的基本结构,并创建了一个新的团体——由核心提交者选举产生的五名提交者组成的“技术委员会”——作为最终的仲裁决策者。
然而,实际上,现在添加到 Django 的几乎所有代码都是由 Django Fellows(Django 软件基金会的付费承包商,其职责包括分类、审查和合并 Django 的拉取请求)或少数活跃的志愿者提交者合并的。并且所有 Django 版本现在都由 Fellows 发布,发布计划提前制定好。这意味着大多数历史上的“核心团队”提交者现在与 Django 几乎没有任何直接关系,尽管他们在项目中拥有巨大的理论权力。而且,提交者不再自己讨论和决定,Django 开发中几乎所有技术决策都是通过公开论坛达成共识做出的,任何人都可以参与其中。
此外,“核心团队”的增长几乎停滞不前;新提交者极少被添加,而且既没有明确的“核心”状态晋升路径,也没有任何方法让人们判断他们是否或是否可能成为该职位的合适人选。项目邮件列表和会议上的讨论也表明,许多潜在贡献者对自己的能力估计过低,而对现有“核心”开发人员的重要性估计过高,这导致完全合格的人员却步,不敢尝试更认真地参与到为 Django 做贡献中来。
所有这些都令人沮丧,不利于 Django 作为项目的长期健康发展。因此,替换或改革“Django 核心”和项目的治理已成为长期讨论的永恒话题,尤其是在当前“核心”团队和 DSF 会员等团体中。
发生了哪些变化
自 DEP 10 通过以来,Django 开源项目的结构正在发生多种变化。以前的“核心团队”现已解散,以前“核心”成员的提交访问权限将被撤销。正在创建新的角色——“合并者”——并将拥有提交访问权限,但仅限于合并他人的拉取请求:合并者不能主动决定向 Django 添加内容,并且不具有任何特殊的决策特权。
除此之外,还将创建新的“发布者”角色,该角色将有权发布 Django 版本并执行相关机制(例如,在关键文件中更新版本号)。
实际上,技术决策已经通过任何人都可以参与的公共场所达成共识;这现在被正式确认为 Django 开发的主要且预期的方式,并且不会有任何特殊的“提交者”或“核心”个人拥有特殊权力,仅仅依靠自己的说法就能提交或阻止某些内容。
技术委员会将被保留作为在需要时进行最终决策的权威机构——这在历史上很少发生——并且还负责征集关于 Django 未来技术方向的想法和建议,以及设定发布计划。
但是,技术委员会的成员资格将不再限于提交者,并且技术委员会将不再由提交者选举产生,这是因为“核心”提交者作为一个整体将不复存在。相反,任何证明自己对 Django 有技术贡献历史的人都有资格竞选技术委员会,技术委员会将由 DSF 的个人成员选举产生,所有这些成员都是基于他们参与和为 Django 做出的贡献而获得该成员资格的(并且在极少数情况下,如果参与 Django 的人员没有持有 DSF 成员资格,则有非 DSF 成员投票的规定)。这将技术委员会选举的潜在投票人数从大约 50 人(旧模型中只有提交者投票)扩大到现在的近 200 人,并且随着 DSF 成员的增加,这一数字很可能会进一步增加。
投票名单和技术委员会的选举将由 DSF 董事会监督(任何竞选技术委员会的 DSF 董事会成员都必须回避选举监督),董事会将有权调查候选人和投票人的资格和诚意。
最后,“Django 核心开发者”一词将被重新用作荣誉称号,由 DSF 授予对 Django 历史产生重大、长期影响的个人,类似于 PSF 为对 Python 做出贡献而授予的“Python 软件基金会研究员”荣誉。此称号将自动授予在 DEP 10 通过之前任何时间拥有“核心”状态(以多种形式中的任何一种,因为该术语有时含糊不清)的任何人。
立即生效,Django Fellows,目前是 Carlton Gibson 和 Mariusz Felisiak,是最初的合并者和发布者,Django 技术委员会将根据需要向这些角色委派其他人,以确保人员配备充足。现任技术委员会和 DSF 董事会也将努力在 DEP 10 下举行第一次新的技术委员会选举,一旦必要的注册和投票基础设施到位,选举将立即举行。
Django 项目网站的文档和其他部分也将进行大量更新,以确保尽可能准确地描述新的流程和结构。在此之前,请将人们引导到这篇博文以了解其发生情况的摘要,或引导到 DEP 10 文本以了解完整详细信息。
未来
今年晚些时候,我们将庆祝 Django 最初开源 15 周年。在此期间,该框架已发布了 278 个版本,近 1900 人为主要存储库做出了贡献,学习和使用 Django 的人数几乎无法衡量;主要的 django-users 邮件列表拥有数万名成员,并且肯定只代表了全球 Django 用户社区的一小部分。
所有参与这项提案的人员都希望,正式开放 Django 的治理和决策将使该项目在长期内拥有更健康、更可持续的基础,并消除欢迎来自其全球社区各个角落的新贡献者所面临的障碍之一(“Django 核心”的实际过时和其成员资格的停滞)。