Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: don't rely on dynamic deps
Date: Mon, 28 Jul 2014 18:27:16
Message-Id: 53D695F6.7050302@gentoo.org
In Reply to: Re: [gentoo-dev] Re: don't rely on dynamic deps by Rich Freeman
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 27/07/14 08:04 AM, Rich Freeman wrote:
5 > On Sun, Jul 27, 2014 at 6:43 AM, Kent Fredric
6 > <kentfredric@×××××.com> wrote:
7 >>
8 >> In a "no dynamic deps, period" scenario, this just strikes me as
9 >> 2 flavours of the same weirdness, -r2 and -r1.1 are just equally
10 >> weird choices to make if the ebuild itself doesn't change at
11 >> all.
12 >
13 > You have a good point here.
14 >
15 > With this proposal we have three kinds of ebuild changes: 1. Those
16 > that do not involve any revbump. 2. Those with a "minor" revbump
17 > (ie -r1 -> -r1.1). 3. Those with a normal revbump (ie -r1 ->
18 > -r2).
19 >
20 > What is the purpose of allowing the first? Presumably that should
21 > be used in even more limited circumstances than a minor revbump, so
22 > why allow it at all? Why not just make an in-place change
23 > equivalent to a minor revbump and ditch the minor revbump entirely?
24 > Devs would still need to distinguish between what requires a
25 > revbump and what does not.
26 >
27 > Doing this would require having portage cache a hash of whatever
28 > ebuild it last parsed, and perhaps its eclasses as well if we
29 > permit revbump-less eclass changes. Then it would have to check
30 > for when these change, perhaps this might be stored in the metadata
31 > to speed things up.
32 >
33 > You could view such an approach as being equivalent to just
34 > sticking a ".hash" on every ebuild in the tree as a minor revision
35 > tag, so that any change triggers a minor revision. The only
36 > difference between that and the proposal that I can see is that the
37 > minor revisions would be unordered. However, if we go with the
38 > theory that defective ebuilds get removed immediately then there is
39 > no point in ordering minor revisions because there will only be one
40 > in the tree at any time for a given major revision, so the package
41 > manager couldn't take advantage of any information conveyed by
42 > ordering.
43 >
44 > This probably isn't too different from what portage is doing
45 > already, except: 1. Portage is only looking for dependency changes
46 > when it has another reason to look closely at the ebuild - it has
47 > no mechanism to detect that an ebuild changes, and this would add
48 > one. 2. We don't have any clear policies today on when ebuilds
49 > should be revbumped or not as the result of things like dependency
50 > changes, and this would cause us to make some.
51 >
52 > The fact that this isn't a big change does concern me that it may
53 > not fix all of the underlying problems. However, some of those
54 > problems might not actually have clean solutions other than never
55 > committing mistakes in the first place. For example, if a prerm
56 > dependency was missing then removing the ebuild can potentially
57 > fail whether you use dynamic deps or not until it is satisfied.
58 >
59
60 The primary underlying problem I see about this is that it doesn't
61 force devs to start doing something to the tree that will suddenly
62 help make all of the static-deps-only PMs (ie, those that aren't going
63 to implement this new hash-changed-so-re-evaluate-ebuild method)
64 suddenly work in a more consistent fashion. IIRC, the very first post
65 of this thread was a reminder to dev's to revbump so that static-deps
66 behaviour is more correct/consistent.
67
68
69 However, if we put something into the next EAPI about this and make it
70 a requirement for all PMs (although I have no idea how we would roll
71 this out; maybe make it a profile-level requirement instead of an
72 ebuild-level one, if there is such a thing??) then it would become
73 much less of an issue.. Mind you, we need to solve all of the
74 problems first and make sure PMS documents all of the requirements in
75 an appropriately complete and ambiguity-preventing manner that
76 everyone agrees with.. Easy, right? :)
77
78
79
80
81
82 -----BEGIN PGP SIGNATURE-----
83 Version: GnuPG v2
84
85 iF4EAREIAAYFAlPWlfYACgkQ2ugaI38ACPApTwD9H+PX4f1XGtauwbjfXczPqAYf
86 yBqDW9MOwIlWPCqeu6IA/ipySyWxA/J12RSuLTNyj98li9Qmeq0GLR37KSZ2Cc/p
87 =05lZ
88 -----END PGP SIGNATURE-----

Replies

Subject Author
Re: [gentoo-dev] Re: don't rely on dynamic deps Rich Freeman <rich0@g.o>