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