/[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 - (show annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (7 years, 11 months ago) by g2boojum
Branch: MAIN
Changes since 1.3: +1 -1 lines
File MIME type: text/html
regenerate all .html files

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 40 -- Standardizing "arch" keywording across all archs.</title>
13 <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 </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/peps">GLEP Index</a></b>]
268 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0040.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">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 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</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-0040.txt?cvsroot=gentoo">2006/09/04 03:09:50</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;</td>
283 </tr>
284 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
285 </tr>
286 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287 </tr>
288 <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 </tr>
290 <tr class="field"><th class="field-name">Created:</th><td class="field-body">3-Sep-2005</td>
291 </tr>
292 <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 </tr>
294 </tbody>
295 </table>
296 <hr />
297 <div class="contents topic">
298 <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 <ul class="simple">
300 <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 </ul>
308 </li>
309 <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 </ul>
316 </div>
317 <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 </div>
322 <div class="section">
323 <h1><a class="toc-backref" href="#id11" id="credits" name="credits">Credits</a></h1>
324 <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 <div class="section">
330 <h1><a class="toc-backref" href="#id12" id="abstract" name="abstract">Abstract</a></h1>
331 <p>It is time for x86 to no longer be an exception to the standard
332 keywording guidelines. Thus, an x86 arch team should be responsible
333 for moving packages from ~x86 to x86.</p>
334 </div>
335 <div class="section">
336 <h1><a class="toc-backref" href="#id13" id="motivation" name="motivation">Motivation</a></h1>
337 <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 <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 <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 <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 <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 <div class="section">
382 <h1><a class="toc-backref" href="#id17" id="rationale" name="rationale">Rationale</a></h1>
383 <p>There will be a considerable one-time cost involved in establishing a robust
384 x86 arch team--a good number of bodies (the amd64 arch team has 19 active devs
385 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 behavior is representative, most x86 devs run <tt class="docutils literal"><span class="pre">~x86</span></tt> systems.
397 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 <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 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 <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 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 means that it's a de-facto candidate for <tt class="docutils literal"><span class="pre">arch</span></tt>&quot; interpretation even more
430 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 <div class="section">
437 <h1><a class="toc-backref" href="#id20" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
438 <p>Not really an issue here.</p>
439 </div>
440 <div class="section">
441 <h1><a class="toc-backref" href="#id21" id="id1" name="id1">References</a></h1>
442 <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 <div class="section">
468 <h1><a class="toc-backref" href="#id22" id="copyright" name="copyright">Copyright</a></h1>
469 <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 Generated on: 2006-10-10 20:23 UTC.
477 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