1 |
On Sun, Jul 27, 2014 at 6:43 AM, Kent Fredric <kentfredric@×××××.com> wrote: |
2 |
> |
3 |
> In a "no dynamic deps, period" scenario, this just strikes me as 2 flavours |
4 |
> of the same weirdness, -r2 and -r1.1 are just equally weird choices to make |
5 |
> if the ebuild itself doesn't change at all. |
6 |
|
7 |
You have a good point here. |
8 |
|
9 |
With this proposal we have three kinds of ebuild changes: |
10 |
1. Those that do not involve any revbump. |
11 |
2. Those with a "minor" revbump (ie -r1 -> -r1.1). |
12 |
3. Those with a normal revbump (ie -r1 -> -r2). |
13 |
|
14 |
What is the purpose of allowing the first? Presumably that should be |
15 |
used in even more limited circumstances than a minor revbump, so why |
16 |
allow it at all? Why not just make an in-place change equivalent to a |
17 |
minor revbump and ditch the minor revbump entirely? Devs would still |
18 |
need to distinguish between what requires a revbump and what does not. |
19 |
|
20 |
Doing this would require having portage cache a hash of whatever |
21 |
ebuild it last parsed, and perhaps its eclasses as well if we permit |
22 |
revbump-less eclass changes. Then it would have to check for when |
23 |
these change, perhaps this might be stored in the metadata to speed |
24 |
things up. |
25 |
|
26 |
You could view such an approach as being equivalent to just sticking a |
27 |
".hash" on every ebuild in the tree as a minor revision tag, so that |
28 |
any change triggers a minor revision. The only difference between |
29 |
that and the proposal that I can see is that the minor revisions would |
30 |
be unordered. However, if we go with the theory that defective |
31 |
ebuilds get removed immediately then there is no point in ordering |
32 |
minor revisions because there will only be one in the tree at any time |
33 |
for a given major revision, so the package manager couldn't take |
34 |
advantage of any information conveyed by ordering. |
35 |
|
36 |
This probably isn't too different from what portage is doing already, except: |
37 |
1. Portage is only looking for dependency changes when it has another |
38 |
reason to look closely at the ebuild - it has no mechanism to detect |
39 |
that an ebuild changes, and this would add one. |
40 |
2. We don't have any clear policies today on when ebuilds should be |
41 |
revbumped or not as the result of things like dependency changes, and |
42 |
this would cause us to make some. |
43 |
|
44 |
The fact that this isn't a big change does concern me that it may not |
45 |
fix all of the underlying problems. However, some of those problems |
46 |
might not actually have clean solutions other than never committing |
47 |
mistakes in the first place. For example, if a prerm dependency was |
48 |
missing then removing the ebuild can potentially fail whether you use |
49 |
dynamic deps or not until it is satisfied. |
50 |
|
51 |
Rich |