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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (8 years ago) by g2boojum
Branch: MAIN
Changes since 1.3: +1 -1 lines
File MIME type: text/html
regenerate all .html files

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.3 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 40 -- Standardizing "arch" keywording across all archs.</title>
13 g2boojum 1.3 <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.3 [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268     [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0040.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">40</td>
275     </tr>
276     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Standardizing &quot;arch&quot; keywording across all archs.</td>
277     </tr>
278 g2boojum 1.3 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
279 g2boojum 1.1 </tr>
280 g2boojum 1.3 <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-0040.txt?cvsroot=gentoo">2006/09/04 03:09:50</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;</td>
283     </tr>
284 g2boojum 1.3 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
285 g2boojum 1.1 </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
288 g2boojum 1.3 <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>
289 g2boojum 1.1 </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">3-Sep-2005</td>
291     </tr>
292 g2boojum 1.3 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">6-Sep-2005 15-Sep-2005 3-Sep-2006</td>
293 g2boojum 1.1 </tr>
294     </tbody>
295     </table>
296     <hr />
297 g2boojum 1.3 <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 g2boojum 1.1 <ul class="simple">
300 g2boojum 1.2 <li><a class="reference" href="#status" id="id10" name="id10">Status</a></li>
301     <li><a class="reference" href="#credits" id="id11" name="id11">Credits</a></li>
302     <li><a class="reference" href="#abstract" id="id12" name="id12">Abstract</a></li>
303     <li><a class="reference" href="#motivation" id="id13" name="id13">Motivation</a></li>
304     <li><a class="reference" href="#specification" id="id14" name="id14">Specification</a><ul>
305     <li><a class="reference" href="#stabling-guidelines-for-all-archs" id="id15" name="id15">Stabling guidelines for all archs</a></li>
306     <li><a class="reference" href="#x86-arch-team" id="id16" name="id16">x86 arch team</a></li>
307 g2boojum 1.1 </ul>
308     </li>
309 g2boojum 1.2 <li><a class="reference" href="#rationale" id="id17" name="id17">Rationale</a></li>
310     <li><a class="reference" href="#implementation" id="id18" name="id18">Implementation</a></li>
311     <li><a class="reference" href="#alternative-ideas" id="id19" name="id19">Alternative Ideas</a></li>
312     <li><a class="reference" href="#backwards-compatibility" id="id20" name="id20">Backwards Compatibility</a></li>
313     <li><a class="reference" href="#id1" id="id21" name="id21">References</a></li>
314     <li><a class="reference" href="#copyright" id="id22" name="id22">Copyright</a></li>
315 g2boojum 1.1 </ul>
316     </div>
317 g2boojum 1.3 <div class="section">
318     <h1><a class="toc-backref" href="#id10" id="status" name="status">Status</a></h1>
319     <p>Approved by the Gentoo Council on 15 September 2005. As of 20060903
320     we have a robust x86 arch team, so this GLEP is final</p>
321 g2boojum 1.2 </div>
322 g2boojum 1.3 <div class="section">
323     <h1><a class="toc-backref" href="#id11" id="credits" name="credits">Credits</a></h1>
324 g2boojum 1.1 <p>This GLEP originated from a rather contentious <a class="reference" href="http://tinyurl.com/bp859">discussion</a> <a class="footnote-reference" href="#id2" id="id3" name="id3">[1]</a> on gentoo-dev
325     about combining the x86 and amd64 keywords. This GLEP attempts to get at the
326     heart of that discontent. The proposed stable-keyword guidelines have been
327     lifted verbatim from <a class="reference" href="http://dev.gentoo.org/~plasmaroo/devmanual">The Doc</a> <a class="footnote-reference" href="#id4" id="id5" name="id5">[2]</a>.</p>
328     </div>
329 g2boojum 1.3 <div class="section">
330     <h1><a class="toc-backref" href="#id12" id="abstract" name="abstract">Abstract</a></h1>
331 g2boojum 1.1 <p>It is time for x86 to no longer be an exception to the standard
332 g2boojum 1.3 keywording guidelines. Thus, an x86 arch team should be responsible
333 g2boojum 1.1 for moving packages from ~x86 to x86.</p>
334     </div>
335 g2boojum 1.3 <div class="section">
336     <h1><a class="toc-backref" href="#id13" id="motivation" name="motivation">Motivation</a></h1>
337 g2boojum 1.1 <p>The original, informal x86 keywording policy, where almost any x86 dev (which
338     were the vast majority of devs) who used a package could mark it stable, arose
339     from a time when there were relatively few Gentoo devs. Adding packages to
340     the tree was the principal concern, as opposed to maintaining existing
341     packages. QA considerations have since modified that policy slightly, and now
342     it is the package maintainers who should mark an x86 package stable. Of
343     course, that policy presumes that package maintainers are generally x86 devs,
344     which is slowly becoming less and less true.</p>
345     <p>This policy for x86 is quite different from how every other arch marks
346     packages stable. For the non-x86 archs, each arch has a specific &quot;arch team&quot;
347     which is responsible for moving packages from <tt class="docutils literal"><span class="pre">~arch</span></tt> to <tt class="docutils literal"><span class="pre">arch</span></tt>, although
348     vapier notes that &quot;arch teams generally defer to maintainers (and rightly so)
349     as to <em>when</em> newer versions should go stable.&quot; This approach has worked quite
350     well for the non-x86 archs, and this GLEP asserts that the same approach would
351     benefit x86 as well.</p>
352     </div>
353 g2boojum 1.3 <div class="section">
354     <h1><a class="toc-backref" href="#id14" id="specification" name="specification">Specification</a></h1>
355     <div class="section">
356     <h2><a class="toc-backref" href="#id15" id="stabling-guidelines-for-all-archs" name="stabling-guidelines-for-all-archs">Stabling guidelines for all archs</a></h2>
357 g2boojum 1.1 <p>For a package to move to stable, the following guidelines must be met:</p>
358     <ul class="simple">
359     <li>The package has spent a reasonable amount of time in <tt class="docutils literal"><span class="pre">~arch</span></tt> first.
360     Thirty days is the usual figure, although this is clearly only a guideline.
361     For critical packages, a much longer duration is expected. For small
362     packages which have only minor changes between versions, a shorter period
363     is sometimes appropriate.</li>
364     <li>The package must not have any non-<tt class="docutils literal"><span class="pre">arch</span></tt> dependencies.</li>
365     <li>The package must not have any severe outstanding bugs or issues.</li>
366     <li>The package must be widely tested.</li>
367     <li>If the package is a library, it should be known not to break any package
368     which depends upon it.</li>
369     <li>The relevant <tt class="docutils literal"><span class="pre">arch</span></tt> team must agree to it.</li>
370     </ul>
371     </div>
372 g2boojum 1.3 <div class="section">
373     <h2><a class="toc-backref" href="#id16" id="x86-arch-team" name="x86-arch-team">x86 arch team</a></h2>
374 g2boojum 1.1 <p>A robust x86 arch team needs to be created. The <a class="reference" href="mailto:x86&#64;gentoo.org">x86&#64;gentoo.org</a> alias already
375     exists, and it merely needs to be used. This team, with the aid of potential
376     non-dev <tt class="docutils literal"><span class="pre">arch</span> <span class="pre">testers</span></tt>, has the responsibility of stabling all x86 packages.
377     Current x86 devs who wish to mark their own packages stable must therefore
378     either be members of or make individual arrangements with the x86 arch team.</p>
379     </div>
380     </div>
381 g2boojum 1.3 <div class="section">
382     <h1><a class="toc-backref" href="#id17" id="rationale" name="rationale">Rationale</a></h1>
383 g2boojum 1.1 <p>There will be a considerable one-time cost involved in establishing a robust
384 g2boojum 1.3 x86 arch team--a good number of bodies (the amd64 arch team has 19 active devs
385 g2boojum 1.1 and 12 active non-dev arch testers) need to be recruited to be part of the
386     new arch team, and convincing devs that it is in their best interests to work
387     in a new fashion is likely to be even harder. Certainly the benefit of
388     consistency between the various archs is obvious, but is it worth the cost
389     involved? Here are the arguments for enduring the pain involved:</p>
390     <ul class="simple">
391     <li>Over time, x86 is likely to become a minority arch as 64-bit systems
392     become the norm. The implicit assumptions that underly the current
393     system (that most devs, users, and package maintainers use x86)
394     will become increasingly less valid.</li>
395     <li>Markedly improved QA for x86. Assuming that the author's own is
396 g2boojum 1.3 behavior is representative, most x86 devs run <tt class="docutils literal"><span class="pre">~x86</span></tt> systems.
397 g2boojum 1.1 Thus, the assumption that devs are good <tt class="docutils literal"><span class="pre">x86</span></tt> testers is not really
398     valid. One obvious consequence is that packages tend to languish in
399     <tt class="docutils literal"><span class="pre">~x86</span></tt> for a very long time, since x86 devs running <tt class="docutils literal"><span class="pre">~x86</span></tt> have little
400     cause to notice that a package has not been marked stable. The much larger
401     effect, though, is that it is rare for <tt class="docutils literal"><span class="pre">x86</span></tt> packages to be stabled in
402     the context of a full <tt class="docutils literal"><span class="pre">x86</span></tt> tree, so the big picture of a stable
403     <em>system</em>, not just a stable package, is lost. This approach of stabling
404     in the context of a full stable <tt class="docutils literal"><span class="pre">arch</span></tt> tree, it has been <a class="reference" href="http://thread.gmane.org/gmane.linux.gentoo.devel/30369">argued</a> <a class="footnote-reference" href="#id6" id="id7" name="id7">[3]</a>, is
405     the fundamental reason why the non-x86 archs have notably better QA
406     than does the x86 arch.</li>
407     </ul>
408     </div>
409 g2boojum 1.3 <div class="section">
410     <h1><a class="toc-backref" href="#id18" id="implementation" name="implementation">Implementation</a></h1>
411     <p>Creation of a robust x86 team is already underway. The more vital step
412 g2boojum 1.1 is the official change in policy, along with a sustained effort to get
413     existing x86 devs to go along with it.</p>
414     </div>
415 g2boojum 1.3 <div class="section">
416     <h1><a class="toc-backref" href="#id19" id="alternative-ideas" name="alternative-ideas">Alternative Ideas</a></h1>
417     <p><a class="reference" href="http://thread.gmane.org/gmane.linux.gentoo.devel/31060">Stuart</a> <a class="footnote-reference" href="#id8" id="id9" name="id9">[4]</a> has suggested the creation of a new arch keyword: &quot;[-]maint&quot;, which
418 g2boojum 1.1 would exist in tandem with the normal arch keywords, thereby making the
419     package maintainer's intention explicit. Ciaranm has responded that by
420     definition a package in <tt class="docutils literal"><span class="pre">~arch</span></tt> is a candidate for <tt class="docutils literal"><span class="pre">arch</span></tt>, so a package's
421     mere presence in the tree (without being in <tt class="docutils literal"><span class="pre">package.mask</span></tt>) should indicate
422     the package maintainer's intention. There was a fair bit of discussion about
423     whether the idea should be a &quot;maint&quot; keyword, or named something else, or an
424     entirely different variable, etcetera, but the basic gist didn't change much.</p>
425     <p>Jstubbs notes that it could be a very good idea if all non-arch devs worked in
426     overlays, but that new portage (gensync) support would be needed to make it
427     truly viable. Stuart pointed out that php5 support was handled just that way.
428     One author's view is that this approach would make the &quot;package in <tt class="docutils literal"><span class="pre">~arch</span></tt>
429 g2boojum 1.3 means that it's a de-facto candidate for <tt class="docutils literal"><span class="pre">arch</span></tt>&quot; interpretation even more
430 g2boojum 1.1 valid.</p>
431     <p>Ciaranm and weeve have noted that it is occasionally necessary for arch teams
432     to override a package maintainer when it comes to stabling a package. Stuart
433     has asserted that in those cases the arch team should be willing to take on
434     the support burden for that package.</p>
435     </div>
436 g2boojum 1.3 <div class="section">
437     <h1><a class="toc-backref" href="#id20" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
438 g2boojum 1.1 <p>Not really an issue here.</p>
439     </div>
440 g2boojum 1.3 <div class="section">
441     <h1><a class="toc-backref" href="#id21" id="id1" name="id1">References</a></h1>
442 g2boojum 1.1 <table class="docutils footnote" frame="void" id="id2" rules="none">
443     <colgroup><col class="label" /><col /></colgroup>
444     <tbody valign="top">
445     <tr><td class="label"><a class="fn-backref" href="#id3" name="id2">[1]</a></td><td><a class="reference" href="http://tinyurl.com/bp859">http://tinyurl.com/bp859</a></td></tr>
446     </tbody>
447     </table>
448     <table class="docutils footnote" frame="void" id="id4" rules="none">
449     <colgroup><col class="label" /><col /></colgroup>
450     <tbody valign="top">
451     <tr><td class="label"><a class="fn-backref" href="#id5" name="id4">[2]</a></td><td><a class="reference" href="http://dev.gentoo.org/~plasmaroo/devmanual">http://dev.gentoo.org/~plasmaroo/devmanual</a></td></tr>
452     </tbody>
453     </table>
454     <table class="docutils footnote" frame="void" id="id6" rules="none">
455     <colgroup><col class="label" /><col /></colgroup>
456     <tbody valign="top">
457     <tr><td class="label"><a class="fn-backref" href="#id7" name="id6">[3]</a></td><td><a class="reference" href="http://thread.gmane.org/gmane.linux.gentoo.devel/30369">http://thread.gmane.org/gmane.linux.gentoo.devel/30369</a></td></tr>
458     </tbody>
459     </table>
460     <table class="docutils footnote" frame="void" id="id8" rules="none">
461     <colgroup><col class="label" /><col /></colgroup>
462     <tbody valign="top">
463     <tr><td class="label"><a class="fn-backref" href="#id9" name="id8">[4]</a></td><td><a class="reference" href="http://thread.gmane.org/gmane.linux.gentoo.devel/31060">http://thread.gmane.org/gmane.linux.gentoo.devel/31060</a></td></tr>
464     </tbody>
465     </table>
466     </div>
467 g2boojum 1.3 <div class="section">
468     <h1><a class="toc-backref" href="#id22" id="copyright" name="copyright">Copyright</a></h1>
469 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
470     </div>
471    
472     </div>
473     <div class="footer">
474     <hr class="footer" />
475     <a class="reference" href="glep-0040.txt">View document source</a>.
476 g2boojum 1.4 Generated on: 2006-10-10 20:23 UTC.
477 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.
478    
479     </div>
480     </body>
481     </html>

  ViewVC Help
Powered by ViewVC 1.1.20