Update CI to build wheels for linux + osx with cibuildwheel#288
Closed
jonathangreen wants to merge 3 commits intoxmlsec:masterfrom
Closed
Update CI to build wheels for linux + osx with cibuildwheel#288jonathangreen wants to merge 3 commits intoxmlsec:masterfrom
jonathangreen wants to merge 3 commits intoxmlsec:masterfrom
Conversation
c88d649 to
21c4f5a
Compare
21c4f5a to
84458bf
Compare
Contributor
Author
|
Happy to break this one up into a series of smaller PRs, if this one is too large / too wide reaching. Happy to incorporate any feedback. I'd love to see at least some of the work in this PR get merged into this repo. I think being able to publish staticly linked wheels for linux / osx would be a big win, and would ease the pain for end users of this package of making sure libxml2 stays in sync between this package and lxml. |
Contributor
Author
Contributor
Author
|
Going to close this one, and open some more targeted PR instead that might be easier to review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
lxmlup to 5.0.0, so that the version oflibxml2that 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.pywas updated to:openssl1.1.1. Static builds were not linking against the latest before.openssl3.x versions, but the build requirements are different, so I didn't take that on as part of this PR.--enable-rebuild-docsarg to configure forlibxml2, since it no longer existslibxmlsec1with--enable-md5build 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.ymljob pointing to how to make this change.