What I have heard repeatedly, from people who are paid to know, is that most users don’t care about the latest features, and would rather stick to a release until it becomes unsupported. (Extreme example: Python 2.)

Numpy isn’t random, it’s at the bottom of the food chain for a large ecosystem or two — if it doesn’t support a new Python release, none of its dependent packages can even start porting. (I guess only Cython is even lower, but it’s a build-time tool. And indeed it has supported 3.10 for a long time.)

—Guido

On Mon, Sep 27, 2021 at 23:01 Nathaniel Smith <njs@pobox.com> wrote:
On Sun, Sep 26, 2021 at 3:38 AM <jack.jansen@cwi.nl> wrote:
> Open3D is an example. Will finally move to Python 3.9 some time the coming month. Its dependency graph contains about 70 other packages.
>
> In this specific case, the underlying problem was that TensorFlow was stuck at 3.8. The TensorFlow codebase got ported in November 2020, then released early 2021. Then Open3D included the new Tensorflow (plus whatever else needed to be adapted) in their codebase in May. They’re now going through their release schedule, and their 0.14 release should be up on PyPI soon.

I took a minute to look up the release dates to fill in this timeline:

Python 3.9 released: October 2020
Tensorflow adds 3.9 support: November 2020
Tensorflow v2.5.0 released with the new 3.9 support: May 2021
Open3d adds 3.9 support: May 2021
First Open3d release to include the new 3.9 support: ~October 2021

So it seems like in this case at least, the year long delay consists
of ~1 month of porting work, and ~11 months of projects letting the
finished code sit in their repos without shipping to users.

It seems like the core problem here is that these projects don't
consider it important to keep up with the latest Python release. I'm
not sure what CPython upstream can do about that. Maybe you could
lobby these projects to ship releases more promptly?

By contrast, to pick a random library that uses the unstable C API
extensively, NumPy is already shipping wheels for 3.10 -- and 3.10
isn't even out yet. So it's certainly possible to do, even for
projects with a tiny fraction of Tensorflow's engineering budget.

-n

--
Nathaniel J. Smith -- https://vorpus.org
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-leave@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/OGBANTGGJAI2ZM5SYSLCWFGRIML5VWUL/
Code of Conduct: http://python.org/psf/codeofconduct/
--
--Guido (mobile)