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

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

Revision 1.2 Revision 1.4
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.2 $ 3Version: $Revision: 1.4 $
4Last-Modified: $Date: 2007/10/12 10:34:08 $ 4Last-Modified: $Date: 2007/12/17 18:42:33 $
5Author: Alec Warner <antarus@gentoo.org> 5Author: Piotr JaroszyƄski <peper@gentoo.org>
6Status: Final 6Status: Draft
7Type: Informational 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
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.
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 marking 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 separate package with -cvs suffix in its name, but that
25forces to use ``|| ( cat/pkg cat/pkg-cvs )`` dependencies. The closest to what
26is proposed in this GLEP is the ``cvs`` version part, but its implementation is
27of very limited use. It has strange comparison rules, no documentation, has
28never been used in the tree and has a misleading name.
31 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, but that's beyond
33this GLEP.
32 34
33Rationale 35Specification
34========= 36=============
35 37
36We hope projects receiving feedback fare better in the long run with regards 38``scm`` is a special suffix. It can be used on its own, but also in any other
37to general reception as well as meeting the goals set forth in their 39valid version spec, just before the place where revision would go. And just like
38announcement. We hope projects announced early get more volunteers by virtue 40revision it can be used only once in a version spec, e.g.:
39of being announced and in the community's view. 41
42 * ``cat/pkg-1.0_alpha0-scm``
43 * ``cat/pkg-1.0_alpha-scm``
44 * ``cat/pkg-1.0-scm-r3``
45 * ``cat/pkg-1-scm``
46 * ``cat/pkg-1-scm-r2``
47 * ``cat/pkg-scm``
49These package atoms are sorted in ascending order (see `Version Comparison`_).
51Version Comparison
54The addition of the scm suffix yields changes in version comparison:
56 * When comparing version components from left to right the scm component has the
57 highest priority.
58 * Current suffixes with no number part no longer default to zero if they are
59 followed by an scm suffix. If that's the case the number part is considered
60 to be of a maximum value. Hence ``1_alpha2-scm < 1_alpha-scm``, but still
61 ``1_alpha == 1_alpha0``.
63Example parsing:
65 * ``cat/pkg-scm > cat/pkg-1``
66 When parsing from left to right the first difference is ``scm`` and
67 ``1``. ``cat/pkg-scm`` wins.
68 * ``cat/pkg-1-scm > cat/pkg-1.0-scm``
69 When parsing from left to right the first difference is ``scm`` and
70 ``0``. ``cat/pkg-1-scm`` wins.
71 * ``cat/pkg-1_alpha-scm > cat/pkg-1_alpha1-scm``
72 In the first package version ``alpha`` doesn't have a number part *and*
73 is followed by an ``scm`` suffix, hence it is considered to have a maximum
74 value as the number part. When parsing from left to right the first
75 difference is the number part of the ``alpha`` suffix. Maximum value
76 yielded by the following ``scm`` suffix wins with ``1``.
78List of version specs in ascending order:
80 * ``1``
81 * ``1.1-scm``
82 * ``1.2_alpha-scm``
83 * ``1.2_beta_p``
84 * ``1.2_beta_p0-scm``
85 * ``1.2_beta_p1-scm``
86 * ``1.2_beta_p-scm``
87 * ``1.2_beta1_p-scm``
88 * ``1.2_beta10``
89 * ``1.2_beta10_p1-scm``
90 * ``1.2_beta10-scm``
91 * ``1.2_beta-scm``
92 * ``1.2``
93 * ``1.2-scm``
94 * ``1.2-scm-r1``
95 * ``1-scm``
96 * ``10``
97 * ``scm``
98 * ``scm-r3``
40 99
41 100
42Backwards Compatibility 101Backwards Compatibility
43======================= 102=======================
44 103
45Projects already announced before 19-Oct-2006 are not affected. Since this 104Portage versions prior to (included in 2007.0) don't handle arbitrary
46GLEP was authored nearly a year later, conceivably projects announced since 105version suffixes and die during various tasks making portage hard or impossible
47then should retroactively send mail regarding their goals and means to achieve 106to 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 107``scm`` suffixes in gentoo-x86 tree will probably have to wait till 2008.0
49policy set in 2006. 108release or later.
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.
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.
66This GLEP does not empower the community to kill a new project, even if everyone
67decides it sucks.
69 109
70Copyright 110Copyright
71========= 111=========
72 112
73This document has been placed in the public domain. 113This document has been placed in the public domain.
74 114
115.. vim: set tw=80 fileencoding=utf-8 spell spelllang=en et :

Removed from v.1.2  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.20