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 |