General Resolution: Sarge Release Schedule in view of GR 2004-003

Time Line

Proposal and amendment Wednesday, April 28th, 2004 Wednesday, May 26th, 2004
Discussion Period: Wednesday, May 26th, 23:59:59 UTC, 2004 Friday, June 18th, 23:59:59 UTC, 2004
Voting Period Friday, June 18th, 23:59:59 UTC, 2004 Friday, July 2nd, 23:59:59 UTC, 2004

Proposal A Proposer

Steve Langasek [vorlon@debian.org]

Proposal A Seconds

  1. Joe Wreschnig [piman@debian.org]
  2. Stephen Frost [sfrost@debian.org]
  3. Scott Dier [sdier@debian.org]
  4. Chad Walstrom [chewie@debian.org]
  5. Pierre Machard [pmachard@debian.org]
  6. Cesar Mendoza [mendoza@debian.org]
  7. Javier Fernàndez-Sanguino Peña [jfs@debian.org]
  8. Guido Trotter [ultrotter@debian.org]
  9. Francesco P. Lovergine [frankie@debian.org]
  10. Xavier Roche [xavier@debian.org]
  11. Andre Luis Lopes [andrelop@debian.org]

Proposal B Proposer

Duncan Findlay [duncf@debian.org]

Proposal B Seconds

  1. Xavier Roche [xavier@debian.org]
  2. Daniel Burrows [dburrows@debian.org]
  3. Bas Zoetekouw [bas@debian.org]
  4. Remi Vanicat [vanicat@debian.org]
  5. Roland Stigge [stigge@debian.org]
  6. Wouter Verhelst [wouter@debian.org]

Proposal C Proposer

Colin Watson [cjwatson@debian.org]

Proposal C Seconds

  1. Guido Trotter [ultrotter@debian.org]
  2. Michael Banck [mbanck@debian.org]
  3. Philippe Troin [phil@debian.org]
  4. Osamu Aoki [osamu@debian.org]
  5. Josip Rodin [joy@debian.org]
  6. Bas Zoetekouw [bas@debian.org]
  7. Frank Küster [frank@debian.org]
  8. Henrique de Moraes Holschuh [hmh@debian.org]

Proposal D Proposer

Craig Sanders [cas@debian.org]

Proposal D Seconds

  1. Xavier Roche [xavier@debian.org]
  2. Raphaël Hertzog [hertzog@debian.org]
  3. Hamish Moffatt [hamish@debian.org]
  4. Wouter Verhelst [wouter@debian.org]
  5. Osamu Aoki [osamu@debian.org]
  6. Davide G. M. Salvetti [salve@debian.org]
  7. Raul Miller [moth@debian.org]
  8. David N. Welton [davidw@debian.org]
  9. Andreas Barth [aba@debian.org]
  10. Theodore Ts'o [tytso@debian.org]

Proposal E Proposer

Manoj Srivastava [srivasta@debian.org]

Proposal E Seconds

  1. Andreas Barth [aba@debian.org]
  2. Martin Schulze [joey@debian.org]
  3. David B. Harris [dbharris@debian.org]
  4. Remi Vanicat [vanicat@debian.org]
  5. Andreas Metzler [ametzler@debian.org]
  6. Lukas Geyer [lukas@debian.org]
  7. Gunnar Wolf [gwolf@debian.org]
  8. Kyle McMartin [kyle@debian.org]
  9. Simon Law [sfllaw@debian.org]
  10. Cesar Mendoza [mendoza@debian.org]
  11. Greg T. Norris [adric@debian.org]
  12. Raul Miller [moth@debian.org]
  13. Aaron M. Ucko [ucko@debian.org]
  14. Joerg Wendland [joergland@debian.org]
  15. Daniel Burrows [dburrows@debian.org]
  16. Thomas Bushnell, BSG [tb@debian.org]

Proposal F Proposer

Andrew Suffield [asuffield@debian.org]

Proposal F Seconds

  1. Graham Wilson [graham@debian.org]
  2. Göran Weinholt [weinholt@debian.org]
  3. Guillem Jover [guillem@debian.org]
  4. Robert Millan [rmh@debian.org]
  5. Branden Robinson [branden@debian.org]

Proposal A

Puts the recent changes made in the social contract in abeyance for a fixed time period. (Choice 1 on the ballot)

The actual text of the GR is:

The Debian Project,

affirming its commitment to principles of freeness for all works it distributes,

but recognizing that changing the Social Contract today would have grave consequences for the upcoming stable release, a fact which does not serve our goals or the interests of our users,

hereby resolves:

  1. that the amendments to the Social Contract contained within the General Resolution Editorial Amendments To The Social Contract (2004 vote 003) be immediately rescinded;
  2. that these amendments, which have already been ratified by the Debian Project, will be reinstated effective as of September 1, 2004 without further cause for deliberation.

Rationale

As a seconder of the earlier GR, I certainly do consider these amendments to be editorial in nature, as they are consistent with my understanding of the existing Social Contract and I believe these clarifications are beneficial in the long term, because the ambiguities in the Social Contract led mostly to sterile arguments about whether the DFSG should apply to works we distribute that are not programs.

It's just the timing that sucks.

In talking with the Release Manager, it is apparent to me that his understanding of the previous wording of the Social Contract, while different from mine, is internally consistent; and that attempting to persuade him that a different interpretation should have held would do nothing to move the release forward, as I cannot in good conscience argue that he should be less principled in the enforcement of the Social Contract than he has been to date. I am therefore putting forth this proposal because my *own* principles hold that releasing sarge this year with the same blemishes that have existed since the beginning is better than releasing a sarge next year that has no non-DFSG content.

A fixed four month period should (based on current projections) give us ample time to release sarge, while not allowing so much time that maintainers are left to think that resolving the status of non-program components of Debian vis à vis the DFSG is not an imminent concern.

Since this modifies the Social Contract, this requires a 3:1 majority to pass.

Proposal B

Puts the recent changes made in the social contract in abeyance for the next release of Debian. (Choice 2 on the ballot)

The actual text of the GR is:

The Debian Project,

affirming its commitment to principles of freeness for all works it distributes,

but recognizing that changing the Social Contract today would have grave consequences for the upcoming stable release, a fact which does not serve our goals or the interests of our users,

hereby resolves:

  1. that the amendments to the Social Contract contained within the General Resolution Editorial Amendments To The Social Contract (2004 vote 003) be immediately rescinded;
  2. that these amendments, which have already been ratified by the Debian Project, will be reinstated immediately after the release of the next stable version of Debian, without further cause for deliberation.

Rationale

While a four month period should be enough time to release sarge, without this amendment, we leave open the possibility that we do not release in time and must repeat this process again. I think it's best to declare explicitly how long this exception should remain in effect rather than assume that we have picked a big enough window. Although on the downside, it relieves some pressure to release sarge soon, but it also prevents us from rushing to release by September 1 which may result in an inferior product.

I really hope that this amendment is not needed (i.e. we release by September 1 anyways), but I think we should allow for the worst, just in case.

Since this modifies the Social Contract, this requires a 3:1 majority to pass.

Proposal C

Puts in an apology for the current release, code named sarge, for not following the social contract. (Choice 3 on the ballot)

The actual text of the GR is:

The Debian Project,

affirming its commitment to principles of freeness for all works it distributes,

but recognizing that changing the Social Contract today would have grave consequences for the upcoming stable release, a fact which does not serve our goals or the interests of our users,

hereby resolves:

  1. that the following text be appended to the first clause of the Social Contract:

    We apologize that the current state of some of our documentation and kernel drivers with binary-only firmware does not live up to this part of our Social Contract. While Debian 3.1 (codenamed sarge) will not meet this standard in those areas, we promise to rectify this in the following release.

    The first clause of the Social Contract as amended will read as follows:

    Debian will remain 100% free

    We provide the guidelines that we use to determine if a work is "free" in the document entitled "The Debian Free Software Guidelines". We promise that the Debian system and all its components will be free according to these guidelines. We will support people who create or use both free and non-free works on Debian. We will never make the system require the use of a non-free component.

    We apologize that the current state of some of our documentation and kernel drivers with binary-only firmware does not live up to this part of our Social Contract. While Debian 3.1 (codenamed sarge) will not meet this standard in those areas, we promise to rectify this in the following release.

  2. that the paragraph added to the Social Contract by this Resolution shall be removed from the Social Contract upon the next full release of Debian after Debian 3.1 (codenamed sarge), without further cause for deliberation.

Rationale

I largely concur with Steve's rationale above. However, having amended the Social Contract already in a way that many of our developers feel best expresses their principles yet being quite some distance away from being able to meet those standards, I feel that the most honest approach is to note in the Social Contract itself that we apologize for not living up to those principles just yet. We can then get on with releasing something that's the best we can do in the time we need to satisfy those of our userbase who are frustrated with the age of the previous release, and start removing or rewriting whatever's necessary after that.

As well as being, in my opinion, more honest, amending the Social Contract rather than resolving to ignore it means that the Release Manager will no longer be in the position of either having to violate the Social Contract or else having to postpone a full Debian release for an as yet indeterminate period of time. (This also applies to Steve's original proposal.)

The Social Contract as amended here does not require the removal of non-free documentation or kernel drivers with binary-only firmware from sarge or its point releases; but it restores the full force of version 1.1 with effect from sarge+1. It does not excuse any other DFSG violations in sarge. I feel that we already have plenty of incentive to release sarge in a short timeframe, and that we're well on the way to doing so.

Since this modifies the Social Contract, this requires a 3:1 majority to pass.

Proposal D

Rescinds the previous GR, reverting to the version 1.0 of the social contract. (Choice 4 on the ballot)

This amendment deletes everything but clause 1 of proposal A. The actual text of the GR is:

The Debian Project,
hereby resolves:

  1. that the amendments to the Social Contract contained within the General Resolution Editorial Amendments To The Social Contract (2004 vote 003) be immediately rescinded.

Rationale

  1. People can make mistake and should be allowed to correct it.
  2. This deserves to be an option on the ballot.
  3. Full impact assessment by Anthony Towns revealed the hidden issues.
  4. We need to get the sarge out the door ASAP.
  5. All other proposed GRs to get the sarge out are better than the situation created by GR (2004-003). But they still seem to put heavy limitations on the post-sarge releases. This proposal solves them for good.
  6. Title of GR (2004-003) was, at least, "misleading" although it may not have been intentionally deceptive.
  7. Change of SC by GR (2004-003) was not clarification but a radical change which subverts the original intent of the old SC.
  8. GR (2004-003) may have been incomplete.
  9. Rescinding GR (2004-003) will enable useful data, font, documentation, and firmware to be included in main. This will make Debian useful distribution.
  10. Rescinding GR (2004-003) will clarify and affirm that the correct interpretation of the word "software" in old SC does not include things such as data, font, documentation, and firmware.
  11. Historical document has its own value and even good willed "editorial change" may not be even desirable. (Some of us will also support other proposals for the GR if they address our concern.)
  12. Obscure arrangement for distribution required by the GR (2004-003) may marginalize Debian only for "Holier Than Stallman", i.e., the fringe fanatics. We do not want to be seen chasing the cause without thinking its consequence by doing this.
  13. No apologetic statement in SC.
  14. We had enough discussion on this subject and some of us are sick of it.

Since this modifies the Social Contract, this requires a 3:1 majority to pass.

Proposal E

Creates a foundation document to provide guidelines for handling changes in foundation documents. (Choice 5 on the ballot)

The actual text of the GR is:

I propose we adopt a foundation document that tries to provide guidance and explanation for the transitions required whenever a change occurs in a foundation document like the social contract, and also provides specific remedies to the current dilemma that we find ourself in. This GR proposal is related to the GR currently in discussion for deferring of the changes made in GR 2004_003, and would be on the same ballot, and is an alternative to the GR currently in discussion.

I hereby propose that we amend the constitution to add to the list of foundation documents the document attached in this proposal, titled Transition Guide. The context diff follows.


   1. A Foundation Document is a document or statement regarded
      as critical to the Project's mission and purposes.
   2. The Foundation Documents are the works entitled Debian
-     Social Contract and Debian Free Software Guidelines.
+     Social Contract, transition Guide and
+     Debian Free Software Guidelines.
   3. A Foundation Document requires a 3:1 majority for its
      supersession.  New Foundation Documents are issued and
      existing ones withdrawn by amending the list of Foundation
      Documents in this constitution.
             

It is further resolved that the final paragraph of the Transition Guide with specific references to the forthcoming release (code named Sarge) shall be removed from the Transition Guide upon the next full release of Debian after Debian 3.1 (code named Sarge), without further cause for deliberation.

It is resolved that the full text of the proposed foundation document be the following:

Transition Guide

A working guide to achieve the transition for changes in Foundation documents
containing explanations and Rationale, and defining
guidelines for future transitions

The Social Contract represents the core commitments of the Project. The Social Contract leaves its marks in many ways; it is deeply intertwined with all parts of the Project. Potentially, any change to the Social Contract has major ramifications, and may require a period of potentially deep changes to the roots of the Project before it can come into compliance with the changed Contract.

Meeting our commitments as described in the Social Contract is an ongoing process. Whenever we change these commitments, we may need an interval of time before we can approach compliance. Unless we shut down the Project completely - abandoning users and our developers - the regular activities of the Project must continue while we work towards compliance.

There is precedent for a gap between ratifying a change to the foundation documents of the Project and implementing dictates of that document; when the Project first accepted the Social Contract and the Debian Free Software Guidelines, there was an interval before we came into compliance with those then-new documents. Indeed, a minor version was released just days after the Debian Free Software Guidelines were accepted, and this release by no means complied with the new commitments.

We also continued to support older non-complying releases, and did not make them unavailable to our users.

The binding principle here is that we have to balance the needs of our users and the need to make Debian strictly free. As one developer has said:

In my opinion, the needs of the free software community take precedence in the context of adopting new packages, in the setting of release goals, in our choices about infrastructure and philosophy, and of course in the context of any development work we do.

In my opinion, the needs of our users take precedence in the context of security fixes, in the context of support for packages and systems we've released, and in the context of the quality of our work.

We, the Debian Project, do so affirm this judgment. While we are working towards complying with a change in the goals or identity of the Project, or towards compliance with any change to a foundation document, the needs of our users will be catered to. This may mean that for a limited time, Debian will not be compliant with the new Social Contract.

Whenever a change to our foundation documents takes place, the activities required to provide ongoing and proactive support for the Debian user community shall continue. This includes, but is not necessarily limited to, providing security updates for previously-released versions of Debian, providing point-release updates to previously-released versions of Debian, preparing for the next (compliant) release of Debian, actually releasing the current non-compliant version of Debian if such a release is imminent (as well as any further updates to that version of Debian), and providing all the Project's infrastructure such as bug-tracking and mailing lists.

In the specific case of General Resolution 2004_003, since that release currently in preparation, code named "Sarge", is very close to release, and the previously released version is quite out of date, our commitment to our users dictates that the "Sarge" release should go on as planned - even while we are in the process of reaching compliance with the new Social Contract. This exemption for "Sarge" applies to security releases and point releases as well.

Rationale

My intent was not just to find a way for us to allow to release Sarge, it was to create a guideline to help ease us through major changes in something like the Social contract, or the constitution. The fact that a generic transition guide may help us also release Sarge soon is a nice side effect.

It has been suggested that transitioning ought to be handled in the original proposal itself, and yes, that is a good idea. But foresight is weak, compared to 8/20 hind sight, and there may be unforeseen consequences of a proposed change that were not evident while drafting the proposal.

Nothing is perfect. I would much rather we also had a process defined to pick up the pieces if the before-the-fact transition plan blew up in our face; this is way better than relying on perfect foresight in transition plans.

The other issue addressed in the proposal is one of choosing between two different requirements of the social contract; and how to balance these different requirements when some of these requirements are changed.

Since this modifies the Constitution, this requires a 3:1 majority to pass.

Proposal F

Reaffirms the current Social Contract, and not compromise on future releases.

The actual text of the GR is:

This amendment replaces the full text of the proposal with:

The Debian Project resolves that it will not compromise on freedom, and will never knowingly issue another release (excluding point updates to stable releases) that contains anything in the main or contrib sections which is not free software according to the DFSG.

Quorum

With 909 developers, we have:

 Current Developer Count = 909
 Q ( sqrt(#devel) / 2 ) = 15.0748134316813
 K min(5, Q )           = 5
 Quorum  (3 x Q )       = 45.224440295044

Option 1 Reached quorum: 293> 45.224440295044
Option 2 Reached quorum: 339> 45.224440295044
Option 3 Reached quorum: 270> 45.224440295044
Option 4 Reached quorum: 255> 45.224440295044
Option 5 Reached quorum: 258> 45.224440295044
Option 6 Reached quorum: 155> 45.224440295044
           

Data and Statistics

Some statistics are being gathered about ballots and acknowledgements periodically during the voting period. Additionally, the list of people who have voted is available. The tally sheet is also present (Note that while the vote is in progress it is a dummy tally sheet).

Majority Requirement

All proposals, except F, require a 3:1 majority, since they modify either the Social contract, or the Debian Constitution, both foundation documents. Proposal F does not do so, and has a simple 1:1 majority requirement.

Option 1 passes Majority.               3.756 (293/78)> 3
Option 2 passes Majority.               7.533 (339/45)> 3
Dropping Option 3 because of Majority.  2.903 (270/93) <= 3
Dropping Option 4 because of Majority.  2.318 (255/110) <= 3
Dropping Option 5 because of Majority.  2.434 (258/106) <= 3
Dropping Option 6 because of Majority.  0.824 (155/188) <= 1
              

Outcome

The winner is: Option 2 Choice 2: Postpone changes until Sarge releases [needs 3:1]

Graphical rendering of the results

In the graph above, the pink colored options did not pass majority, the Blue is the winner. The Octagon is used for the options that did not beat the default. In the following table, tally[row x][col y] represents the votes that option x received over option y. A more detailed explanation of the beat matrix may help in understanding the table. For understanding the Condorcet method, the Wikipedia entry is fairly informative.

The Beat Matrix
  Option 1 Option 2 Option 3 Option 4 Option 5 Option 6 Option 7
Option 1   45 187 200 213 289 293
Option 2 301   271 257 273 322 339
Option 3 149 77   180 186 267 270
Option 4 160 122 174   181 239 255
Option 5 131 86 143 179   250 258
Option 6 65 55 74 116 83   155
Option 7 78 45 93 110 106 188  

Manoj Srivastava