Gentoo Archives: gentoo-dev

From: Kent Fredric <kentnl@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: Eclasses and EAPI
Date: Tue, 06 Sep 2016 10:45:55
Message-Id: 20160906224459.58062ef6@katipo2.lan
In Reply to: Re: [gentoo-dev] RFC: Eclasses and EAPI by "Michał Górny"
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"

Replies

Subject Author
Re: [gentoo-dev] RFC: Eclasses and EAPI Kristian Fiskerstrand <k_f@g.o>