1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA256 |
3 |
|
4 |
On 01/10/15 02:34 PM, Rich Freeman wrote: |
5 |
> On Wed, Sep 16, 2015 at 1:09 PM, Rich Freeman <rich0@g.o> |
6 |
> wrote: |
7 |
>> |
8 |
>> I'll go ahead and start a tangent on this thread right here. |
9 |
>> As a first step can we separately consider the proposal to |
10 |
>> require a revbump anytime a package's RDEPENDS changes? I'm |
11 |
>> referring here to directly-specified RDEPENDS, not those |
12 |
>> inherited from an eclass or virtual. |
13 |
> |
14 |
> Ok, for the purpose of the upcoming council meeting, I'd like to |
15 |
> make a few separate proposals around dynamic dependencies. There |
16 |
> are three categories of policies: 1. RDEPEND changes directly in |
17 |
> ebuilds. 2. RDEPEND changes directly in virtuals. 3. RDEPEND |
18 |
> changes in eclasses. |
19 |
> |
20 |
> Honestly, I'm not really convinced virtuals need special |
21 |
> treatment, but I split them off in case it is useful in |
22 |
> discussion. |
23 |
> |
24 |
> RDEPEND changes directly in ebuilds Proposal 1: Anytime an |
25 |
> RDEPEND in a non-virtual ebuild is changed, the ebuild must be |
26 |
> revisioned. This includes adding/removing inherited eclasses |
27 |
> which set RDEPENDs. |
28 |
> |
29 |
|
30 |
Seconded, with the exclusion of package renames, as those can be |
31 |
handled in-place with 'pkgmove' VDB updates. |
32 |
|
33 |
Slotmove VDB updates *should* be allow slotmove-related changes to |
34 |
be excluded here too, but unfortunately with portage not doing |
35 |
updates to rdeps properly, at this time all rdeps will need to be |
36 |
revbumped when their RDEPEND changes. |
37 |
|
38 |
|
39 |
|
40 |
> RDEPEND changes directly in virtuals Proposal 2: Anytime an |
41 |
> RDEPEND in a virtual ebuild is changed, the ebuild must be |
42 |
> revisioned. This includes adding/removing inherited eclasses |
43 |
> which set RDEPENDs. |
44 |
|
45 |
|
46 |
Seconded; virtuals are empty so its not a big deal here |
47 |
|
48 |
|
49 |
> |
50 |
> RDEPEND changes in eclasses Proposal 3: Anytime an RDEPEND in an |
51 |
> eclass is changed, the eclass must be revisioned. Proposal 4: |
52 |
> Anytime an RDEPEND in an eclass is changed, all ebuilds that |
53 |
> inherit the eclass in the gentoo repository must be revisioned. |
54 |
|
55 |
This one is trickier to deal with. For starters, after thread |
56 |
between yourself and mgorny and I, I think we figured out that there |
57 |
wouldn't be an end-user breakage from people that have emerged a |
58 |
package eclass-rdepend'ing on one depset, when that depset is |
59 |
changed; it just ends up with everyone after the time of the change |
60 |
needing the new depset. |
61 |
|
62 |
There are specific cases where the revbump to rdeps will be |
63 |
necessary (and the eclass itself too, *if* keeping the old eclass |
64 |
around or differentiating which eclass version is inherited actually |
65 |
matters): |
66 |
|
67 |
- - slotmove operations on a dep in *DEPEND |
68 |
- - the addition of blocker atoms due to the introduction of |
69 |
conflicting packages |
70 |
- - the addition of atoms to address implicit dependencies that were |
71 |
missed before (and weren't in the ebuilds) |
72 |
- - adjustments to atoms based on changes made to the dependent |
73 |
package, with the changes now necessary to prevent breakage. (IE: |
74 |
useflags changed in-place on a dep and the packages inheriting the |
75 |
eclass now need to ensure that the new useflag is set) |
76 |
|
77 |
...there are likely other cases but I can't think of any right now. |
78 |
|
79 |
At any rate, the point here being that a simple minimum-version-bump |
80 |
in an eclass RDEPEND does indicate a divergence will occur between |
81 |
end-user VDB and the repo, but that doesn't necessarily mean it's |
82 |
something we need to avoid, or rather, we don't necessarily -need- |
83 |
to enforce convergence between the repo and end-user VDB. |
84 |
|
85 |
|
86 |
Once we get a bit more hashing out of the above I can try writing up |
87 |
the complicated proposal(5?,6?) wording... |
88 |
|
89 |
-----BEGIN PGP SIGNATURE----- |
90 |
Version: GnuPG v2 |
91 |
|
92 |
iF0EAREIAAYFAlYNhJAACgkQAJxUfCtlWe2oXQD2ILHhFlsTJ8FYXbzSROA4hsnE |
93 |
FGV17l9WmWr31NlrpQD+Iw5tbN/qzeDSZZXXv8/YbXu82IhgB5qK3FZjmxdEEkU= |
94 |
=hYNh |
95 |
-----END PGP SIGNATURE----- |