1 |
Hi, everyone. |
2 |
|
3 |
Here's a quick summary of the recent events in the Python ecosystem |
4 |
in Gentoo, and quick note of what's to come. |
5 |
|
6 |
|
7 |
python.eclass is gone, next things to come |
8 |
========================================== |
9 |
|
10 |
As you probably learned already, python.eclass and distutils.eclass were |
11 |
removed almost a month ago. This concluded a long effort of many |
12 |
developers; once again, I would like to thank all of them for their help |
13 |
and continued support. |
14 |
|
15 |
With python.eclass gone, there are still many things to do. A few years |
16 |
ago, Arfrever has been filing bugs requesting developers to improve |
17 |
the use of python.eclass in their ebuilds -- today, we need to ask |
18 |
developers to improve their use of python-r1. |
19 |
|
20 |
The most important tasks at the moment are: |
21 |
|
22 |
a. working on improving test suite statuses of Python packages -- good |
23 |
and reliable test suites make all other work much easier; |
24 |
|
25 |
b. working on porting Python packages to newer versions of CPython 3.5 |
26 |
and 3.6 -- we really ought to stabilize at least 3.5 soon; |
27 |
|
28 |
c. fixing common mistakes in using python-r1 -- missing REQUIRED_USE, |
29 |
dependencies, partial USE conditionals; |
30 |
|
31 |
d. converting the few remaining packages that depend on python directly |
32 |
to use one of the eclasses. |
33 |
|
34 |
|
35 |
gpyutils report updates |
36 |
======================= |
37 |
|
38 |
With the most of python-r1 migration done, I've changed the reports |
39 |
generated by gpyutils a fair bit. I've removed the verbose (and slow to |
40 |
generate) reports for conversions, and killed the progress bars (they |
41 |
were 100% anyway, except for python-any-r1 candidates). |
42 |
|
43 |
The gpy-upgrade-impl reports for python3.6 were added. The upgrade |
44 |
reports now include: |
45 |
|
46 |
https://qa-reports.gentoo.org/output/gpyutils/34-to-35.txt |
47 |
packages that support 3.4 but not 3.5 |
48 |
(preferably try 3.6 as well) |
49 |
|
50 |
https://qa-reports.gentoo.org/output/gpyutils/34-to-35-stablereq.txt |
51 |
packages that need newer version stabilized for 3.5 support |
52 |
|
53 |
https://qa-reports.gentoo.org/output/gpyutils/35-to-36.txt |
54 |
packages that support 3.5 but not 3.6 |
55 |
|
56 |
https://qa-reports.gentoo.org/output/gpyutils/35-to-36-stablereq.txt |
57 |
packages that need newer version stabilized for 3.6 support |
58 |
|
59 |
Aside to those, two important reports were added recently. The first one |
60 |
detects and reports common mistakes in python-r1&co ebuilds. The other |
61 |
one provides a fast listing of all packages that need porting to python- |
62 |
r1&co (i.e. depend on python directly). |
63 |
|
64 |
https://qa-reports.gentoo.org/output/gpyutils/missing-meta.txt |
65 |
packages having common missing metadata bits |
66 |
|
67 |
https://qa-reports.gentoo.org/output/gpyutils/cands.txt |
68 |
packages to port to python-r1&co |
69 |
(note that python-any-r1 classification is usually wrong here, |
70 |
and python-single-r1 should be used instead) |
71 |
|
72 |
While the former set of reports is mostly useful to Python team, |
73 |
the latter set is useful to all developers. Especially with missing- |
74 |
meta, we'd appreciate more developers fixing their own packages without |
75 |
us having to file hundreds of bugs. |
76 |
|
77 |
|
78 |
One-of-py2 + one-of-py3 unreliable, switching to single-r1 |
79 |
========================================================== |
80 |
|
81 |
In other news, we've finally decided to abandon most of the effort to |
82 |
support packages that explicitly provides support for one version of |
83 |
python2 and one version of python3 in plugin systems. Two major cases of |
84 |
this were libpeas (GNOME plugin thingy) and vim. |
85 |
|
86 |
While technically possible to support those use cases, it proved very |
87 |
difficult and unreliable for developers, both downstream and upstream, |
88 |
and unfriendly to our users. |
89 |
|
90 |
The GNOME team has already approved the changes for libpeas, and the new |
91 |
~arch version supports python3 only, via python-single-r1. I will be |
92 |
discussing converting vim to python-single-r1 soon. |
93 |
|
94 |
|
95 |
PYTHON_SINGLE_TARGET changing to python-3 |
96 |
========================================= |
97 |
|
98 |
Last but not least, soap has been working a lot lately to make it |
99 |
possible to finally switch PYTHON_SINGLE_TARGET to python3. The main |
100 |
goal is to make it easier to support the growing number of packages that |
101 |
no longer support python2 (esp. around GNOME). |
102 |
|
103 |
Having to support multiple python3 targets, and at the same time having |
104 |
only one python2_7 (and sometimes pypy) of python2 to support, it proves |
105 |
better long-term to just default to the current version of python3.x via |
106 |
PYTHON_SINGLE_TARGET, and add necessary package.use adjustments to |
107 |
the few packages that support 2.7+pypy, than the other way around. |
108 |
|
109 |
The current changes can be seen on the following pull request: |
110 |
https://github.com/gentoo/gentoo/pull/4299 |
111 |
|
112 |
-- |
113 |
Best regards, |
114 |
Michał Górny |