1 |
On Wed, 25 Feb 2009 00:21:23 +0200 |
2 |
Petteri Räty <betelgeuse@g.o> wrote: |
3 |
> 3) EAPI in locked down place in the ebuild |
4 |
|
5 |
There's a less extreme variant on this that's slightly cleaner, and |
6 |
with appropriate weaseling is also less messy. Simply add the following |
7 |
very carefully worded additional requirement for future EAPIs, and |
8 |
retroactively impose it upon current ones: |
9 |
|
10 |
If EAPI is to be set, it must be set strictly before any global scope |
11 |
command or package manager defined function is called. Once set, EAPI |
12 |
must not be set to a different value. |
13 |
|
14 |
Then, the migration path is as follows: |
15 |
|
16 |
* Fix existing violations (including ones in overlays). Wait a while |
17 |
until everyone's synced. |
18 |
|
19 |
* Get package managers to make use of these stricter requirements to |
20 |
avoid barfing ickily when using things with future EAPIs with |
21 |
different global scope rules. |
22 |
|
23 |
* Wait a year. New EAPIs can come out in the mean time, but they can't |
24 |
change global scope behaviour. |
25 |
|
26 |
* Use that year to migrate to the key=value cache format with a second, |
27 |
package-manager-only versioned variable that lets package managers |
28 |
check cache validity even for unsupported EAPIs so long as there |
29 |
aren't any cache validation rule changes. |
30 |
|
31 |
* Change global scope behaviour in new EAPIs at will, but not versioning |
32 |
rules. |
33 |
|
34 |
Note that this is functionally equivalent to Brian's eapi as a function |
35 |
proposal, but much less messy. It's also as powerful for the package |
36 |
manager as fixed-position, but less inflexible. So if you must go with |
37 |
something other than GLEP 55, along with all the restrictions and mess |
38 |
that doing so imposes, this is the one to pick... |
39 |
|
40 |
-- |
41 |
Ciaran McCreesh |