Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)
Date: Wed, 27 Jul 2011 07:39:16
Message-Id: 20110727093917.173723f1@pomiocik.lan
1 Hello,
2
3 As many of us already raged, the Python eclasses are delaying half
4 a year with support of EAPI=4. The reason for that is not actually
5 the lack of time or complexity of needed changes but willingness to use
6 the new EAPI as an excuse to turn the eclass API upside down.
7
8 The question I'm raising here: should eclasses be actually allowed to
9 do *heavy* changes in their APIs in such cases? Or should the eclass
10 maintainers create a new eclass instead (python-r1.eclass or so)?
11
12 The main advantage I see in that is that devs are somehow forced
13 to migrate their ebuilds as soon as they bump EAPI in them. Taking
14 a look at a number of ebuilds still using git.eclass (instead of git-2)
15 this is a serious advantage.
16
17 On the other hand, I find this idea very unclear. Why should two
18 ebuilds use completely different eclass variables just because they're
19 using two different EAPIs? More importantly, why is a dev forced to do
20 the migration in a random point when he/she wants to bump the ebuild
21 EAPI? I'd like to remind you that python eclass is still hard to read
22 for many of us.
23
24 And why do we have to wait so long to use a new EAPI? We already had to
25 fix a lot of ebuilds when old EAPIs were banned in Python eclasses. We
26 wanted to bump the ebuilds to EAPI 4 then but the eclasses didn't
27 support it. And now it still doesn't come with EAPI 4 support.
28
29 And keeping two different EAPIs in a single eclass file means probably
30 that older EAPIs are going to be banned at a random point once again.
31 Devs will have to pro-actively migrate their ebuilds, overlays will
32 break and so on. The usual procedure related to eclass removal wouldn't
33 apply.
34
35 So, don't you think it would be better to simply add EAPI=4 support to
36 python eclass with no changes and start developing the new API in
37 python-r1? Devs could migrate then at any point they want (and have
38 time to!), and when Python team wants to get rid of the old eclass,
39 the usual removal procedure will apply.
40
41 --
42 Best regards,
43 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies