Add Cygwin build on AppVeyor by embray · Pull Request #8463 · python/cpython (original) (raw)
Note: Depends on #4348, #8445, #8712 as prerequisites, without which Python does not even build on Cygwin.
This adds a configuration to our AppVeyor builds to build/test on 64-bit Cygwin in addition to the native Windows build (32-bit Cygwin is increasingly less supported by the Cygwin community, and I'm not interested in supporting it for Python).
This PR should not be merged until at least #4348, #8445, and #8712 (or some equivalent alternatives) are merged, as they are the bare minimum necessary to get Python building on Cygwin. (Some extension modules fail to build as well--this is a bug with a known fix, but I have not included it for now since it only means some extensions can't be built/tested).
I started this work last year, but took an approach that was self-defeating: There are still numerous test failures on Cygwin, and I had hoped to fix all of them before requesting to add Cygwin to our CI. However, it's rather impractical time-wise to get all those issues fixed, especially considering the catch-22 of not having CI for Cygwin in the first place with which to test the fixes.
Therefore my approach this time is to brute-force disable all the modules that contain failures (~45) so that we can at least start with a nominally "passing" build on Cygwin. If we can get that up and running, it will decrease the number of new failures. Meanwhile, I volunteer to hack away at reducing the number of test modules that need to be disabled.
In fact, I already have fixes for roughly half of them. I just need to make issues/PRs for many of those fixes, and it will be better to have the CI implemented in the first place to help get those fixes merged.
I would consider this a prerequisite for getting a buildbot working for Cygwin, which I also have preliminary work on; again it's mostly a matter of disabling some known failures.