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

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

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

Revision 1.1 Revision 1.5
1GLEP: 54 1GLEP: 54
2Title: An "old-school" metastructure proposal with "boot for being a slacker" Part II 2Title: scm package version suffix
3Version: $Revision: 1.1 $ 3Version: $Revision: 1.5 $
4Last-Modified: $Date: 2007/10/12 02:08:27 $ 4Last-Modified: $Date: 2008/01/06 02:08:59 $
5Author: Alec Warner <antarus@gentoo.org> 5Author: Piotr JaroszyƄski <peper@gentoo.org>
6Status: Final 6Status: Draft
7Type: Standards Track 7Type: Standards Track
8Content-Type: text/x-rst 8Content-Type: text/x-rst
9Created: 11-Oct-2007 9Created: 09-Dec-2007
10Replaces: 39
11Requires: 39
12Post-History: 11-Oct-2007 10Post-History: 09-Dec-2007
13
14 11
15Abstract 12Abstract
16======== 13========
17 14
18This GLEP amends GLEP 39[#GLEP39]_. A new project must be announced 15This GLEP proposes addition of a new special package version suffix - ``scm`` -
19to the community prior to it's conception. The announcement should state 16for ebuilds checking out source directly from a source code management system.
20the project goals, the plan to achieve those goals, and any other information
21deemed useful to the community by the person proposing a new project.
22
23 17
24Motivation 18Motivation
25========== 19==========
26 20
27Projects were being started behind the scenes that people were not aware of; 21Currently there is no standard way of identifying SCM ebuilds. Using 9999 as the
28this included developers and users alike. It was thought important to notify 22version is pretty common, but it is handled like any other ebuild and hence
29the community of new projects. This also enables new projects to get valuable 23portage cannot provide any additional features for packages with such a version.
30feedback before getting to far into design and implementation. 24Another way is adding a separate package with a -cvs suffix in its name, but
25that forces the author to use ``|| ( cat/pkg cat/pkg-cvs )`` dependencies. The
26closest to what is proposed in this GLEP is the ``cvs`` version part, but its
27implementation is of very limited use. It has strange comparison rules, no
28documentation, has been used sparingly (if ever) and has a misleading name.
29
30The possibility for package managers to recognise SCM ebuilds would allow them
31to add features dedicated specially to said ebuilds. One such feature could be
32automatic re-installation of SCM packages once a day or week. Any
33specifications for such features are beyond the scope of this GLEP.
34
35Specification
36=============
31 37
32 38
33Rationale 39``scm`` is a special suffix. It can be used on its own, but also in any other
34========= 40valid version spec, just before the place where revision would go. And just like
41revision it can be used only once in a version spec, e.g.:
35 42
36We hope projects receiving feedback fare better in the long run with regards 43 * ``cat/pkg-1.0_alpha0-scm``
37to general reception as well as meeting the goals set forth in their 44 * ``cat/pkg-1.0_alpha-scm``
38announcement. We hope projects announced early get more volunteers by virtue 45 * ``cat/pkg-1.0-scm-r3``
39of being announced and in the community's view. 46 * ``cat/pkg-1-scm``
47 * ``cat/pkg-1-scm-r2``
48 * ``cat/pkg-scm``
49
50These package atoms are sorted in ascending order (see `Version Comparison`_).
51
52Version Comparison
53==================
54
55The addition of the scm suffix yields changes in version comparison:
56
57 * When comparing version components from left to right the scm component has the
58 highest priority over other version components. Hence
59 ``pkg-1_alpha-r3 < pkg-1-scm``, 'scm' is greater than 'alpha-r3'.
60 * Current suffixes with no number part no longer default to zero if they are
61 followed by an scm suffix. If that's the case the number part is considered
62 to be of a maximum value. Hence ``1_alpha2-scm < 1_alpha-scm``, but still
63 ``1_alpha == 1_alpha0``. The rationale behind this choice is to allow
64 multiple branches. For instance imagine a package with an alpha branch
65 and multiple scm releases, as the following: ``alpha-scm``,
66 ``alpha2-scm``, ``alpha3-scm`` and so forth. The desired outcome is
67 for ``alpha-scm`` to be greater than all other branches of the same tree.
68
69Example parsing:
70
71 * ``cat/pkg-scm > cat/pkg-1``
72 When parsing from left to right the first difference is ``scm`` and
73 ``1``. ``cat/pkg-scm`` wins.
74 * ``cat/pkg-1-scm > cat/pkg-1.0-scm``
75 When parsing from left to right the first difference is ``scm`` and
76 ``0``. ``cat/pkg-1-scm`` wins.
77 * ``cat/pkg-1_alpha-scm > cat/pkg-1_alpha1-scm``
78 In the first package version ``alpha`` doesn't have a number part *and*
79 is followed by an ``scm`` suffix, hence it is considered to have a maximum
80 value as the number part. When parsing from left to right the first
81 difference is the number part of the ``alpha`` suffix. Maximum value
82 yielded by the following ``scm`` suffix wins with ``1``.
83
84List of version specs in ascending order:
85
86 * ``1``
87 * ``1.1-scm``
88 * ``1.2_alpha-scm``
89 * ``1.2_beta_p``
90 * ``1.2_beta_p0-scm``
91 * ``1.2_beta_p1-scm``
92 * ``1.2_beta_p-scm``
93 * ``1.2_beta1_p-scm``
94 * ``1.2_beta10``
95 * ``1.2_beta10_p1-scm``
96 * ``1.2_beta10-scm``
97 * ``1.2_beta-scm``
98 * ``1.2``
99 * ``1.2-scm``
100 * ``1.2-scm-r1``
101 * ``1-scm``
102 * ``10``
103 * ``scm``
104 * ``scm-r3``
40 105
41 106
42Backwards Compatibility 107Backwards Compatibility
43======================= 108=======================
44 109
45Projects already announced before 19-Oct-2006 are not affected. Since this 110Portage versions prior to 2.1.2.12 (included in 2007.0) don't handle arbitrary
46GLEP was authored nearly a year later, conceivably projects announced since 111version suffixes and die during various tasks making portage hard or impossible
47then should retroactively send mail regarding their goals and means to achieve 112to use. Later versions just ignore them displaying warnings. Hence use of
48them if they have not done so already; otherwise they would be in breach of 113``scm`` suffixes in gentoo-x86 tree will probably have to wait till 2008.0
49policy set in 2006. 114release or later.
50
51
52Specification
53=============
54
55New projects should send an Request For Comments mail to gentoo-dev (and
56optionally gentoo-project) in order to received feedback from the Gentoo
57community. Once the feedback has been received and changes incorportated into
58the goals and design (if any), the project team should send a mail to
59gentoo-dev-announce (and optionally gentoo-announce) regarding it's launch.
60
61The contents of the announcements is left intentionally vague as to not
62restrict the scope of projects, goals, and means. If announcement, projects,
63goals, or means end up being terrible; the authors of this GLEP fully expect
64the community to chew you out over it.
65
66This GLEP does not empower the community to kill a new project, even if everyone
67decides it sucks.
68
69 115
70Copyright 116Copyright
71========= 117=========
72 118
73This document has been placed in the public domain. 119This document has been placed in the public domain.
74 120
121.. vim: set tw=80 fileencoding=utf-8 spell spelllang=en et :

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.20