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 |