Gentoo Archives: gentoo-dev

From: Rich Freeman <rich0@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] Dynamic dependencies
Date: Thu, 01 Oct 2015 18:34:30
Message-Id: CAGfcS_nUZg55pkYnwxPf97-uvYLj-CB9=ydwkuMUJ01CVLmMpQ@mail.gmail.com
In Reply to: Re: [gentoo-dev] Dynamic dependencies by Rich Freeman
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

Replies

Subject Author
Re: [gentoo-dev] Dynamic dependencies Ian Stakenvicius <axs@g.o>
Re: [gentoo-dev] Dynamic dependencies Michael Orlitzky <mjo@g.o>