Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] explicit -r0 in ebuild filename
Date: Sun, 30 Mar 2008 04:18:21
Message-Id: 20080330041651.GA9041@seldon.hsd1.ca.comcast.net
In Reply to: Re: [gentoo-dev] explicit -r0 in ebuild filename by Ciaran McCreesh
1 On Sun, Mar 30, 2008 at 04:20:57AM +0100, Ciaran McCreesh wrote:
2 > On Sat, 29 Mar 2008 20:12:37 -0700
3 > Brian Harring <ferringb@×××××.com> wrote:
4 > > What this email is about is the inconsistancy allowed on disk and the
5 > > fact explicitly leaving -r0 out of on disk name thus far seems to be
6 > > an unofficial gentoo-x86 standard.
7 >
8 > Which means it's not something to be specified in PMS. Devmanual,
9 > possibly, but that's a whole different kettle of fish. (We don't
10 > specify that you should use tabs for indenting in ebuilds in PMS
11 > either.)
12
13 Contrasting tabs vs spaces is a whole other matter. One of the things
14 you attempted to do in splitting PMS was to force certain technical
15 tweaks through because frankly, they made sense (or you were stubborn,
16 and it mostly made sense). That's fine.
17
18 Bearing that in mind, there is no reason to have a format definition
19 for ebuild trees and to leave gotchas in it where they can be easily
20 addressed via simple bannination rules.
21
22
23 > > > Uniquely indentifying an ebuild is an issue regardless of whether or
24 > > > not -r0 is allowed. See PMS section 2.4.
25 > >
26 > > Stating that each cpv in a repo must be unique ignores that there are
27 > > multiple ways to specify certain cpv's due to implicit 0 (both suffix
28 > > and rev). Frankly it's pretty stupid to state "it must be unique"
29 > > while allowing multiple ways for people to screw up and violate that
30 > > constraint.
31 > >
32 > > Intentionally allowing gotchas is dumb behaviour- removal of the
33 > > gotcha is the intention here.
34 >
35 > PMS is going with the tree here. There have always been equivalent but
36 > not equal ways of specifying versions, and people use them.
37
38 Thing is, people *don't*. This is the first time in my experience
39 gentoo wise seeing a -r0 on disk (not rhetoric, literally the truth).
40 Checking the tree for suffixes, specifically for explicit on disk 0
41 (_alpha0 for example):
42
43 _alpha: 1 out of 82, ~1.2%
44 dev-util/cssc-0.15_alpha0 (user address, 'bruce locke'; 2003)
45
46 _beta: 1 out of 255, ~.3%
47 dev-python/visual-4_beta0 (tercel)
48
49 _pre: 4 out of 278, ~1.4%
50 games-board/gtkboard-0.11_pre0 (msterret- bones?, 2003)
51 media-sound/cdparanoia-3.10_pre0-r1 (drac)
52 media-sound/cdparanoia-3.10_pre0 (drac)
53 dev-util/larch-1.0_pre0 (rphillips, 2003)
54
55 _rc: 2 out of 197, ~1%
56 www-client/elinks-0.11.4_rc0 (spock)
57 dev-haskell/hs-plugins-1.0_rc0 (araujo)
58
59 _p: 7 out of 329, ~2.1%
60 sys-fs/owfs-2.7_p0-r2 (wschlich)
61 sys-fs/owfs-2.7_p0 (wschlich)
62 sys-fs/owfs-2.7_p0-r1 (wschlich)
63 app-cdr/dvd95-1.2_p0 (pylon)
64 app-cdr/dvd95-1.3_p0 (pylon)
65 media-fonts/wqy-bitmapfont-0.9.9_p0 (matsuu)
66 net-misc/ntp-4.2.4_p0 (vapier, aka the spankster)
67
68 Fairly obvious, the suffix0 case is pretty rarely used. Quick look
69 at the commiters behind the explict 0 suffixes, you don't see any
70 maintainer actually repeat it in another pkg- personally, I suspect
71 majority of it was new dev mistake, in some cases propagated (wschlich
72 feel free to correct me on this sine you've got the most there). For
73 dvd95, well aware pylon wasn't new at that point, so theory doesn't
74 quite hold there (although oversight may fly).
75
76 Of the ones above, only one I even vaguely recall a reason being given
77 for suffix0 was ntp- mirroring upstream versioning roughly (vapier,
78 please correct me if I'm wrong). Beneficial perhaps, but one single
79 "yeah that's slightly nicer" case doesn't mean it's best for the
80 majority.
81
82
83 > You don't want to start breaking people who use >=..._alpha0 when
84 > the version in the tree uses plain _alpha, for example.
85
86 Explicitly requiring on disk to not specify implicit components in no
87 way breaks atom support, or anything else for that matter. Either
88 this is a minor brain fart on your part, or again, you're going to
89 have to be a fair bit more clear in your explanation.
90
91
92 > Package managers have to deal with this kind of thing, and it's
93 > not one of those areas where we can change reality with little or
94 > no impact.
95
96 While package managers have to deal with this, there are two strong
97 args for forcing such a change into the repo itself;
98
99 1) it is a far simpler rule for devs to keep straight, and for
100 managers to track for violations. Instead of checking for 1.0 when
101 1.0-r0 is found, seeing 1.0-r0 is an error. Clear, concise, simple;
102 meaning folks are less likely to screw it up.
103
104 2) not surprisingly, it actually simplifies manager implementation.
105 Tracking internally whether 1.0 is actually 1.0-r0 on disk or not
106 means extra level of mappings required, meaning more areas to screw it
107 up.
108
109 Basically, this particular problem has always been a thorn; I may be
110 missing something, but I've yet to see any strong scenarios for why
111 this gotcha should be allowed to exist on disk- adding explicit rules
112 blocking it in the ondisk format itself has several benefits as laid
113 out above, and is already pretty much the unofficial policy standard.
114
115 Essentially, the "we don't mandate policy in PMS" is ignoring the
116 technical benefits of doing this- provide a technical reason against
117 it, and I'd be game. That said, calling it policy when it's a dumb
118 gotcha that has benefits for elimination is ducking the issue imo.
119
120 ~harring

Replies

Subject Author
Re: [gentoo-dev] explicit -r0 in ebuild filename Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>