1 |
Ciaran McCreesh posted on Thu, 30 Aug 2012 21:11:02 +0100 as excerpted: |
2 |
|
3 |
> On Thu, 30 Aug 2012 16:05:52 -0400 Michael Mol <mikemol@×××××.com> |
4 |
> wrote: |
5 |
>> Compile a list of existing ebuilds which depend on old EAPIs, and |
6 |
>> you've got a TODO list. (eclasses, I don't know; I don't know if |
7 |
>> eclasses explicitly express EAPI compatibility in metadata) Once that |
8 |
>> list is cleared, yes, you can assume there are no ebuilds with a |
9 |
>> specified EAPI of 0. I'd presume it would have been made widely known |
10 |
>> that new ebuilds shouldn't use the old EAPI by that point, and so |
11 |
>> support for the deprecated EAPI level can be abandoned. |
12 |
> |
13 |
> You can't uninstall a package if you don't support its EAPI. |
14 |
> |
15 |
> The "remove code" benefit applies to eclasses, not package manglers. |
16 |
|
17 |
I've seen that reason given before, and it makes sense... to a point. |
18 |
|
19 |
Would this work, tho? |
20 |
|
21 |
In addition to the tree clean of EAPI-X to be dropped... |
22 |
|
23 |
Some minimum time/versions (say six months) before a PM drops support for |
24 |
it, on PM upgrades it starts warning about the coming drop of EAPI-X |
25 |
support, giving the user a reasonable deadline (the same six months) to |
26 |
upgrade or uninstall said packages as PM versions after that date will be |
27 |
dropping support. |
28 |
|
29 |
Then at a shorter deadline (say two months), start warning at each PM |
30 |
invocation. |
31 |
|
32 |
When the upgrade that will drop support appears, if any packages of now |
33 |
unsupported EAPI-X remain installed, it simply dies with a warning that |
34 |
upgrading isn't possible as unsupported packages remain installed, |
35 |
instructing the user to upgrade or unmerge them first, before upgrading |
36 |
the PM. |
37 |
|
38 |
By this time, the tree would have been clean of EAPI-X for the longer |
39 |
deadline (six months in this example), and the warning will have appeared |
40 |
on PM upgrade for the same period and on every PM invocation for the |
41 |
shorter period (two months here), so people doing anything close to |
42 |
regular upgrades will have long since upgraded past or unmerged whatever |
43 |
lagging packages they had merged. |
44 |
|
45 |
For the people that do NOT upgrade frequently, the die before PM upgrade |
46 |
will force the issue, if/when they DO decide to upgrade. |
47 |
|
48 |
Covering the case where the troublesome packages themselves have moved on |
49 |
beyond something the installed PM can handle, it's still possible to |
50 |
unmerge the package temporarily, then merge it again after they upgrade. |
51 |
|
52 |
(If thought necessary, the usual I_KNOW_WHAT_IM_DOING override could be |
53 |
inserted, but in this case I think simply having them unmerge the |
54 |
packages in question is the safer alternative. After all, it's only |
55 |
going to hit the folks who are SO far out of date that there's no |
56 |
bridging package version available, for the offending package.) |
57 |
|
58 |
Of course there'd need to be special consideration given to critical |
59 |
toolchain and system boot packages, but /that's/ nothing new. |
60 |
|
61 |
And as has always been the case, for the /extreme/ laggards, at some |
62 |
point, say two years out or whatever, simply don't support upgrading that |
63 |
far any more, with a clean install from stage-3 being the recommended |
64 |
alternative. |
65 |
|
66 |
Of course an individual PM could choose to keep support for as long as |
67 |
they want, but unless I'm missing something, that'd let PMs drop support |
68 |
for old EAPIs if desired, with at least a reasonably sane upgrade path |
69 |
for both PM devs and users. |
70 |
|
71 |
-- |
72 |
Duncan - List replies preferred. No HTML msgs. |
73 |
"Every nonfree program has a lord, a master -- |
74 |
and if you use the program, he is your master." Richard Stallman |