/[gentoo]/xml/htdocs/proj/en/glep/glep-0039.html
Gentoo

Contents of /xml/htdocs/proj/en/glep/glep-0039.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations) (download) (as text)
Thu Jan 25 03:26:26 2007 UTC (7 years, 11 months ago) by antarus
Branch: MAIN
Changes since 1.5: +3 -3 lines
File MIME type: text/html
Fix headers in all current gleps

1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <!--
5 This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6 PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7 to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8 -->
9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 39 -- An "old-school" metastructure proposal with "boot for being a slacker"</title>
13 <style type="text/css">
14
15 /*
16 :Author: David Goodger
17 :Contact: goodger@users.sourceforge.net
18 :date: $Date: 2006/10/10 20:25:14 $
19 :version: $Revision: 1.5 $
20 :copyright: This stylesheet has been placed in the public domain.
21
22 Default cascading style sheet for the PEP HTML output of Docutils.
23 */
24
25 .first {
26 margin-top: 0 }
27
28 .last {
29 margin-bottom: 0 }
30
31 .navigation {
32 width: 100% ;
33 background: #cc99ff ;
34 margin-top: 0px ;
35 margin-bottom: 0px }
36
37 .navigation .navicon {
38 width: 150px ;
39 height: 35px }
40
41 .navigation .textlinks {
42 padding-left: 1em ;
43 text-align: left }
44
45 .navigation td, .navigation th {
46 padding-left: 0em ;
47 padding-right: 0em ;
48 vertical-align: middle }
49
50 .rfc2822 {
51 margin-top: 0.5em ;
52 margin-left: 0.5em ;
53 margin-right: 0.5em ;
54 margin-bottom: 0em }
55
56 .rfc2822 td {
57 text-align: left }
58
59 .rfc2822 th.field-name {
60 text-align: right ;
61 font-family: sans-serif ;
62 padding-right: 0.5em ;
63 font-weight: bold ;
64 margin-bottom: 0em }
65
66 a.toc-backref {
67 text-decoration: none ;
68 color: black }
69
70 body {
71 margin: 0px ;
72 margin-bottom: 1em ;
73 padding: 0px }
74
75 dd {
76 margin-bottom: 0.5em }
77
78 div.section {
79 margin-left: 1em ;
80 margin-right: 1em ;
81 margin-bottom: 1.5em }
82
83 div.section div.section {
84 margin-left: 0em ;
85 margin-right: 0em ;
86 margin-top: 1.5em }
87
88 div.abstract {
89 margin: 2em 5em }
90
91 div.abstract p.topic-title {
92 font-weight: bold ;
93 text-align: center }
94
95 div.attention, div.caution, div.danger, div.error, div.hint,
96 div.important, div.note, div.tip, div.warning {
97 margin: 2em ;
98 border: medium outset ;
99 padding: 1em }
100
101 div.attention p.admonition-title, div.caution p.admonition-title,
102 div.danger p.admonition-title, div.error p.admonition-title,
103 div.warning p.admonition-title {
104 color: red ;
105 font-weight: bold ;
106 font-family: sans-serif }
107
108 div.hint p.admonition-title, div.important p.admonition-title,
109 div.note p.admonition-title, div.tip p.admonition-title {
110 font-weight: bold ;
111 font-family: sans-serif }
112
113 div.figure {
114 margin-left: 2em }
115
116 div.footer, div.header {
117 font-size: smaller }
118
119 div.footer {
120 margin-left: 1em ;
121 margin-right: 1em }
122
123 div.system-messages {
124 margin: 5em }
125
126 div.system-messages h1 {
127 color: red }
128
129 div.system-message {
130 border: medium outset ;
131 padding: 1em }
132
133 div.system-message p.system-message-title {
134 color: red ;
135 font-weight: bold }
136
137 div.topic {
138 margin: 2em }
139
140 h1 {
141 font-family: sans-serif ;
142 font-size: large }
143
144 h2 {
145 font-family: sans-serif ;
146 font-size: medium }
147
148 h3 {
149 font-family: sans-serif ;
150 font-size: small }
151
152 h4 {
153 font-family: sans-serif ;
154 font-style: italic ;
155 font-size: small }
156
157 h5 {
158 font-family: sans-serif;
159 font-size: x-small }
160
161 h6 {
162 font-family: sans-serif;
163 font-style: italic ;
164 font-size: x-small }
165
166 .section hr {
167 width: 75% }
168
169 ol.simple, ul.simple {
170 margin-bottom: 1em }
171
172 ol.arabic {
173 list-style: decimal }
174
175 ol.loweralpha {
176 list-style: lower-alpha }
177
178 ol.upperalpha {
179 list-style: upper-alpha }
180
181 ol.lowerroman {
182 list-style: lower-roman }
183
184 ol.upperroman {
185 list-style: upper-roman }
186
187 p.caption {
188 font-style: italic }
189
190 p.credits {
191 font-style: italic ;
192 font-size: smaller }
193
194 p.label {
195 white-space: nowrap }
196
197 p.topic-title {
198 font-family: sans-serif ;
199 font-weight: bold }
200
201 pre.line-block {
202 font-family: serif ;
203 font-size: 100% }
204
205 pre.literal-block, pre.doctest-block {
206 margin-left: 2em ;
207 margin-right: 2em ;
208 background-color: #eeeeee }
209
210 span.classifier {
211 font-family: sans-serif ;
212 font-style: oblique }
213
214 span.classifier-delimiter {
215 font-family: sans-serif ;
216 font-weight: bold }
217
218 span.interpreted {
219 font-family: sans-serif }
220
221 span.option-argument {
222 font-style: italic }
223
224 span.pre {
225 white-space: pre }
226
227 span.problematic {
228 color: red }
229
230 table {
231 margin-top: 0.5em ;
232 margin-bottom: 0.5em }
233
234 td, th {
235 padding-left: 0.5em ;
236 padding-right: 0.5em ;
237 vertical-align: top }
238
239 td.num {
240 text-align: right }
241
242 th.field-name {
243 font-weight: bold ;
244 text-align: left ;
245 white-space: nowrap }
246
247 h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248 font-size: 100% }
249
250 tt {
251 background-color: #eeeeee }
252
253 ul.auto-toc {
254 list-style-type: none }
255
256 </style>
257 </head>
258 <body bgcolor="white">
259 <table class="navigation" cellpadding="0" cellspacing="0"
260 width="100%" border="0">
261 <tr><td class="navicon" width="150" height="35">
262 <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263 <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264 border="0" width="150" height="35" /></a></td>
265 <td class="textlinks" align="left">
266 [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267 [<b><a href="http://www.gentoo.org/proj/en/glep/">GLEP Index</a></b>]
268 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0039.txt">GLEP Source</a></b>]
269 </td></tr></table>
270 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 <col class="field-name" />
272 <col class="field-body" />
273 <tbody valign="top">
274 <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">39</td>
275 </tr>
276 <tr class="field"><th class="field-name">Title:</th><td class="field-body">An &quot;old-school&quot; metastructure proposal with &quot;boot for being a slacker&quot;</td>
277 </tr>
278 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
279 </tr>
280 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0039.txt?cvsroot=gentoo">2006/02/09 21:53:54</a></td>
281 </tr>
282 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Grant Goodyear &lt;g2boojum&#32;&#97;t&#32;gentoo.org&gt;,
283 Ciaran McCreesh &lt;ciaranm&#32;&#97;t&#32;gentoo.org&gt;,</td>
284 </tr>
285 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td>
286 </tr>
287 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Informational</td>
288 </tr>
289 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
290 </tr>
291 <tr class="field"><th class="field-name">Created:</th><td class="field-body">01-Sep-2005</td>
292 </tr>
293 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">01-Sep-2005, 09-Feb-2006</td>
294 </tr>
295 </tbody>
296 </table>
297 <hr />
298 <div class="contents topic">
299 <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
300 <ul class="simple">
301 <li><a class="reference" href="#status" id="id2" name="id2">Status</a></li>
302 <li><a class="reference" href="#abstract" id="id3" name="id3">Abstract</a></li>
303 <li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li>
304 <li><a class="reference" href="#specification" id="id5" name="id5">Specification</a></li>
305 <li><a class="reference" href="#rationale" id="id6" name="id6">Rationale</a></li>
306 <li><a class="reference" href="#copyright" id="id7" name="id7">Copyright</a></li>
307 </ul>
308 </div>
309 <div class="section">
310 <h1><a class="toc-backref" href="#id2" id="status" name="status">Status</a></h1>
311 <p>Implemented. GLEP amended on 09 Feb 2006 to add the final bullet point to
312 list B in <a class="reference" href="#specification">Specification</a>.</p>
313 </div>
314 <div class="section">
315 <h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
316 <p>GLEP 4 is replaced with a new &quot;metastructure&quot; that retains established
317 projects (and makes new projects easier to create), but adds a new &quot;Gentoo
318 Council&quot; to handle global (cross-project) issues.</p>
319 </div>
320 <div class="section">
321 <h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
322 <p>The Fosdem and subsequent reform proposals shepherded by Koon are thorough,
323 extremely detailed, and somewhat complicated. They have a lot of good ideas.
324 For many who have been with Gentoo a long time, though, there's just something
325 about them that they don't really like. More than a few Gentoo devs are
326 almost entirely uninterested in metastructure as long as it doesn't get in
327 their way, and because the current proposals impose at least some order on our
328 unruly devs these proposals are guaranteed to &quot;get in the way&quot; to some degree.
329 For example, a frequent comment that has been heard is that many Gentoo devs
330 don't know who his/her manager (or project lead) is, which is a clear
331 indication that our current system is broken. The existing proposals solve
332 the problem by requiring that each dev belong to a project. Perhaps the part
333 that is broken, though, is the belief that every dev should have a manager.
334 The history of Gentoo is such that traditionally big advances have often been
335 implemented by a single or a small number of dedicated devs (thus our
336 long-standing tradition that devs have access to the entire tree), and surely
337 we do not want to make things harder (or less fun) for such people. So here's
338 a minimal proposal for those who remembers the &quot;good ol' days&quot; and thinks
339 things aren't really so different now.</p>
340 <p>Synopsis of the current system:</p>
341 <blockquote>
342 <ul class="simple">
343 <li>There are 13-15 top-level projects (TLPs). Top-level projects are
344 comprised of sub-projects, and the goal was that every Gentoo
345 project would be a sub-project of one of the TLPs. Supposedly each
346 dev therefore belongs to one or more TLPs.</li>
347 <li>Each TLP has at least a &quot;strategic&quot; manager, and potentially also an
348 &quot;operational&quot; manager. Only the strategic managers vote on global
349 Gentoo issues.</li>
350 <li>The managers of each TLP were appointed by drobbins, the other
351 TLP managers, or elected by their project members. These managers
352 have no set term.</li>
353 <li>Within each TLP the managers are responsible for making decisions
354 about the project, defining clear goals, roadmaps, and timelines
355 for the project, and solving problems that arise within the TLP
356 (see GLEP 4 for the specific list).</li>
357 <li>The strategic TLP managers are also responsible for deciding issues that
358 affect Gentoo across project lines. The primary mechanism for
359 handling global-scope issues is the managers' meetings.</li>
360 <li>Disciplinary action taken against erring devs is handled by the
361 &quot;devrel&quot; TLP, unless the dev is a strategic TLP manager. In that
362 case disciplinary action must be enacted by the other strategic TLP
363 managers.</li>
364 </ul>
365 </blockquote>
366 <p>Problems with the existing system:</p>
367 <ol class="arabic simple">
368 <li>The assumption that TLPs are complete is either incorrect (there
369 still is no &quot;server&quot; TLP) or just plain weird (but the lack of a
370 server TLP is technically okay because all devs who don't have an
371 obvious TLP belong to the &quot;base&quot; TLP by default).</li>
372 <li>There is nothing at all to ensure that project leads actually do
373 represent the devs they supposedly lead or satisfy their
374 responsibilities. Indeed, should a TLP manager go AWOL it is not at
375 all obvious how the situation should be resolved.</li>
376 <li>Nothing is being decided at global scope right now. Some TLP strategic
377 managers rarely attend the managers' meetings, and the managers as a
378 whole certainly are not providing any sort of global vision for
379 Gentoo right now.</li>
380 <li>Even if the strategic TLP managers were making global decisions for
381 Gentoo, the TLP structure is such that almost all devs fall under
382 only one or two TLPs. Thus voting on global issues is hardly
383 proportional, and thus many devs feel disenfranchised.</li>
384 <li>Regardless of whether or not it is justified, devrel is loathed by
385 many in its enforcement role.</li>
386 </ol>
387 <p>Here's a couple of additional problems identified by the current
388 metastructure reform proposals:</p>
389 <ol class="arabic simple" start="6">
390 <li>The current system has no mechanism for identifying either projects
391 or devs that have gone inactive.</li>
392 <li>Bugs that cut across projects often remain unresolved.</li>
393 <li>GLEPs often linger in an undetermined state.</li>
394 </ol>
395 </div>
396 <div class="section">
397 <h1><a class="toc-backref" href="#id5" id="specification" name="specification">Specification</a></h1>
398 <ol class="upperalpha">
399 <li><p class="first">A project is a group of developers working towards a goal (or a set
400 of goals).</p>
401 <blockquote>
402 <ul class="simple">
403 <li>A project exists if it has a web page at
404 www.g.o/proj/en/whatever that is maintained. (&quot;Maintained&quot; means
405 that the information on the page is factually correct and not
406 out-of-date.) If the webpage isn't maintained, it is presumed dead.</li>
407 <li>It may have one or many leads, and the leads are
408 selected by the members of the project. This selection must
409 occur at least once every 12 months, and may occur at any
410 time.</li>
411 <li>It may have zero or more sub-projects. Sub-projects are
412 just projects that provide some additional structure, and their
413 web pages are in the project's space.</li>
414 <li>Not everything (or everyone) needs a project.</li>
415 <li>Projects need not be long-term.</li>
416 <li>Projects may well conflict with other projects. That's okay.</li>
417 <li>Any dev may create a new project just by creating a new page
418 (or, more realistically, directory and page) in
419 <tt class="docutils literal"><span class="pre">gentoo/xml/htdocs/proj/en</span></tt>.</li>
420 </ul>
421 </blockquote>
422 </li>
423 <li><p class="first">Global issues will be decided by an elected Gentoo council.</p>
424 <blockquote>
425 <ul class="simple">
426 <li>There will be a set number of council members. (For the
427 first election that number was set to 7 by acclamation.)</li>
428 <li>Council members will be chosen by a general election of all
429 devs once per year.</li>
430 <li>The council must hold an open meeting at least once per month.</li>
431 <li>Council decisions are by majority vote of those who show up (or
432 their proxies).</li>
433 <li>If a council member (or their appointed proxy) fails to show up for
434 two consecutive meetings, they are marked as a slacker.</li>
435 <li>If a council member who has been marked a slacker misses any further
436 meeting (or their appointed proxy doesn't show up), they lose their
437 position and a new election is held to replace that person. The newly
438 elected council member gets a 'reduced' term so that the yearly
439 elections still elect a full group.</li>
440 <li>Council members who have previously been booted for excessive slacking
441 may stand for future elections, including the election for their
442 replacement. They should, however, justify their slackerness, and
443 should expect to have it pointed out if they don't do so themselves.</li>
444 <li>The 'slacker' marker is reset when a member is elected.</li>
445 <li>If any meeting has less than 50% attendance by council members, a new
446 election for <em>all</em> places must be held within a month. The 'one year'
447 is then reset from that point.</li>
448 <li>Disciplinary actions may be appealed to the council.</li>
449 <li>A proxy must not be an existing council member, and any single person
450 may not be a proxy for more than one council member at any given
451 meeting.</li>
452 </ul>
453 </blockquote>
454 </li>
455 </ol>
456 </div>
457 <div class="section">
458 <h1><a class="toc-backref" href="#id6" id="rationale" name="rationale">Rationale</a></h1>
459 <p>So, does this proposal solve any of the previously-mentioned problems?</p>
460 <p>1. There is no longer any requirement that the project structure be
461 complete. Some devs work on very specific parts of the tree, while
462 some work on practically everything; neither should be shoehorned into
463 an ad-hoc project structure. Moreover, it should be easy to create new
464 projects where needed (and remove them when they are not), which this
465 proposal should enable.</p>
466 <p>2. By having the members choose their project leads periodically, the
467 project leads are necessarily at least somewhat responsible (and hopefully
468 responsive) to the project members. This proposal has removed the list of
469 responsibilities that project leads were supposed to satisfy, since hardly
470 anybody has ever looked at the original list since it was written. Instead
471 the practical responsibility of a lead is &quot;whatever the members require&quot;, and
472 if that isn't satisfied, the members can get a new lead (if they can find
473 somebody to take the job!).</p>
474 <p>3. If the council does a lousy job handling global issues (or has no
475 global vision), vote out the bums.</p>
476 <p>4. Since everybody gets to vote for the council members, at least in
477 principle the council members represent all developers, not just a
478 particular subset.</p>
479 <p>5. An appeal process should make disciplinary enforcement both less
480 capricious and more palatable.</p>
481 <p>6. This proposal doesn't help find inactive devs or projects. It
482 really should not be that much of a problem. We already have a script for
483 identifying devs who haven't made a CVS commit within a certain period of
484 time. As for moribund projects, if the project page isn't maintained, it's
485 dead, and we should remove it. That, too, could be automated. A much bigger
486 problem is understaffed herds, but more organization is not necessarily a
487 solution.</p>
488 <p>7. The metabug project is a great idea. Let's do that! Adding a useful
489 project shouldn't require &quot;metastructure reform&quot;, although with the
490 current system it does. With this proposal it wouldn't.</p>
491 <ol class="arabic simple" start="8">
492 <li>This proposal has nothing to say about GLEPs.</li>
493 </ol>
494 </div>
495 <div class="section">
496 <h1><a class="toc-backref" href="#id7" id="copyright" name="copyright">Copyright</a></h1>
497 <p>This document has been placed in the public domain.</p>
498 </div>
499
500 </div>
501 <div class="footer">
502 <hr class="footer" />
503 <a class="reference" href="glep-0039.txt">View document source</a>.
504 Generated on: 2006-10-10 20:23 UTC.
505 Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
506
507 </div>
508 </body>
509 </html>

  ViewVC Help
Powered by ViewVC 1.1.20