File: policy-process.sgml

package info (click to toggle)
debian-policy 3.7.2.2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,280 kB
  • ctags: 37
  • sloc: xml: 727; makefile: 167; sh: 93
file content (344 lines) | stat: -rw-r--r-- 13,830 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
<!doctype debiandoc public "-//DebianDoc//DTD DebianDoc//EN">
<debiandoc>
  <book>
    <titlepag>
      <title>A mechanism for updating Debian Policy documents</title>
      <author>
	<name>Manoj Srivastava</name>
        <email>srivasta@debian.org</email>
      </author>
      <version>$Revision: 1.7 $</version>
      <copyright>
        <copyrightsummary>Copyright &copy; 2000 by Manoj Srivastava. 
        </copyrightsummary>
        <p>
          You are given permission to redistribute this document
          and/or modify it under the terms of the GNU General Public
          License as published by the Free Software Foundation; either
          version 2, or (at your option) any later version.</p>
        <p>
          On Debian GNU/Linux systems, the complete text of the GNU
          General Public License can be found in
          <tt>/usr/share/common-licenses/GPL</tt>. </p>
      </copyright>
    </titlepag>
    <toc detail="sect">
    <chapt>
      <heading>Introduction, and Administrivia</heading>
      <p>
        This document documents the current practice followed in updating
        Debian Policy documents. This mechanism has been designed for
        dealing with policy changes that are light
	weight and can be decided upon within the policy group, by
	near consensus.  In most day-to-day cases, the Policy group
	should and must be able to conduct Policy discussions and
	amendments without the intervention of the Technical Committee
	or other Constitutional issues.  Only in cases of extreme
	dispute (formal objections) should the intervention of
	Constitutional bodies come into play. In any other situation,
	the Policy group should be able to conduct business
	unfettered. A consequence of this goal is that formal
	objections should not be used lightly, else this mechanism
	shall be ineffective.
      </p>
      <p>
	It should be noted that the team responsible for the task of
	updating policy does not act as author or editor of Policy
	itself, that is the task of the Debian Policy mailing list.
      </p>
      <p>
	<em>In the following, the term developer refers to registered
	  Debian developers.</em>
      </p>
      <sect>
	<heading>Guidelines for policy change proposals</heading>
	<p>
	  Policy does not document all existing practice.  It only
	  incorporates a minimal ruleset that is required for systems
	  integration (usually selecting one branch from several
	  equally viable technical options). It is not a best
	  practices document.
	</p>
	<p>
	  Policy changes under this procedure also should almost never
	  (unless directed by the tech-ctte, and perhaps the DPL)
	  cause a change that would make a significant chunk of
	  packages instantly buggy; for such changes, it is better to
	  implement a gradual transition plan, allowing for partial
	  upgrades (and perhaps using release goals as
	  motivators). Part of the rationale for this is common sense;
	  a global change, in the past, has taken time, and having
	  either a large number of RC bugs, or ignoring a large number
	  of bugs that would otherwise be RC seems silly; and, anyway,
	  there are concerns that the policy group does not really
	  have the power to change policy drastically. This is the
	  basis of the maxim <em>policy shall not be used as a stick to beat
            developers with.</em>
	</p>

	<p>
	  Nor does policy <em>always</em> document only existing
	  practices.  What that oft misquoted statement refers to was
	  a part of a larger thesis that is meant to suggest that
	  policy is not the place for testing out design; if a
	  complicated technical proposal is to be made into policy, it
	  should be independently implemented, have all the kinks
	  worked out, and then have that working model be implemented
	  as policy.  Having to change policy back and forth while a
	  design is being worked out needs be avoided.
	</p>

      </sect>
  
    </chapt>
    <chapt>
      <heading>Archives and Personnel</heading>
      <sect>
	<heading>The policy maintainers team</heading>
	<p>
	  The policy document is maintained by a group of people who have
	  access to the CVS repository for the Policy documents;
	  however, this set of people behave more like maintainers
	  rather than authors/editors. This group does not create
	  policy, nor does it exercise editorial control, Policy is
	  decided "upstream".  The group that decides on policy should
	  be the group of developers on the debian-policy mailing
	  list, which is how it was always done; so the group of
	  policy maintainers have no real power over policy.
	</p>
	<p>
	  Since the policy maintainers have no special powers, there
	  is no restriction of their participation the discussion. It
	  is preferable to have at least 4-5 people on the job,
	  perhaps closer to 8, so that policy does not languish when
	  any maintainer goes missing (we do need vacations, you know,
	  once in a while), and since little creative power is vested
	  in the maintainers, we do not need a central control. And
	  the BTS can be used as a record of the action decided upon
	  even if all maintainers are away at some time.
	</p>
      </sect>
      <sect>
	<heading>The CVS Repository</heading>
	<p>
	  There is a repository set up on <tt>cvs.debian.org</tt> for
	  this, and the people on the policy maintainer team have
	  write access to it. The Debian policy mailing list gets
	  copies of all the CVS commit notices.
	</p>
      </sect>
    </chapt>
    <chapt>
      <heading>Procedures and Processes</heading>

      <sect>
	<heading>Initiating discussions</heading>
	<p>
	  Unlike before, when the policy editor gathered in issues
	  which, in his view, were candidates for inclusion in policy,
	  any one can raise an issue in the mailing list. It is
	  advisable, but by no means mandatory, that the proposer
	  tries an idea out on the mailing list, which can help flesh
	  out details rapidly, and test the sentiment and the
	  collective wisdom of the list. Discussion may be initiated by
	  any member of the list. 
	</p>
	<p>
	  Once the proposer is satisfied that the proposal has merit
	  (with or without trying the waters on the list), the
	  proposer should file a <em>wishlist</em> bug against the
	  debian-policy package. This stage can be initiated by any
	  member of the list.
	</p>
      </sect>
      <sect>
	<heading>Creating a proposal</heading>

	<p>
	  Any Debian developer can create a proposal by retitling the
	  wishlist bug in the BTS to have the subject of the form
	  <strong>"[PROPOSED] ..."</strong> or
	  <strong>"[PROPOSAL] ..."</strong>. (Note: The developer may
	  coalesce these steps into one by directly filing a
	  <em>wishlist</em> bug with the proper subject format).
	</p>
	<p>
	  This is the pre-discussion period, when the idea is kicked
	  around, and polished. There is no preset time limit, but at
	  some point, if it is stalled, the bug should be closed. A
	  suggested time period is 6 months, since if the
          proposal has had no action in that period, it is very likely
          dead. If six months have actually passed, the bug should be
          retitled <strong>"[OLD PROPOSAL] ..."</strong>, and have the
          severity set to fixed. The maintainers shall flush out old
          proposals after a sufficiently long period of time has
	  elapsed (certainly more than a year or so after the initial
	  proposal).
	</p>
	<p>
	  Developers may second the issue by emailing a message
	  containing the text "seconded" to the proposal in the
	  BTS. Only registered Debian developers may second proposals.
	</p>
      </sect>
      <sect>
	<heading>Creating an Amendment</heading>
	<p>
	  When a proposal in the BTS has acquired two seconds (apart
	  from the proposer), it becomes a formal amendment. The bug
	  severity is raised to "normal" and the bug is retitled to
	  <strong>"[AMENDMENT DD/MM/YYYY] ..."</strong>.  
	</p>
	<p>
	  The rationale behind the requirement for seconders is that
	  it would<enumlist>
	    <item>
	      <p>
		Encourage people to test the waters on the policy
		mailing list, and this could help create an proposal
		with a better chance of success</p>
	    </item>
	    <item>
	      <p>
		Prevent frivolous or ill conceived proposals from
		wasting people's time (if the proposal does not even
		convince two developers, surely this is not ready for
		inclusion in Policy?)</p>
	    </item>
	  </enumlist>
	</p>
	<p>
	  The whole discussion process is meant to be lightweight; if
	  you wish the proposals to be amended, talk to the proposer,
	  and get the amendment in. Or else, post an alternative, and
	  let the  group decide which one is better.
	</p>
	<p>
	  If the process gets very contentious, and needs something
	  like votes on amendments and withdrawal of proposal, then
	  this is not the correct forum for this, and the procedures
	  outlined in the constitution should be followed. Note that
	  only non-technical issues can be resolved using the general
	  resolution protocol; technical issues would hopefully be
	  resolved in the group itself, or the technical committee can
	  be called upon to render a decision.
	</p>
	<p>
	  This document is not supposed to supplant the processes
	  outlined in the constitution, nor is it intended to run
	  around them.
	</p>
      </sect>

      <sect>
	<heading>Final disposition of the proposal</heading>
	<sect1>
	  <heading>An accepted amendment</heading>
	  <p>
	    If the amendment is accepted, the bug is marked
	    forwarded and retitled
	    <strong>"[ACCEPTED DD/MM/YYYY] ..."</strong>.
	  </p>
	</sect1>
	<sect1>
	  <heading>An amendment that stalls or is rejected</heading>
	  <p>
	    If the amendment is stalls, or otherwise fails to pass, it
	    is retitled as <strong>"[REJECTED DD/MM/YYYY] ..."</strong>
	    and has its severity set to <tt>fixed</tt>. 
	  </p>
	</sect1>
      </sect>


      <sect>
	<heading>Deadlines for Tabling Discussions</heading>
	<p>
	  It has been observed in the past that discussions on the
	  mailing list tend to devolve into endless arguments. In
	  order to get away from the debating society aspect, at the
	  time of the formal proposal, a deadline can be set (probably
	  by the proposer, since they are likely to have an idea how
	  contentious the discussion is likely to be) for ending
	  discussion on the issue, which should rarely be less than 10
	  days, and typically two weeks or so. I hope that a hard
	  minimum period need not be set, and that the proposers would
	  be reasonable, and not set too short or too long a time for
	  discussion.
	</p>
	<p>
	  If a consensus is reached by the policy group, then the
	  maintainers shall enter the amendment into the Policy
	  document, announce the inclusion in the periodic report, and
	  release a new version.</p>
	<sect1>
	  <heading>Extensions to Deadlines?</heading>
	  <p>
	    If a deadline is approaching, and the discussion is almost
	    concluded (in other words, it has not reached an impasse),
	    and the consensus on the policy group is that an extension
	    of a week would resolve the issues better, a one-time
	    extension could be granted. Care should be taken in
	    exercising this option, since abusing this would merely
	    postpone closures. Anything that is still not resolved is
	    too contentious not to be sent to the full set of
	    developers in a general resolution proposal.
	  </p>
	</sect1>
      </sect>
      <sect>
	<heading>Deadlock resolution</heading>
	<p>
	  Formerly, arriving at a consensus was the only way to amend
	  Policy. That worked well when the Project was small,
	  however, we have apparently grown out of that phase, and even
	  the policy mailing list has grown more fractious than in the
	  days of yore. We now need a formal process of deadlock
	  resolution, and we need to recognize that on non-technical
	  issues a small minority should not always hold up deployment
	  of policy.</p>
	<p>
	  If a consensus is not reached, (or if someone submits a
	  formal objection to the proposal) and the end of the
	  discussion period is near, then one is faced with a dilemma.
	</p>
	<sect1>
	  <heading>Impasse on Technical Issues</heading>
	  <p>
	    On technical issues, popularity is a bad way of arriving
	    at conclusions. Hopefully, the policy group would arrive
	    at a consensus on their own. If that fails to happen, or
	    if there is a formal objection raised on the issue, and
	    the issue is a technical one, then the technical committee
	    may be consulted. This should be a rare occurrence. </p>
	</sect1>
	<sect1>
	  <heading>Non Technical and Subjective Disagreements</heading>
	  <p>
	    However, if the issue is non-technical and subjective,
	    then a vote of the developers may be taken (USENET voting
	    software should be available all over the place, right?),
	    and a super-majority of 75% is needed to carry the
	    amendment through. Failing the super-majority, the issue
	    should be shelved. It may be re-submitted as a a fresh
	    proposal after a suitable cooling off period (which should
	    be no less than a month, typically three months being
	    desirable, unless there are significant new
	    developments). (Demote bug, if the BTS is being used)</p>
	  <p>
	    If the issue raised is especially contentious, or is
	    deemed to be suitable for review by the full set of
	    developers, then four or more developers can call for a
	    hold on the proposal, and move to send the proposal to the
	    larger developer body as a General
	    Resolution. <strong>Note:</strong> The constitution may
	    have additional requirements for submitting a General
	    Resolution, for example, a minimum number of seconders,
	    etc.
	  </p>
	</sect1>
      </sect>
    </chapt>

  </book>
</debiandoc>