1 |
Hi, |
2 |
|
3 |
I'd like to share my frustration at the state of Python in general, |
4 |
and Python packages in Gentoo. So I'd like to 'bootstrap' python3_8 -- |
5 |
that is, add it to the most common dependency, dev-python/setuptools. |
6 |
Simple thing, right? |
7 |
|
8 |
|
9 |
1. There's no such thing as trivial dependency graph in Python. If you |
10 |
think that setuptools has a few deps, you're entirely wrong. I actually |
11 |
had to write a tool to even assemble list of deps to start with, |
12 |
and the number is: 174. I mean, in order to enable py3.8 on setuptools, |
13 |
you have to enable it on at least 173 other packages. |
14 |
|
15 |
Sure, some of those packages are just doc-deps or test-deps, and some |
16 |
could be avoided one way or another. However, avoiding them is only |
17 |
temporary and involves more effort than it saves. |
18 |
|
19 |
|
20 |
2. There are some packages that dropped Python 2.7 but still have 2.7 |
21 |
deps. So we need to also add py3.8 to older versions that still has |
22 |
2.7. Plus, some packages have explicit <-deps. So we need to add 3.8 |
23 |
to them, and hope that the old version will actually work with 3.8, |
24 |
and then to their extra dependencies. |
25 |
|
26 |
This is all handiwork. The number is now 178 packages, or 187 ebuilds. |
27 |
|
28 |
|
29 |
3. Of course there are packages with new deps dropping keywords whose |
30 |
maintainers (or bumpers) never bothered filing a keywordreq. Because |
31 |
why bother, somebody else will do that when it blocks everything, |
32 |
right?! |
33 |
|
34 |
Well, guess what. python3_8 flag is going to be masked on non-amd64 |
35 |
because people didn't bother keywording new versions of their packages |
36 |
on other arches. |
37 |
|
38 |
If you choose to realize your mistake now, and are willing to fix it, |
39 |
start keywording new versions. |
40 |
|
41 |
|
42 |
Here's the initial CI run: |
43 |
|
44 |
https://github.com/gentoo/gentoo/pull/13638 |
45 |
|
46 |
The packages haven't been tested yet. If you want to help, feel free to |
47 |
apply it locally, and run tests in all those packages, and try to |
48 |
assemble a reasonably readable report of what fails. Then probably diff |
49 |
the failures against py3.7 because some packages probably fail there |
50 |
as well. |
51 |
|
52 |
Of course many of those packages don't have tests at all. Because it |
53 |
was too much effort, and the four-letter company didn't pay for them. |
54 |
Because it was too hard to use GitHub snapshot over pypi tarball that |
55 |
doesn't bundle tests because obviously nobody wants them. Help with |
56 |
that welcome too. |
57 |
|
58 |
Help with getting rid of py2 revdeps of py3-only packages would be very |
59 |
welcome too. |
60 |
|
61 |
In other words, there's a lot of work to get Python near-sane in Gentoo, |
62 |
and we'd welcome all the help we can get. TIA. |
63 |
|
64 |
-- |
65 |
Best regards, |
66 |
Michał Górny |