Hi,

I'd like to share my frustration at the state of Python in general,
and Python packages in Gentoo.  So I'd like to 'bootstrap' python3_8 --
that is, add it to the most common dependency, dev-python/setuptools. 
Simple thing, right?


1. There's no such thing as trivial dependency graph in Python.  If you
think that setuptools has a few deps, you're entirely wrong.  I actually
had to write a tool to even assemble list of deps to start with,
and the number is: 174.  I mean, in order to enable py3.8 on setuptools,
you have to enable it on at least 173 other packages.

Sure, some of those packages are just doc-deps or test-deps, and some
could be avoided one way or another.  However, avoiding them is only
temporary and involves more effort than it saves.


2. There are some packages that dropped Python 2.7 but still have 2.7
deps.  So we need to also add py3.8 to older versions that still has
2.7.  Plus, some packages have explicit <-deps.  So we need to add 3.8
to them, and hope that the old version will actually work with 3.8,
and then to their extra dependencies.

This is all handiwork.  The number is now 178 packages, or 187 ebuilds.


3. Of course there are packages with new deps dropping keywords whose
maintainers (or bumpers) never bothered filing a keywordreq.  Because
why bother, somebody else will do that when it blocks everything,
right?!

Well, guess what.  python3_8 flag is going to be masked on non-amd64
because people didn't bother keywording new versions of their packages
on other arches.

If you choose to realize your mistake now, and are willing to fix it,
start keywording new versions.


Here's the initial CI run:

https://github.com/gentoo/gentoo/pull/13638

The packages haven't been tested yet.  If you want to help, feel free to
apply it locally, and run tests in all those packages, and try to
assemble a reasonably readable report of what fails.  Then probably diff
the failures against py3.7 because some packages probably fail there
as well.

Of course many of those packages don't have tests at all.  Because it
was too much effort, and the four-letter company didn't pay for them. 
Because it was too hard to use GitHub snapshot over pypi tarball that
doesn't bundle tests because obviously nobody wants them.  Help with
that welcome too.

Help with getting rid of py2 revdeps of py3-only packages would be very
welcome too.

In other words, there's a lot of work to get Python near-sane in Gentoo,
and we'd welcome all the help we can get.  TIA.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to