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.
Hey :)
I noticed installing
pyminizip
is impossible on minimal environments that lack build tools (i.e.python:slim
,python:alpine
containers).Figured I'd open a PR to have wheels for this package, to make installation easier for users.
Advantages of shipping wheels
Wheel compatibility
Using
cibuildwheel
is super easy for build automation (Great simple template here) and it only takes a couple of minutes to run.At least as a start I've set it to build Intel 64-bit CPython wheels, for 3.6-3.11 (all supported versions in cibuildwheel).
Added workflow also has a job for building a source distribution, to have everything needed for a PyPI release :)
Checking info on pypistats.org it seems like >99% of users are Linux Python 3.7+, so almost every user should benefit.
I kept the default
manylinux2014
image, as pretty much every Python 3.7 user is compatible with it.A small amount of users will still not get wheels because they have an old version of
pip
not supportingmanylinux2014
(See stats here).Anyway - any user with an unsupported platform/old pip will just fallback to the existing behavior and get the
sdist
.List of build artifacts
Example build: https://github.com/ben9923/pyminizip/actions/runs/3170412445
Upload suggestion
It seems like
0.2.6 == master
.In case it's merged, it would be cool to have those wheels uploaded to PyPI for the current release, instead of waiting for a future release (unless one is planned soon).
I also removed
upload.sh
which shouldn't really be involved when sdist+wheels are created by CI.Related to #11