1 |
On Sun, 2 Sep 2012 20:46:19 +0200 |
2 |
Fabio Erculiani <lxnay@g.o> wrote: |
3 |
> On Sun, Sep 2, 2012 at 8:08 PM, Ciaran McCreesh |
4 |
> <ciaran.mccreesh@××××××××××.com> wrote: |
5 |
> > and we have worked out all the difficulties. |
6 |
> |
7 |
> Please elaborate. What difficulties? What did you implement other than |
8 |
> plain SDEPEND? With what features? Lots of detail missing. |
9 |
|
10 |
The big issues you're ignoring: |
11 |
|
12 |
* What to do if a package has an SDEPEND upon cat/pkg[x] and the user |
13 |
has cat/pkg[-x] installed, or if another package in the resolution |
14 |
depends upon cat/pkg and the user hasn't specified USE=x. Similarly, |
15 |
an SDEPEND upon >=cat/pkg-2.1 and the user has cat/pkg-2.0 (which is |
16 |
in the same slot as 2.1) installed. The right answer is to force a |
17 |
reinstall with [x] / force the upgrade, and for the spec to |
18 |
explicitly require this from implementations, but *why* this is the |
19 |
case is fairly subtle. |
20 |
|
21 |
* How to handle groups of dependencies in suggestions. |
22 |
|
23 |
* How to display suggestions to the user, and allow the user to |
24 |
confirm or reject suggestions. From a spec perspective, we don't |
25 |
mandate any particular behaviour, but we do need to make sure that a |
26 |
good quality implementation is possible. With SDEPEND as you're |
27 |
proposing, we're going to have exactly the same issues we currently |
28 |
have with REQUIRED_USE and blockers: ebuilds won't provide enough |
29 |
information to provide a good user interface. |
30 |
|
31 |
* What use? blocks in SDEPEND actually mean. Again, there's a right |
32 |
answer here: it's for when a particular suggestion requires the base |
33 |
package to be built in a particular way. |
34 |
|
35 |
> > Having said that, if we're going with suggested dependencies for |
36 |
> > EAPI 5 (which I strongly suspect won't happen, since we seem to be |
37 |
> > wanting EAPI 5 now rather than in several years time...) then |
38 |
> > there's a lot more to getting it right than is mentioned in the |
39 |
> > original post, and it needs to be written up properly. |
40 |
> |
41 |
> Well, this depends on the quality of the PMS architecture, I am not |
42 |
> familiar with Paludis tho. |
43 |
|
44 |
Paludis already has it. The question is whether it can be implemented |
45 |
for Portage. |
46 |
|
47 |
> I don't remember to have listed anything about what needs to be done |
48 |
> at the implementation level actually, nor I really wanted to. |
49 |
|
50 |
That's a problem. You can't just magically describe a vague feature and |
51 |
expect it to be implementable. |
52 |
|
53 |
> I always use the 5 minutes "rule of thumb" strategy to understand the |
54 |
> complexity of proposals: if it takes me more than 5 minutes to |
55 |
> understand it, then users (!= devs) will have to go through the same |
56 |
> or more "wtf-period". And the probability of them "giving up / getting |
57 |
> sick / ignoring it" is linear with the wtf-period. |
58 |
|
59 |
There's a big difference between understanding things for developers, |
60 |
and getting it right for implementation. Where possible, users and |
61 |
developers should only need a shallow understanding of a feature to be |
62 |
able to use it, but for the purposes of the spec and the |
63 |
implementation, we need a proper deep understanding of the topic, and |
64 |
you aren't giving that. |
65 |
|
66 |
-- |
67 |
Ciaran McCreesh |