closeio / ciso8601

Fast ISO8601 date time parser for Python written in C
MIT License
565 stars 45 forks source link

Build wheels for variety of platforms using cibuildwheel #109

Closed kylebarron closed 3 years ago

kylebarron commented 3 years ago

I just came across this project and saw #25. I've set up building wheels on CI for a variety of projects so figured I'd send over a quick PR. This PR provides a working demo of using cibuildwheel to build wheels on CI for a matrix of Python 3.6 through 3.9, PyPy, CPython, Windows, Linux, Mac, and Mac ARM.

Example output from this Github Actions run: artifact.zip (you can only download output if it's your own repo I think)

Contains these files:

ciso8601-2.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
ciso8601-2.2.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
ciso8601-2.2.0-cp36-cp36m-win_amd64.whl
ciso8601-2.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
ciso8601-2.2.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
ciso8601-2.2.0-cp37-cp37m-win_amd64.whl
ciso8601-2.2.0-cp38-cp38-macosx_10_9_universal2.whl
ciso8601-2.2.0-cp38-cp38-macosx_10_9_x86_64.whl
ciso8601-2.2.0-cp38-cp38-macosx_11_0_arm64.whl
ciso8601-2.2.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
ciso8601-2.2.0-cp38-cp38-win_amd64.whl
ciso8601-2.2.0-cp39-cp39-macosx_10_9_universal2.whl
ciso8601-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl
ciso8601-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
ciso8601-2.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
ciso8601-2.2.0-cp39-cp39-win_amd64.whl
ciso8601-2.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
ciso8601-2.2.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
ciso8601-2.2.0-pp37-pypy37_pp73-win_amd64.whl
ciso8601-2.2.0.tar.gz

Notes:

Ref: https://github.com/closeio/ciso8601/issues/97

kylebarron commented 3 years ago

Yeah I expected that you'd want to customize this a bit. cibuildwheel is really amazing. Definitely seems better than a manual approach