1 |
On Mon, 5 Sep 2016 15:03:36 +0200 |
2 |
Michał Górny <mgorny@g.o> wrote: |
3 |
|
4 |
> On Fri, 2 Sep 2016 18:13:20 +0200 |
5 |
> Kristian Fiskerstrand <k_f@g.o> wrote: |
6 |
> |
7 |
> > I'm wondering whether it wouldn't make sense to require eclasses (or |
8 |
> > strongly encourage) to include an explicit list of EAPIs it has been |
9 |
> > tested for in order to ease testing when introducing new EAPIs. |
10 |
> > |
11 |
> > We have seen some issues already with EAPI6 bump related to get_libdir |
12 |
> > and people updating EAPI in ebuild without properly testing the |
13 |
> > inherited eclasses. having a whitelist in place and die if eclass is not |
14 |
> > updated to handle it solves it. |
15 |
> > |
16 |
> > Thoughts? comments? cookies? threats? |
17 |
> |
18 |
> +1. Because: |
19 |
> |
20 |
> 1. it makes it possible to change API safely with EAPI bump, including |
21 |
> major refactorings, |
22 |
> |
23 |
> 2. it makes it possible for the eclass maintainer to confirm that |
24 |
> the eclass is correctly ported to new EAPI, rather than some random |
25 |
> developer with poor knowledge of eclass assuming it works fine, |
26 |
> |
27 |
> 3. it makes it possible to ban the eclass in a new EAPI to more |
28 |
> effectively phase it out. |
29 |
> |
30 |
> This only reminds me of the cases when eclasses weren't calling |
31 |
> eapply_user in EAPI 6 and caused ebuilds to fail. Because someone |
32 |
> assumed that if his ebuild works in EAPI 6, then the eclass is |
33 |
> certainly correct. |
34 |
> |
35 |
|
36 |
My only question is how we enforce it. |
37 |
|
38 |
Given that eclasses are themselves without EAPI, and relying on this |
39 |
check existing in PMS would require such a feature defined in a future EAPI |
40 |
|
41 |
I suspect for the forseeable future we're going to need to double our effort, |
42 |
having a whitelist that is only able to be interpreted by PMS clients that implement |
43 |
EAPI7, and then the traditional logic for Pre-EAPI7. |
44 |
|
45 |
And then when EAPI7 rolls around, all the eclasses without the EAPI7 magic hints |
46 |
will be assumed "not to support EAPI7+" |
47 |
|
48 |
And to support EAPI7, you must declare your support for the other EAPIs too. |
49 |
|
50 |
Though I never figured it was a question of "should we", we rather should. |
51 |
|
52 |
Only a question of "How do we do it" |