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 © 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>
|