1 |
On Wed, Sep 16, 2015 at 1:09 PM, Rich Freeman <rich0@g.o> wrote: |
2 |
> |
3 |
> I'll go ahead and start a tangent on this thread right here. As a |
4 |
> first step can we separately consider the proposal to require a |
5 |
> revbump anytime a package's RDEPENDS changes? I'm referring here to |
6 |
> directly-specified RDEPENDS, not those inherited from an eclass or |
7 |
> virtual. |
8 |
|
9 |
Ok, for the purpose of the upcoming council meeting, I'd like to make |
10 |
a few separate proposals around dynamic dependencies. |
11 |
There are three categories of policies: |
12 |
1. RDEPEND changes directly in ebuilds. |
13 |
2. RDEPEND changes directly in virtuals. |
14 |
3. RDEPEND changes in eclasses. |
15 |
|
16 |
Honestly, I'm not really convinced virtuals need special treatment, |
17 |
but I split them off in case it is useful in discussion. |
18 |
|
19 |
RDEPEND changes directly in ebuilds |
20 |
Proposal 1: Anytime an RDEPEND in a non-virtual ebuild is changed, the |
21 |
ebuild must be revisioned. This includes adding/removing inherited |
22 |
eclasses which set RDEPENDs. |
23 |
|
24 |
RDEPEND changes directly in virtuals |
25 |
Proposal 2: Anytime an RDEPEND in a virtual ebuild is changed, the |
26 |
ebuild must be revisioned. This includes adding/removing inherited |
27 |
eclasses which set RDEPENDs. |
28 |
|
29 |
RDEPEND changes in eclasses |
30 |
Proposal 3: Anytime an RDEPEND in an eclass is changed, the eclass |
31 |
must be revisioned. |
32 |
Proposal 4: Anytime an RDEPEND in an eclass is changed, all ebuilds |
33 |
that inherit the eclass in the gentoo repository must be revisioned. |
34 |
|
35 |
Please speak up if you have any issues with any of these. |
36 |
|
37 |
I'm leaning towards adopting 1, 2, and 4. I would actually prefer 3 |
38 |
to 4 on principle, but we don't have a good way of retiring obsolete |
39 |
eclasses and I don't want to see a huge multiplication in them. If we |
40 |
did adopt #3 we should probably start thinking about more consistent |
41 |
version numbering for eclasses since I could see multiple active |
42 |
series of eclass versions being updated in parallel. |
43 |
|
44 |
I'll also note that the wording of Proposal 4 doesn't preclude doing |
45 |
proposal 3 if the eclass maintainer thinks it is appropriate (maybe |
46 |
the RDEPEND should only change in some circumstances or there are |
47 |
other changes happening at the same time). The wording of Proposal 4 |
48 |
refers to when an eclass is changed, and if you make the change in a |
49 |
new revision you aren't changing the previous one, and so you don't |
50 |
need to bump all the ebuilds. Of course the ebuilds would still need |
51 |
to be bumped if they were modified to use the new eclass, per proposal |
52 |
1. |
53 |
|
54 |
Proposal 3 is superior to proposal 4 from the standpoint of overlays |
55 |
that use eclasses in the main repository, since nobody will be going |
56 |
around and revbumping their ebuilds. Of course, any eclass change |
57 |
should be posted on -dev and so there would be notice. |
58 |
|
59 |
Adopting 1, 2, and at least one of 3 or 4 would eliminate all the |
60 |
dynamic dependency issues in the tree. If anybody is aware of any |
61 |
that I missed and I'll add them. |
62 |
|
63 |
Also, in the event proposal 1 and 2 are both adopted, here is proposed |
64 |
streamlined wording: |
65 |
Proposal 5: Anytime an RDEPEND in an ebuild is changed, the ebuild |
66 |
must be revisioned. This includes adding/removing inherited eclasses |
67 |
which set RDEPENDs. |
68 |
|
69 |
However, the council doesn't have to approve the literal wording of |
70 |
everything in the devmanual, so that might be overkill. The devmanual |
71 |
can of course explain the rationale for avoiding dynamic deps/etc. |
72 |
|
73 |
-- |
74 |
Rich |