Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: "Paweł Hajdan, Jr." <phajdan.jr@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] rfc: calling all eclass phase functions by default
Date: Sun, 17 Aug 2014 07:17:51
Message-Id: 20140817091829.59b2e3da@pomiot.lan
In Reply to: Re: [gentoo-dev] rfc: calling all eclass phase functions by default by "Paweł Hajdan
1 Dnia 2014-08-17, o godz. 09:06:04
2 "Paweł Hajdan, Jr." <phajdan.jr@g.o> napisał(a):
3
4 > On 8/17/14, 12:32 AM, Kent Fredric wrote:
5 > > Collison systems I've seen usually do one of two things:
6 > >
7 > > - In the event of a collision, demand the consumer resolve the problem by
8 > > redefining the function the collision occurs on in terms of its composite
9 > > parts. ( which is basically what we already do )
10 > > - Declare syntax to "exclude" a potential collision from either composite
11 > > part.
12 > >
13 > > Our only real difference at present is unlike these systems, we assume we
14 > > can simply guess which one wins and just choose it automatically, where
15 > > collision systems tend to force you to deal with the situation if any
16 > > collision occurs.
17 >
18 > This makes sense to me. Can we consider starting with just a repoman
19 > warning for the collision cases?
20
21 Not really. First, you have to run a policy that prohibits solving them
22 through inherit order through QA. And saying for myself, I doubt I
23 would vote for a proposal which forces me to write more ebuild code.
24
25 Once QA agrees on a policy, we can add a matching repoman check.
26 Otherwise, it's full of false positives and a topic of bikeshed,
27 and then it is reverted.
28
29 > The warning would make the problem more visible to ebuild writers. Then
30 > we already have a solution that works, i.e. explicitly defining the
31 > phase function in the ebuild, possibly calling the eclass functions.
32 >
33 > My understanding is people not being aware of the problem is the main
34 > issue here, not the ability to address it.
35
36 What we could do is printing the phase function names when starting
37 them, e.g.:
38
39 >>> [foo_src_compile] Compiling sources in ...
40
41 As for another idea, we could warn if an eclass overrides phase
42 function via implicit inherit without redefining it. As I see it, this
43 is the biggest issue here, and a solution that's relatively easy to
44 accept.
45
46 --
47 Best regards,
48 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies