/[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.6 - (hide annotations) (download) (as text)
Sun Oct 14 17:00:15 2007 UTC (6 years, 10 months ago) by antarus
Branch: MAIN
CVS Tags: HEAD
Changes since 1.5: +4 -251 lines
File MIME type: text/html
the canary on 53 went well, changing the rest

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 antarus 1.6
5 g2boojum 1.1 <head>
6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 g2boojum 1.3 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
8 g2boojum 1.1 <title>GLEP 40 -- Standardizing "arch" keywording across all archs.</title>
9 antarus 1.6 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
10 g2boojum 1.1 </head>
11     <body bgcolor="white">
12     <table class="navigation" cellpadding="0" cellspacing="0"
13     width="100%" border="0">
14     <tr><td class="navicon" width="150" height="35">
15     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
16     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
17     border="0" width="150" height="35" /></a></td>
18     <td class="textlinks" align="left">
19     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
20 antarus 1.6 [<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
21 g2boojum 1.3 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0040.txt">GLEP Source</a></b>]
22 g2boojum 1.1 </td></tr></table>
23     <table class="rfc2822 docutils field-list" frame="void" rules="none">
24     <col class="field-name" />
25     <col class="field-body" />
26     <tbody valign="top">
27     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">40</td>
28     </tr>
29     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Standardizing &quot;arch&quot; keywording across all archs.</td>
30     </tr>
31 g2boojum 1.3 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
32 g2boojum 1.1 </tr>
33 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>
34 g2boojum 1.1 </tr>
35     <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>
36     </tr>
37 g2boojum 1.3 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
38 g2boojum 1.1 </tr>
39     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
40     </tr>
41 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>
42 g2boojum 1.1 </tr>
43     <tr class="field"><th class="field-name">Created:</th><td class="field-body">3-Sep-2005</td>
44     </tr>
45 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>
46 g2boojum 1.1 </tr>
47     </tbody>
48     </table>
49     <hr />
50 g2boojum 1.3 <div class="contents topic">
51     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
52 g2boojum 1.1 <ul class="simple">
53 g2boojum 1.2 <li><a class="reference" href="#status" id="id10" name="id10">Status</a></li>
54     <li><a class="reference" href="#credits" id="id11" name="id11">Credits</a></li>
55     <li><a class="reference" href="#abstract" id="id12" name="id12">Abstract</a></li>
56     <li><a class="reference" href="#motivation" id="id13" name="id13">Motivation</a></li>
57     <li><a class="reference" href="#specification" id="id14" name="id14">Specification</a><ul>
58     <li><a class="reference" href="#stabling-guidelines-for-all-archs" id="id15" name="id15">Stabling guidelines for all archs</a></li>
59     <li><a class="reference" href="#x86-arch-team" id="id16" name="id16">x86 arch team</a></li>
60 g2boojum 1.1 </ul>
61     </li>
62 g2boojum 1.2 <li><a class="reference" href="#rationale" id="id17" name="id17">Rationale</a></li>
63     <li><a class="reference" href="#implementation" id="id18" name="id18">Implementation</a></li>
64     <li><a class="reference" href="#alternative-ideas" id="id19" name="id19">Alternative Ideas</a></li>
65     <li><a class="reference" href="#backwards-compatibility" id="id20" name="id20">Backwards Compatibility</a></li>
66     <li><a class="reference" href="#id1" id="id21" name="id21">References</a></li>
67     <li><a class="reference" href="#copyright" id="id22" name="id22">Copyright</a></li>
68 g2boojum 1.1 </ul>
69     </div>
70 g2boojum 1.3 <div class="section">
71     <h1><a class="toc-backref" href="#id10" id="status" name="status">Status</a></h1>
72     <p>Approved by the Gentoo Council on 15 September 2005. As of 20060903
73     we have a robust x86 arch team, so this GLEP is final</p>
74 g2boojum 1.2 </div>
75 g2boojum 1.3 <div class="section">
76     <h1><a class="toc-backref" href="#id11" id="credits" name="credits">Credits</a></h1>
77 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
78     about combining the x86 and amd64 keywords. This GLEP attempts to get at the
79     heart of that discontent. The proposed stable-keyword guidelines have been
80     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>
81     </div>
82 g2boojum 1.3 <div class="section">
83     <h1><a class="toc-backref" href="#id12" id="abstract" name="abstract">Abstract</a></h1>
84 g2boojum 1.1 <p>It is time for x86 to no longer be an exception to the standard
85 g2boojum 1.3 keywording guidelines. Thus, an x86 arch team should be responsible
86 g2boojum 1.1 for moving packages from ~x86 to x86.</p>
87     </div>
88 g2boojum 1.3 <div class="section">
89     <h1><a class="toc-backref" href="#id13" id="motivation" name="motivation">Motivation</a></h1>
90 g2boojum 1.1 <p>The original, informal x86 keywording policy, where almost any x86 dev (which
91     were the vast majority of devs) who used a package could mark it stable, arose
92     from a time when there were relatively few Gentoo devs. Adding packages to
93     the tree was the principal concern, as opposed to maintaining existing
94     packages. QA considerations have since modified that policy slightly, and now
95     it is the package maintainers who should mark an x86 package stable. Of
96     course, that policy presumes that package maintainers are generally x86 devs,
97     which is slowly becoming less and less true.</p>
98     <p>This policy for x86 is quite different from how every other arch marks
99     packages stable. For the non-x86 archs, each arch has a specific &quot;arch team&quot;
100     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
101     vapier notes that &quot;arch teams generally defer to maintainers (and rightly so)
102     as to <em>when</em> newer versions should go stable.&quot; This approach has worked quite
103     well for the non-x86 archs, and this GLEP asserts that the same approach would
104     benefit x86 as well.</p>
105     </div>
106 g2boojum 1.3 <div class="section">
107     <h1><a class="toc-backref" href="#id14" id="specification" name="specification">Specification</a></h1>
108     <div class="section">
109     <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>
110 g2boojum 1.1 <p>For a package to move to stable, the following guidelines must be met:</p>
111     <ul class="simple">
112     <li>The package has spent a reasonable amount of time in <tt class="docutils literal"><span class="pre">~arch</span></tt> first.
113     Thirty days is the usual figure, although this is clearly only a guideline.
114     For critical packages, a much longer duration is expected. For small
115     packages which have only minor changes between versions, a shorter period
116     is sometimes appropriate.</li>
117     <li>The package must not have any non-<tt class="docutils literal"><span class="pre">arch</span></tt> dependencies.</li>
118     <li>The package must not have any severe outstanding bugs or issues.</li>
119     <li>The package must be widely tested.</li>
120     <li>If the package is a library, it should be known not to break any package
121     which depends upon it.</li>
122     <li>The relevant <tt class="docutils literal"><span class="pre">arch</span></tt> team must agree to it.</li>
123     </ul>
124     </div>
125 g2boojum 1.3 <div class="section">
126     <h2><a class="toc-backref" href="#id16" id="x86-arch-team" name="x86-arch-team">x86 arch team</a></h2>
127 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
128     exists, and it merely needs to be used. This team, with the aid of potential
129     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.
130     Current x86 devs who wish to mark their own packages stable must therefore
131     either be members of or make individual arrangements with the x86 arch team.</p>
132     </div>
133     </div>
134 g2boojum 1.3 <div class="section">
135     <h1><a class="toc-backref" href="#id17" id="rationale" name="rationale">Rationale</a></h1>
136 g2boojum 1.1 <p>There will be a considerable one-time cost involved in establishing a robust
137 g2boojum 1.3 x86 arch team--a good number of bodies (the amd64 arch team has 19 active devs
138 g2boojum 1.1 and 12 active non-dev arch testers) need to be recruited to be part of the
139     new arch team, and convincing devs that it is in their best interests to work
140     in a new fashion is likely to be even harder. Certainly the benefit of
141     consistency between the various archs is obvious, but is it worth the cost
142     involved? Here are the arguments for enduring the pain involved:</p>
143     <ul class="simple">
144     <li>Over time, x86 is likely to become a minority arch as 64-bit systems
145     become the norm. The implicit assumptions that underly the current
146     system (that most devs, users, and package maintainers use x86)
147     will become increasingly less valid.</li>
148     <li>Markedly improved QA for x86. Assuming that the author's own is
149 g2boojum 1.3 behavior is representative, most x86 devs run <tt class="docutils literal"><span class="pre">~x86</span></tt> systems.
150 g2boojum 1.1 Thus, the assumption that devs are good <tt class="docutils literal"><span class="pre">x86</span></tt> testers is not really
151     valid. One obvious consequence is that packages tend to languish in
152     <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
153     cause to notice that a package has not been marked stable. The much larger
154     effect, though, is that it is rare for <tt class="docutils literal"><span class="pre">x86</span></tt> packages to be stabled in
155     the context of a full <tt class="docutils literal"><span class="pre">x86</span></tt> tree, so the big picture of a stable
156     <em>system</em>, not just a stable package, is lost. This approach of stabling
157     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
158     the fundamental reason why the non-x86 archs have notably better QA
159     than does the x86 arch.</li>
160     </ul>
161     </div>
162 g2boojum 1.3 <div class="section">
163     <h1><a class="toc-backref" href="#id18" id="implementation" name="implementation">Implementation</a></h1>
164     <p>Creation of a robust x86 team is already underway. The more vital step
165 g2boojum 1.1 is the official change in policy, along with a sustained effort to get
166     existing x86 devs to go along with it.</p>
167     </div>
168 g2boojum 1.3 <div class="section">
169     <h1><a class="toc-backref" href="#id19" id="alternative-ideas" name="alternative-ideas">Alternative Ideas</a></h1>
170     <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
171 g2boojum 1.1 would exist in tandem with the normal arch keywords, thereby making the
172     package maintainer's intention explicit. Ciaranm has responded that by
173     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
174     mere presence in the tree (without being in <tt class="docutils literal"><span class="pre">package.mask</span></tt>) should indicate
175     the package maintainer's intention. There was a fair bit of discussion about
176     whether the idea should be a &quot;maint&quot; keyword, or named something else, or an
177     entirely different variable, etcetera, but the basic gist didn't change much.</p>
178     <p>Jstubbs notes that it could be a very good idea if all non-arch devs worked in
179     overlays, but that new portage (gensync) support would be needed to make it
180     truly viable. Stuart pointed out that php5 support was handled just that way.
181     One author's view is that this approach would make the &quot;package in <tt class="docutils literal"><span class="pre">~arch</span></tt>
182 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
183 g2boojum 1.1 valid.</p>
184     <p>Ciaranm and weeve have noted that it is occasionally necessary for arch teams
185     to override a package maintainer when it comes to stabling a package. Stuart
186     has asserted that in those cases the arch team should be willing to take on
187     the support burden for that package.</p>
188     </div>
189 g2boojum 1.3 <div class="section">
190     <h1><a class="toc-backref" href="#id20" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
191 g2boojum 1.1 <p>Not really an issue here.</p>
192     </div>
193 g2boojum 1.3 <div class="section">
194     <h1><a class="toc-backref" href="#id21" id="id1" name="id1">References</a></h1>
195 g2boojum 1.1 <table class="docutils footnote" frame="void" id="id2" rules="none">
196     <colgroup><col class="label" /><col /></colgroup>
197     <tbody valign="top">
198     <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>
199     </tbody>
200     </table>
201     <table class="docutils footnote" frame="void" id="id4" rules="none">
202     <colgroup><col class="label" /><col /></colgroup>
203     <tbody valign="top">
204     <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>
205     </tbody>
206     </table>
207     <table class="docutils footnote" frame="void" id="id6" rules="none">
208     <colgroup><col class="label" /><col /></colgroup>
209     <tbody valign="top">
210     <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>
211     </tbody>
212     </table>
213     <table class="docutils footnote" frame="void" id="id8" rules="none">
214     <colgroup><col class="label" /><col /></colgroup>
215     <tbody valign="top">
216     <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>
217     </tbody>
218     </table>
219     </div>
220 g2boojum 1.3 <div class="section">
221     <h1><a class="toc-backref" href="#id22" id="copyright" name="copyright">Copyright</a></h1>
222 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
223     </div>
224    
225     </div>
226     <div class="footer">
227     <hr class="footer" />
228     <a class="reference" href="glep-0040.txt">View document source</a>.
229 antarus 1.6 Generated on: 2007-10-13 13:39 UTC.
230 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.
231    
232     </div>
233     </body>
234     </html>

  ViewVC Help
Powered by ViewVC 1.1.20