sorry for the late response.

I should have considered the multiple-parallel-Python versions case
more when proposing all this. It indeed doesn't make much sense in
this case on Windows.

For a bit of a backstory, I first added abi3 support for our mingw
Python fork since some packages started to require it, and we
generally try to behave the same as the official Python distro there,
unless there is a good reason not to. I just copied this logic over to
our cygwin Python then, because I already had it.

As for the advantages. Besides behaving as upstream expects, you could
build a wheel once and then install it for multiple Python versions.
In PyO3 it allows to build packages that don't support newer Python
versions, by targeting abi3. And you could skip rebuilds for things
embedding Python. All in all not very useful in the context of Cygwin
I'd assume.

So there are some options I can think of for Cygwin with multiple
Python versions:

* Downstream patch packages to disable their use of abi3
* Patch upstream projects to special case cygwin to disable abi3 there
in general
* Ask upstream if they would consider an easy override to disable abi3
via an env var
* Or a hacky way? copy lib/libpython3.12.dll.a to
lib/python3.12/libpython3.dll.a and do LDFLAGS=-L/lib/python3.12 when
needed.

Reply via email to