Debian 如何通过一般决议投票制定政策
Debian General Resolution 如何运作?了解约 1000 名开发者如何排序投票、提出和附议提案、计票,以及“以上皆非”如何否决所有方案并影响您的服务器。
谁决定 Debian 中包含哪些内容
Debian General Resolution(GR)是整个项目的投票机制。Debian 通过它解决政策问题,而不是将决定权交给某个人。参与投票的是 Debian Developers,约有 1000 人。选票采用排序投票,并且始终包含一个没有人提出的选项:“以上皆非”。该选项可能击败选票上的所有提案。出现这种情况时,项目决定不作决定。
这些内容并非传闻。Debian Constitution 规定了谁可以决定哪些事项、提案如何进入投票、选票如何计数,以及哪些决定需要超过简单多数。在为服务器选择发行版之前,值得先阅读这份文件。它能说明政策变更如何影响您的系统,以及您会提前多久收到通知。
宪章及其解决的问题
Debian 于 1998 年 12 月 2 日批准了 1.0 版宪章。当前生效的文本是 1.9 版,于 2022 年 3 月 26 日批准。该文件在开头列出所有早期版本,因为修改宪章的唯一方式就是通过其中规定的投票。
这里有四个相关方。开发者集体行使最终权限。Debian 项目负责人(DPL)每年选举一次。技术委员会(TC)负责裁决维护者之间的技术争议。项目秘书负责组织投票并裁定程序问题。
第 4.1 节列出了开发者集体可以采取的行动:
- 任命或罢免项目负责人。
- 以 3:1 多数修改宪章。
- 作出项目负责人或受委派者权限允许作出的任何决定,或推翻此类决定。
- 以 2:1 多数作出技术委员会权限允许作出的任何决定,或推翻此类决定。
- 发布、取代和撤回非技术性政策文件及声明。
这些比例体现了制度设计。推翻项目负责人的决定只需简单多数,因为项目负责人的决定本应是临时性的。推翻技术委员会的决定需要 2:1 多数,因为委员会受托裁决本身有明确原因。修改宪章或《社会契约》等基础文件需要 3:1 多数。决定越难撤销,作出该决定所需的门槛就越高。
谁可以投票,以及领导者实际能做什么
只有 Debian Developer 可以投票。他们是通过 Debian 新成员流程获准加入的项目成员,其中包括不维护软件包、但为项目承担其他工作的成员。未经过该流程的贡献者没有选票,用户也没有。选票属于个人成员,因此雇主不占有席位,也不拥有一组投票权。
DPL 每年春季使用同一套排序投票机制选举产生,默认选项为“以上都不是”,任期为1年。在 2026 年选举中,提名时间为3月7日至13日,竞选活动持续到4月3日,投票时间为2026年4月4日至17日。Sruthi Chandran 是唯一候选人并当选:计票结果显示,289票支持该候选人而非“以上都不是”,50票则相反。结果于2026年4月18日公布。
这个职位的权力小于其名称所暗示的范围。DPL 任命代表、代表项目发言、决定需要紧急处理的事项,以及决定无人负责的事项。DPL 不能通过命令制定技术政策,因为第4.1节允许 Developers 推翻领导者有权作出的任何决定,而推翻决定只需要简单多数。
Project Secretary 是负责让其他工作顺利进行的低调职位。Secretary 发布选票、召集投票、执行计票,并裁定程序问题,例如某个选项需要哪种多数。
如何提出并附议一般性决议
一项决议首先会以电子邮件形式发送到公开邮件列表,实际使用的是 debian-vote@lists.debian.org。任何人都可以阅读。只有 Debian Developer 才能提出决议。
《章程》规定,决议或投票选项“由任何一名 Developer 提出,并至少由 K 名其他 Developer 共同发起后,即视为提出”。K 取决于项目规模,法定人数也取决于项目规模:
2022 non-free firmware vote, published quorum 47.9765567751584
developers on the roll 1023
Q = sqrt(1023) / 2 = 15.992
K = min(Q, 5) = 5 sponsors needed to introduce an option
3Q = quorum = 47.977 votes an option must draw to surviveQ 等于当前 Developer 数量平方根的一半,K 取 Q 和 5 中较小的值。Debian 几十年来一直拥有超过 100 名 Developer,因此实际情况下 K 为 5。其他 5 名 Developer 必须在邮件列表中回复,以附议该提案。这个门槛有意设置得很低,附议并不表示同意,而是表示该问题值得进行投票。
随后进入讨论期。讨论期最短为 2 周,最长为 3 周。在此期间,任何其他 Developer 都可以为同一张选票添加不同选项,但必须获得另外 5 名 Developer 的附议。由于决议流程在 2022 年 1 月通过投票重写,所有选项地位相同,最初的提案人不再比其他提案人享有任何特殊地位。
因此,Debian 的投票很少只是“赞成”或“反对”的二选一问题。一般性决议通常会在讨论期内由不同人员提出多个相互竞争的提案,最终以选项列表的形式出现。
讨论结束后,项目秘书会发布选票并发起投票,而且必须在 7 天内完成。近期的投票期均为 2 周:固件决议的投票期为 2022 年 9 月 18 日至 10 月 1 日,当前正在进行的决议投票期为 2026 年 8 月 15 日至 28 日。
为什么选票采用排序方式,以及默认选项的作用
Debian 使用孔多塞方法统计选票。每位投票者按偏好顺序排列各个选项。统计时会比较每一组选项:对于选项 A 和 B,统计将 A 排在 B 前面的选票数,以及将 B 排在 A 前面的选票数。在所有一对一比较中都获胜的选项即为获胜者。当偏好形成循环、不存在这样的选项时,章程会依次淘汰最弱的失败关系,直到 Schwartz 集合中产生获胜者。Schwartz 集合是指组外没有任何选项能击败组内选项的选项集合。
排序可以消除分散票问题。4个总体意见一致的提案不会互相抵消,因为偏好其中一个提案的投票者仍可将另外3个提案排在自己不支持的选项之前。
每张全体决议选票最后都有默认选项。章程规定,该选项“没有提案人或共同提案人,且不能被修改或撤回”。目前它称为“以上皆非”。在2022年1月投票通过流程变更之前,它称为“进一步讨论”;较早的结果页面仍显示这一名称。
默认选项是以下两条可以单独否决提案的规则的参照点:
- 法定人数:除默认选项外,任何未获得至少3Q张将其排在默认选项之前的选票的选项,都会被排除在考虑范围之外。2022年这一数量约为48票。
- 超级多数:任何未按规定比例击败默认选项的非默认选项,都会被排除。3:1提案必须以3比1击败“以上皆非”。
请将第二条规则读两遍,因为人们最容易记错的就是这一条。Debian 中的超级多数是相对于默认选项计算的。其他竞争提案不参与这一计算。
如果默认选项直接获胜,则不会采纳任何提案,议题会退回邮件列表。这是一种实际结果。将默认选项排在某个选项之前,表示开发者的意思是:“我宁愿 Debian 什么也不说,也不愿它说这个。”
自2022年3月起,选票采用秘密投票。使选票保密的决议由 Sam Hartman 提出,并于2022年3月13日至26日进行投票。获胜选项不会公开哪位开发者投了哪张选票,但投票者仍可确认自己的选票已计入统计。在此之前,每张排序选票都会连同投票者姓名一起发布。
实际改变了什么:全体决议
init 系统,两次。 2014 年 2 月 11 日,技术委员会通过决议:“对于 jessie 中的 Linux 架构,默认 init 系统应为 systemd。”此前委员会陷入僵局,主席 Bdale Garbee 通过投决定票打破僵局。委员会自己的决议还补充说,如果项目在 jessie 发布前就 init 系统通过了全体决议,“该立场将取代本次投票的结果”。Ian Jackson 提议了这项全体决议。投票时间为 2014 年 11 月 5 日至 18 日,获胜选项是“无需全体决议”。项目利用这次投票,决定不推翻本委员会的决定。
2019 年 12 月,这个问题以“init 系统和 systemd”的形式再次出现。5 名开发者提出了 7 个实质性选项,范围从一端的“专注于 systemd”到另一端的“必须支持多个 init 系统”。投票时间为 2019 年 12 月 7 日至 27 日,共记录 425 张选票。获胜选项是“使用 systemd,但支持探索替代方案”。
非自由固件,以及您下载的安装程序。 2022 年,项目就官方安装程序是否应包含网卡和其他硬件所需的非自由固件进行投票。共有 6 个提案进入投票。投票时间为 2022 年 9 月 18 日至 10 月 1 日,获胜选项是“修改安装程序中非自由固件的 Social Contract,使用一个安装程序”。由于该选项修改了 Social Contract,因此必须以 3:1 的比例击败默认选项;它确实做到了。
这次投票是投票结果到达您机器上的最清晰例子。Debian 12 “bookworm” 于 2023 年 6 月 10 日发布,将大多数固件软件包从 non-free 移到新的 non-free-firmware 组件中;硬件需要时,其安装程序会启用该组件。在投票前,如果机器配有需要固件的网卡,您必须知道去获取非官方镜像。邮件列表中的帖子、投票和您下载的 ISO,构成了一条完整的事件链。
有意保持沉默。 2021 年 4 月,项目就是否应公开声明 Richard Stallman 重新加入 Free Software Foundation 董事会进行投票。共有 8 个选项进入投票。获胜选项是“Debian 不会就此问题发表公开声明”。一项决议可以确认项目没有集体立场;这是一种公司新闻办公室很少能够作出的决定。
正在进行的决议:Debian 中的 LLM 使用
目前,围绕大语言模型(LLM)的相关工作正在进行。关于“Debian 中的 LLM 使用”的决议讨论于 2026 年 7 月 23 日至 8 月 13 日在 debian-vote 上进行,并产生了 8 项提案,每项提案均来自不同的开发者:
- 通过《社会契约》禁止向 Debian 贡献 LLM 生成的内容
- 在满足条件的情况下允许 AI 辅助贡献
- 在实际可行的范围内拒绝使用 LLM,并更新《行为准则》
- 接受将 AI 用于 Debian 专项工作的贡献
- 负责任地使用生成式 AI
- 对生成式 AI 采取谨慎态度
- Debian 由人类创建
- 避免使用 LLM:气候破坏不可接受
其中第 1 项提案通过修改《社会契约》发挥作用,因此相对于默认选项需要获得 3:1 的多数。其余 7 项提案只需要简单多数。投票于 2026 年 8 月 15 日开始,并于 2026 年 8 月 28 日结束。
本文不预测结果,也不声称任何投票结论。投票结束后,秘书会在Debian 投票页面发布包含完整两两比较矩阵的计票结果;该页面是唯一值得引用的来源。更早的一项提案“对人工智能(AI)模型的 DFSG 解释”在 2025 年期间、进入投票前被撤回。撤回本身也是流程的一部分:DFSG 指 Debian 自由软件指南;如果提案尚未准备就绪,提出者可以将其撤回。更广泛的争论并不只存在于 Debian,其他项目也在通过截然不同的途径制定各自关于 AI 辅助贡献的政策。
选择服务器发行版时,这意味着什么
直白地比较这两种决策模式。
在 Debian 中,政策变更必须先成为公开文档,然后才会成为政策。您可以在提案发布当天阅读它,观察不同方案逐一出现,查看发起人的姓名,了解最早何时可以进行表决,并在表决后阅读计票结果。代价是速度较慢。每次表决都经历了数周讨论,而 init 系统问题则历时5年,并经过2次决议,才形成稳定结论。
在 Ubuntu 中,方向由公司内部决定。Ubuntu 的治理页面介绍了 Community Council 和 Technical Board,并说明项目发起人 Mark Shuttleworth 会为这两个机构分别筛选候选人,并以“终身自封的仁慈独裁者”这一身份对两者分别拥有决定性投票权。结果是决策迅速。2014年2月14日,也就是 Debian 委员会选择 systemd 后3天,Shuttleworth 宣布 Ubuntu 将放弃 Upstart。Upstart 是 Canonical 自2006年以来编写并发布的 init 系统,Ubuntu 将转而采用 systemd。Debian 则通过委员会表决、2014年的1次 General Resolution 和2019年的另1次 General Resolution,最终作出了相同选择。
抽象地看,没有一种模式更好;它们会以不同方式失效。投票速度较慢,坚定的团体还可以在选民改变想法前,不断将同一个问题重新提交表决。公司决策速度较快,但也可能在您未参与的战略会议上被推翻。您选择的是获取信息的渠道:可以订阅的公开邮件列表,还是在发布当天阅读的版本公告。
日常使用中,您感受到的差异主要来自发布政策,而不是投票,因此实际需要继续了解的是 Debian 在服务器上的 stable、testing 和 unstable 软件仓库。如果您正在为新服务器权衡这两个发行版系列,治理方式只是多个考量因素之一;Debian 和 Ubuntu 分裂的经过介绍了其余背景,而为 VPS 选择操作系统则将这个选择与其他候选项放在一起比较。这种模式由来已久,发行版系列分支的方式说明,导致分叉的往往是治理方式,而不是代码。
如何自行阅读投票结果
您无需是 Developer 也能完成以下操作。所有信息都集中在4个位置:
- https://www.debian.org/vote/中的投票索引按年份列出每项决议,包括已撤回的决议。
- 每个投票页面列出提案、提案发起人的姓名、讨论和投票日期,以及每个选项所需的多数票。
- 每个结果页面都显示两两比较矩阵和计算过程。法定人数行的格式类似于
Option 1 Reached quorum: 307 > 47.6943392867539。 - debian-vote 和 debian-devel-announce 归档中保存了形成各选项的讨论依据。
宪章本身位于 https://www.debian.org/devel/constitution.。附录 A 介绍投票规则;如果某项结果看起来令人意外,应阅读这一部分。
FAQ
谁可以参与 Debian General Resolution 投票?
Debian Developers,即通过 Debian New Member 流程获准加入的项目成员。大约有 1000 人,其中包括不维护任何软件包、但为项目承担其他工作的成员。尚未加入项目的贡献者、没有成员资格的软件包维护者和用户都不会收到选票。投票权属于个人成员,因此雇主不占有席位,也不拥有一组投票权。
如果“以上都不是”赢得 General Resolution,会发生什么?
不会采纳任何提案,问题会返回邮件列表。默认选项会出现在每张选票上,不能撤回,同时也是另外两项规则的基准:未获得足够法定人数票、且排名高于默认选项的选项会被淘汰;未按规定比例击败默认选项的选项也会被淘汰。因此,需要 3:1 多数的提案必须以 3 比 1 击败“以上都不是”,其竞争提案不参与这一比较。
General Resolution 可以推翻 Technical Committee 或 Project Leader 的决定吗?
可以,Debian Constitution 对两种情况规定了不同的门槛。推翻 Project Leader 或 Delegate 获授权作出的决定,需要简单多数。推翻 Technical Committee 的决定,需要 2:1 多数。修改 Debian Constitution 或 Social Contract 等基础文件,需要 3:1 多数。2014 年 11 月,项目就是否推翻委员会关于 init systems 的决定进行表决,最终没有推翻,因为“无需 General Resolution”这一选项赢得了投票。
General Resolution 从提案到结果需要多长时间?
在没有异常情况时,大约需要 1 个月。讨论至少持续 2 周,最多持续 3 周。Project Secretary 随后会发布选票,并在讨论结束后 7 天内发起投票。近期的投票期持续了 2 周。2026 年关于 LLM 使用的 resolution 展示了典型流程:讨论时间为 2026 年 7 月 23 日至 2026 年 8 月 13 日,投票时间为 2026 年 8 月 15 日至 2026 年 8 月 28 日。