/[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.4 - (hide annotations) (download) (as text)
Tue Oct 10 20:21:22 2006 UTC (7 years, 10 months ago) by g2boojum
Branch: MAIN
Changes since 1.3: +266 -23 lines
File MIME type: text/html
fix text/rst link in 39; bug # 150469

1 g2boojum 1.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 g2boojum 1.4 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 39 -- An "old-school" metastructure proposal with "boot for being a slacker"</title>
13 g2boojum 1.4 <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18     :date: $Date: 2003/06/02 17:03:08 $
19     :version: $Revision: 1.1 $
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 g2boojum 1.1 </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 g2boojum 1.4 [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268     [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0039.txt">GLEP Source</a></b>]
269 g2boojum 1.1 </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 g2boojum 1.4 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
279 g2boojum 1.1 </tr>
280 g2boojum 1.4 <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 g2boojum 1.1 </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 g2boojum 1.4 <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 g2boojum 1.1 </tr>
291     <tr class="field"><th class="field-name">Created:</th><td class="field-body">01-Sep-2005</td>
292     </tr>
293 ciaranm 1.3 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">01-Sep-2005, 09-Feb-2006</td>
294 g2boojum 1.1 </tr>
295     </tbody>
296     </table>
297     <hr />
298 g2boojum 1.4 <div class="contents topic">
299     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
300 g2boojum 1.1 <ul class="simple">
301 ciaranm 1.3 <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 g2boojum 1.1 </ul>
308     </div>
309 g2boojum 1.4 <div class="section">
310     <h1><a class="toc-backref" href="#id2" id="status" name="status">Status</a></h1>
311 ciaranm 1.3 <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 g2boojum 1.4 <div class="section">
315     <h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
316 g2boojum 1.1 <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 g2boojum 1.4 <div class="section">
321     <h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
322 g2boojum 1.1 <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 g2boojum 1.4 <li>Nothing is being decided at global scope right now. Some TLP strategic
377 g2boojum 1.1 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 g2boojum 1.4 <div class="section">
397     <h1><a class="toc-backref" href="#id5" id="specification" name="specification">Specification</a></h1>
398 g2boojum 1.1 <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 ciaranm 1.3 <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 g2boojum 1.1 </ul>
453     </blockquote>
454     </li>
455     </ol>
456     </div>
457 g2boojum 1.4 <div class="section">
458     <h1><a class="toc-backref" href="#id6" id="rationale" name="rationale">Rationale</a></h1>
459 g2boojum 1.1 <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 g2boojum 1.4 <div class="section">
496     <h1><a class="toc-backref" href="#id7" id="copyright" name="copyright">Copyright</a></h1>
497 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
498     </div>
499    
500     </div>
501     <div class="footer">
502 g2boojum 1.2 <hr class="footer" />
503 g2boojum 1.1 <a class="reference" href="glep-0039.txt">View document source</a>.
504 g2boojum 1.4 Generated on: 2006-10-10 20:19 UTC.
505 g2boojum 1.1 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 g2boojum 1.2
507 g2boojum 1.1 </div>
508     </body>
509     </html>

  ViewVC Help
Powered by ViewVC 1.1.20