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

Diff of /xml/htdocs/proj/en/glep/glep-0054.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.2 Revision 1.7
1<?xml version="1.0" encoding="utf-8" ?> 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"> 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"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<!-- 4
5This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8-->
9<head> 5<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 54 -- An "old-school" metastructure proposal with "boot for being a slacker" Part II</title> 8 <title>GLEP 54 -- scm package version suffix</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" /> 9 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14</head> 10</head>
15<body bgcolor="white"> 11<body bgcolor="white">
16<table class="navigation" cellpadding="0" cellspacing="0" 12<table class="navigation" cellpadding="0" cellspacing="0"
17 width="100%" border="0"> 13 width="100%" border="0">
19<a href="http://www.gentoo.org/" title="Gentoo Linux Home Page"> 15<a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]" 16<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td> 17 border="0" width="150" height="35" /></a></td>
22<td class="textlinks" align="left"> 18<td class="textlinks" align="left">
23[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>] 19[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24[<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>] 20[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
25[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0054.txt">GLEP Source</a></b>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0054.txt">GLEP Source</a></b>]
26</td></tr></table> 22</td></tr></table>
27<table class="rfc2822 docutils field-list" frame="void" rules="none"> 23<table class="rfc2822 docutils field-list" frame="void" rules="none">
28<col class="field-name" /> 24<col class="field-name" />
29<col class="field-body" /> 25<col class="field-body" />
30<tbody valign="top"> 26<tbody valign="top">
31<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">54</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">54</td>
32</tr> 28</tr>
33<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; Part II</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">scm package version suffix</td>
34</tr> 30</tr>
35<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.1</td> 31<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
36</tr> 32</tr>
37<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-0054.txt?cvsroot=gentoo">2007/10/12 02:08:27</a></td> 33<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-0054.txt?cvsroot=gentoo">2007/12/17 18:42:33</a></td>
38</tr> 34</tr>
39<tr class="field"><th class="field-name">Author:</th><td class="field-body">Alec Warner &lt;antarus&#32;&#97;t&#32;gentoo.org&gt;</td> 35<tr class="field"><th class="field-name">Author:</th><td class="field-body">Piotr JaroszyƄski &lt;peper&#32;&#97;t&#32;gentoo.org&gt;</td>
40</tr> 36</tr>
41<tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td> 37<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
42</tr> 38</tr>
43<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 39<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
44</tr> 40</tr>
45<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> 41<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>
46</tr> 42</tr>
47<tr class="field"><th class="field-name">Created:</th><td class="field-body">11-Oct-2007</td> 43<tr class="field"><th class="field-name">Created:</th><td class="field-body">09-Dec-2007</td>
48</tr> 44</tr>
49<tr class="field"><th class="field-name">Replaces:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/proj/en/glepglep-0039.html">39</a></td>
50</tr>
51<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/proj/en/glepglep-0039.html">39</a></td>
52</tr>
53<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">11-Oct-2007</td> 45<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">09-Dec-2007</td>
54</tr> 46</tr>
55</tbody> 47</tbody>
56</table> 48</table>
57<hr /> 49<hr />
58<div class="contents topic"> 50<div class="contents topic">
59<p class="topic-title first"><a id="contents" name="contents">Contents</a></p> 51<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
60<ul class="simple"> 52<ul class="simple">
61<li><a class="reference" href="#abstract" id="id2" name="id2">Abstract</a></li> 53<li><a class="reference" href="#abstract" id="id2" name="id2">Abstract</a></li>
62<li><a class="reference" href="#motivation" id="id3" name="id3">Motivation</a></li> 54<li><a class="reference" href="#motivation" id="id3" name="id3">Motivation</a></li>
63<li><a class="reference" href="#rationale" id="id4" name="id4">Rationale</a></li> 55<li><a class="reference" href="#specification" id="id4" name="id4">Specification</a></li>
56<li><a class="reference" href="#version-comparison" id="id5" name="id5">Version Comparison</a></li>
64<li><a class="reference" href="#backwards-compatibility" id="id5" name="id5">Backwards Compatibility</a></li> 57<li><a class="reference" href="#backwards-compatibility" id="id6" name="id6">Backwards Compatibility</a></li>
65<li><a class="reference" href="#specification" id="id6" name="id6">Specification</a></li>
66<li><a class="reference" href="#copyright" id="id7" name="id7">Copyright</a></li> 58<li><a class="reference" href="#copyright" id="id7" name="id7">Copyright</a></li>
67</ul> 59</ul>
68</div> 60</div>
69<div class="section"> 61<div class="section">
70<h1><a class="toc-backref" href="#id2" id="abstract" name="abstract">Abstract</a></h1> 62<h1><a class="toc-backref" href="#id2" id="abstract" name="abstract">Abstract</a></h1>
71<p>This GLEP amends GLEP 39[#GLEP39]_. A new project must be announced 63<p>This GLEP proposes addition of a new special package version suffix - <tt class="docutils literal"><span class="pre">scm</span></tt> -
72to the community prior to it's conception. The announcement should state 64for ebuilds checking out source directly from a source code management system.</p>
73the project goals, the plan to achieve those goals, and any other information
74deemed useful to the community by the person proposing a new project.</p>
75</div> 65</div>
76<div class="section"> 66<div class="section">
77<h1><a class="toc-backref" href="#id3" id="motivation" name="motivation">Motivation</a></h1> 67<h1><a class="toc-backref" href="#id3" id="motivation" name="motivation">Motivation</a></h1>
78<p>Projects were being started behind the scenes that people were not aware of; 68<p>Currently there is no standard way of identifying SCM ebuilds. Using 9999 as the
79this included developers and users alike. It was thought important to notify 69version is pretty common, but it is handled like any other ebuild and hence
80the community of new projects. This also enables new projects to get valuable 70portage cannot provide any additional features for packages with such a version.
81feedback before getting to far into design and implementation.</p> 71Another way is adding a separate package with a -cvs suffix in its name, but
72that forces the author to use <tt class="docutils literal"><span class="pre">||</span> <span class="pre">(</span> <span class="pre">cat/pkg</span> <span class="pre">cat/pkg-cvs</span> <span class="pre">)</span></tt> dependencies. The
73closest to what is proposed in this GLEP is the <tt class="docutils literal"><span class="pre">cvs</span></tt> version part, but its
74implementation is of very limited use. It has strange comparison rules, no
75documentation, has been used sparingly (if ever) and has a misleading name.</p>
76<p>The possibility for package managers to recognise SCM ebuilds would allow them
77to add features dedicated specially to said ebuilds. One such feature could be
78automatic re-installation of SCM packages once a day or week. Any
79specifications for such features are beyond the scope of this GLEP.</p>
82</div> 80</div>
83<div class="section"> 81<div class="section">
84<h1><a class="toc-backref" href="#id4" id="rationale" name="rationale">Rationale</a></h1> 82<h1><a class="toc-backref" href="#id4" id="specification" name="specification">Specification</a></h1>
85<p>We hope projects receiving feedback fare better in the long run with regards 83<p><tt class="docutils literal"><span class="pre">scm</span></tt> is a special suffix. It can be used on its own, but also in any other
86to general reception as well as meeting the goals set forth in their 84valid version spec, just before the place where revision would go. And just like
87announcement. We hope projects announced early get more volunteers by virtue 85revision it can be used only once in a version spec, e.g.:</p>
88of being announced and in the community's view.</p> 86<blockquote>
87<ul class="simple">
88<li><tt class="docutils literal"><span class="pre">cat/pkg-1.0_alpha0-scm</span></tt></li>
89<li><tt class="docutils literal"><span class="pre">cat/pkg-1.0_alpha-scm</span></tt></li>
90<li><tt class="docutils literal"><span class="pre">cat/pkg-1.0-scm-r3</span></tt></li>
91<li><tt class="docutils literal"><span class="pre">cat/pkg-1-scm</span></tt></li>
92<li><tt class="docutils literal"><span class="pre">cat/pkg-1-scm-r2</span></tt></li>
93<li><tt class="docutils literal"><span class="pre">cat/pkg-scm</span></tt></li>
94</ul>
95</blockquote>
96<p>These package atoms are sorted in ascending order (see <a class="reference" href="#version-comparison">Version Comparison</a>).</p>
89</div> 97</div>
90<div class="section"> 98<div class="section">
91<h1><a class="toc-backref" href="#id5" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1> 99<h1><a class="toc-backref" href="#id5" id="version-comparison" name="version-comparison">Version Comparison</a></h1>
92<p>Projects already announced before 19-Oct-2006 are not affected. Since this 100<p>The addition of the scm suffix yields changes in version comparison:</p>
93GLEP was authored nearly a year later, conceivably projects announced since 101<blockquote>
94then should retroactively send mail regarding their goals and means to achieve 102<ul class="simple">
95them if they have not done so already; otherwise they would be in breach of 103<li>When comparing version components from left to right the scm component has the
96policy set in 2006.</p> 104highest priority over other version components. Hence
105<tt class="docutils literal"><span class="pre">pkg-1_alpha-r3</span> <span class="pre">&lt;</span> <span class="pre">pkg-1-scm</span></tt>, 'scm' is greater than 'alpha-r3'.</li>
106<li>Current suffixes with no number part no longer default to zero if they are
107followed by an scm suffix. If that's the case the number part is considered
108to be of a maximum value. Hence <tt class="docutils literal"><span class="pre">1_alpha2-scm</span> <span class="pre">&lt;</span> <span class="pre">1_alpha-scm</span></tt>, but still
109<tt class="docutils literal"><span class="pre">1_alpha</span> <span class="pre">==</span> <span class="pre">1_alpha0</span></tt>. The rationale behind this choice is to allow
110multiple branches. For instance imagine a package with an alpha branch
111and multiple scm releases, as the following: <tt class="docutils literal"><span class="pre">alpha-scm</span></tt>,
112<tt class="docutils literal"><span class="pre">alpha2-scm</span></tt>, <tt class="docutils literal"><span class="pre">alpha3-scm</span></tt> and so forth. The desired outcome is
113for <tt class="docutils literal"><span class="pre">alpha-scm</span></tt> to be greater than all other branches of the same tree.</li>
114</ul>
115</blockquote>
116<p>Example parsing:</p>
117<blockquote>
118<ul>
119<li><dl class="first docutils">
120<dt><tt class="docutils literal"><span class="pre">cat/pkg-scm</span> <span class="pre">&gt;</span> <span class="pre">cat/pkg-1</span></tt></dt>
121<dd><p class="first last">When parsing from left to right the first difference is <tt class="docutils literal"><span class="pre">scm</span></tt> and
122<tt class="docutils literal"><span class="pre">1</span></tt>. <tt class="docutils literal"><span class="pre">cat/pkg-scm</span></tt> wins.</p>
123</dd>
124</dl>
125</li>
126<li><dl class="first docutils">
127<dt><tt class="docutils literal"><span class="pre">cat/pkg-1-scm</span> <span class="pre">&gt;</span> <span class="pre">cat/pkg-1.0-scm</span></tt></dt>
128<dd><p class="first last">When parsing from left to right the first difference is <tt class="docutils literal"><span class="pre">scm</span></tt> and
129<tt class="docutils literal"><span class="pre">0</span></tt>. <tt class="docutils literal"><span class="pre">cat/pkg-1-scm</span></tt> wins.</p>
130</dd>
131</dl>
132</li>
133<li><dl class="first docutils">
134<dt><tt class="docutils literal"><span class="pre">cat/pkg-1_alpha-scm</span> <span class="pre">&gt;</span> <span class="pre">cat/pkg-1_alpha1-scm</span></tt></dt>
135<dd><p class="first last">In the first package version <tt class="docutils literal"><span class="pre">alpha</span></tt> doesn't have a number part <em>and</em>
136is followed by an <tt class="docutils literal"><span class="pre">scm</span></tt> suffix, hence it is considered to have a maximum
137value as the number part. When parsing from left to right the first
138difference is the number part of the <tt class="docutils literal"><span class="pre">alpha</span></tt> suffix. Maximum value
139yielded by the following <tt class="docutils literal"><span class="pre">scm</span></tt> suffix wins with <tt class="docutils literal"><span class="pre">1</span></tt>.</p>
140</dd>
141</dl>
142</li>
143</ul>
144</blockquote>
145<p>List of version specs in ascending order:</p>
146<blockquote>
147<ul class="simple">
148<li><tt class="docutils literal"><span class="pre">1</span></tt></li>
149<li><tt class="docutils literal"><span class="pre">1.1-scm</span></tt></li>
150<li><tt class="docutils literal"><span class="pre">1.2_alpha-scm</span></tt></li>
151<li><tt class="docutils literal"><span class="pre">1.2_beta_p</span></tt></li>
152<li><tt class="docutils literal"><span class="pre">1.2_beta_p0-scm</span></tt></li>
153<li><tt class="docutils literal"><span class="pre">1.2_beta_p1-scm</span></tt></li>
154<li><tt class="docutils literal"><span class="pre">1.2_beta_p-scm</span></tt></li>
155<li><tt class="docutils literal"><span class="pre">1.2_beta1_p-scm</span></tt></li>
156<li><tt class="docutils literal"><span class="pre">1.2_beta10</span></tt></li>
157<li><tt class="docutils literal"><span class="pre">1.2_beta10_p1-scm</span></tt></li>
158<li><tt class="docutils literal"><span class="pre">1.2_beta10-scm</span></tt></li>
159<li><tt class="docutils literal"><span class="pre">1.2_beta-scm</span></tt></li>
160<li><tt class="docutils literal"><span class="pre">1.2</span></tt></li>
161<li><tt class="docutils literal"><span class="pre">1.2-scm</span></tt></li>
162<li><tt class="docutils literal"><span class="pre">1.2-scm-r1</span></tt></li>
163<li><tt class="docutils literal"><span class="pre">1-scm</span></tt></li>
164<li><tt class="docutils literal"><span class="pre">10</span></tt></li>
165<li><tt class="docutils literal"><span class="pre">scm</span></tt></li>
166<li><tt class="docutils literal"><span class="pre">scm-r3</span></tt></li>
167</ul>
168</blockquote>
97</div> 169</div>
98<div class="section"> 170<div class="section">
99<h1><a class="toc-backref" href="#id6" id="specification" name="specification">Specification</a></h1> 171<h1><a class="toc-backref" href="#id6" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
100<p>New projects should send an Request For Comments mail to gentoo-dev (and 172<p>Portage versions prior to 2.1.2.12 (included in 2007.0) don't handle arbitrary
101optionally gentoo-project) in order to received feedback from the Gentoo 173version suffixes and die during various tasks making portage hard or impossible
102community. Once the feedback has been received and changes incorportated into 174to use. Later versions just ignore them displaying warnings. Hence use of
103the goals and design (if any), the project team should send a mail to 175<tt class="docutils literal"><span class="pre">scm</span></tt> suffixes in gentoo-x86 tree will probably have to wait till 2008.0
104gentoo-dev-announce (and optionally gentoo-announce) regarding it's launch.</p> 176release or later.</p>
105<p>The contents of the announcements is left intentionally vague as to not
106restrict the scope of projects, goals, and means. If announcement, projects,
107goals, or means end up being terrible; the authors of this GLEP fully expect
108the community to chew you out over it.</p>
109<p>This GLEP does not empower the community to kill a new project, even if everyone
110decides it sucks.</p>
111</div> 177</div>
112<div class="section"> 178<div class="section">
113<h1><a class="toc-backref" href="#id7" id="copyright" name="copyright">Copyright</a></h1> 179<h1><a class="toc-backref" href="#id7" id="copyright" name="copyright">Copyright</a></h1>
114<p>This document has been placed in the public domain.</p> 180<p>This document has been placed in the public domain.</p>
181<!-- vim: set tw=80 fileencoding=utf-8 spell spelllang=en et : -->
115</div> 182</div>
116 183
117</div> 184</div>
118<div class="footer"> 185<div class="footer">
119<hr class="footer" /> 186<hr class="footer" />
120<a class="reference" href="glep-0054.txt">View document source</a>. 187<a class="reference" href="glep-0054.txt">View document source</a>.
121Generated on: 2007-10-12 02:09 UTC. 188Generated on: 2008-01-06 02:08 UTC.
122Generated 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. 189Generated 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.
123 190
124</div> 191</div>
125</body> 192</body>
126</html> 193</html>

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.20