Inconsistent handling of python3-module vs python3x-module packages

Adam Dinwoodie adam@dinwoodie.org
Wed Feb 16 11:10:59 GMT 2022


While wrangling a bunch of Python packages for my Cygwin installation,
I've noticed an inconsistency about how python3 vs python3x packages are
installed.

As an example: the python3 package itself describes itself as a
meta-package; the package itself is almost empty, and the key thing
selecting the package does is depend on the latest python3x package,
currently python39.  The same behaviour is in place with, for example,
python3-tkinter.

However the python3-pytest package is marked as obsolete, and is
obsoleted by python36-pytest.  If I select python3-pytest for
installation, the package that's actually installed is python36-pytest,
even though there's a python39-pytest package available.

This inconsistency means that someone naively installing python3-tkinter
and python3-pytest will end up with both python3.9 and python3.6
installed, with neither installation having access to both the pytest
and tkinter modules.

I think this inconsistency is liable to cause confusion; it certainly
confused me until I worked out what was going on.  In my ideal world,
we'd be in a situation where I could specify `python3-foo` to an install
script and it'd automatically pick up the latest Python version
available; I could specify `python3x-foo` if I wanted a specific older
release.  But at the very least, I'd really like to see these packages
being handled consistently one way or another.

Adam


More information about the Cygwin mailing list