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.
