Debian General Resolutions: Settling Policy Debates
In the Debian Project, General Resolutions (GRs) serve as the ultimate democratic mechanism for resolving high-stakes technical, philosophical, and organizational disputes. Governed by the Debian Constitution, a General Resolution allows Debian Developers to bypass normal leadership hierarchies, overturn previous decisions, amend governing documents, or set project-wide policy when consensus cannot be reached through standard discussion. This article examines the procedural framework of General Resolutions, the voting mechanism used to reach a verdict, and their role in maintaining project unity during contentious debates.
The Role and Authority of a General Resolution
Debian operates under a formal constitution that distributes authority among various roles, including the Debian Project Leader (DPL), the Technical Committee (TC), and individual package maintainers. While day-to-day decisions rely on rough consensus and delegation, the collective body of Debian Developers retains ultimate sovereignty through a General Resolution.
A General Resolution has the power to:
- Amend the Debian Constitution.
- Issue non-binding statements of position or binding project policies.
- Overrule decisions made by the Debian Project Leader or the Technical Committee.
- Recall an elected Debian Project Leader.
Because a GR represents the direct vote of all registered Debian Developers, its outcome is legally and socially binding within the project, providing finality to debates that otherwise risk stalling development.
The GR Process: From Proposal to Vote
Initiating and executing a General Resolution follows a strict procedural timeline designed to encourage compromise and refine ballot options.
1. Proposal and Seconding
Any Debian Developer may propose a resolution on the project’s public discussion lists. To move forward, the proposal must gain formal support ("seconds") from a quorum of other developers—typically determined by the Debian Constitution based on the square root of the total number of developers.
2. Discussion and Amendments
Once seconded, a mandatory discussion period begins, lasting at least two weeks. During this window:
- Other developers can suggest amendments or alternative proposals.
- If an amendment gains sufficient seconds and is rejected by the original proposer, it is added to the final ballot as a competing option.
- The Debian Project Secretary oversees the wording to ensure it is unambiguous and constitutionally valid.
3. The Call for Votes
Following the discussion period, the Project Secretary issues a call for votes. The voting period lasts for two weeks, during which developers submit cryptographically signed (GPG) ballots via email.
The Voting Mechanism: Condorcet with the Schulze Method
Debian uses a preferential voting system known as the Schulze method (a type of Condorcet method) to determine the outcome. Rather than selecting a single choice, voters rank all ballot options in order of preference.
Key attributes of the system include:
- The "Further Discussion" Benchmark: Every GR ballot includes a default option: "Further Discussion." For any proposal to pass, it must defeat "Further Discussion" in a pairwise comparison, ensuring that the community actively favors change over the status quo.
- Supermajority Requirements: Standard resolutions require a simple majority over the default option. However, actions that modify the Debian Constitution or the Social Contract require a 3:1 supermajority to pass, preventing narrow majorities from altering fundamental values.
By evaluating preferences pairwise across all candidates, the Schulze method identifies the option that the broadest possible coalition finds acceptable, reducing the risk of tactical voting.
Historical Impact on Debian Policy
General Resolutions have historically settled some of the most divisive issues in free software history. Notable examples include:
- The Init System Debate: After years of contentious
arguments regarding the adoption of
systemdversus alternative init systems, multiple GRs were held to establish Debian’s policy regarding diversity of init systems and default configurations. - Non-Free Firmware in Installation Media: In 2022, Debian held a GR to determine whether installation images should include non-free firmware by default to support modern hardware, balancing the project's strict commitment to software freedom against user accessibility.
- Licensing and the Social Contract: GRs have been used to clarify Debian’s stance on software documentation licenses (such as the GNU Free Documentation License) and refine the Debian Free Software Guidelines (DFSG).
By channeling community division into a transparent, mathematically sound democratic process, General Resolutions allow Debian to resolve existential policy conflicts without fracturing the project into competing forks.