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 |