Update CI to build wheels for linux + osx with cibuildwheel #288
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR overhauls whats being done in CI, so that wheel builds are done in a similar manor to lxml using cibuildwheel. This should let us push wheels for all platforms out to PyPi. Right now this PR just attaches the built wheels to the build as an artifact, since I don't have any access to PyPi for this repo. cibuildwheel has some guidance in their docs as to how to upload the built wheels to PyPi.
Since I've changed around the actions, I don't think they will run until a admin enables them on this PR, or the PR is merged. But you can see in my fork what the build process looks like.
I bumped the minimum supported version of
lxml
up to 5.0.0, so that the version oflibxml2
that is statically linked by the build process matches the version that is shipped withlxml
. I also added a CI workflow that tests a matrix of:python
:lxml
:libxmlsec1
:setup.py
was updated to:openssl
1.1.1. Static builds were not linking against the latest before.openssl
3.x versions, but the build requirements are different, so I didn't take that on as part of this PR.--enable-rebuild-docs
arg to configure forlibxml2
, since it no longer existslibxmlsec1
with--enable-md5
build arg, required for the tests to pass, otherwise the built wheel has a symbol missingNote: This PR does not do anything to build wheels for Windows. I don't have a lot of windows build experience, and it looks like the existing builds depend on pre-built binaries in some other repo. Someone with more experience on Windows will have to do that work. Once the windows wheel builds are working, we should be able to package them up the same way as the osx and linux builds. I left a comment in the
wheel.yml
job pointing to how to make this change.