Build linux wheels with cibuildwheels
Wheels are a magical thing for python - it simplifies so much, and removes the compilation process from the users side. Here, I propose we start by building a "wheelhouse" for linux systems, that we can upload. We can construct them in appveyor for windows and macOS eventually, if we wish - I verified it works, but it will be uploaded on appveyor not gitlab. But I think having the linux wheels is a good starting point.
Wheels are built using the cibuildwheels
package, and is not meant to be run on your local machine, only in the CI. It uses Python downloaded from the source anyway, so any local python install is irrelevant. The build takes a while (~5-10 minutes ish, that's why I limited the linux build to only manylinux), so it shouldn't be triggered all the time, just when we plan on uploading to PyPI.
The idea is that we can build the wheels on gitlab, and when we then want to distribute download the wheels and upload them together with the source when we upload using twine
. I believe we can upload files after the first twine upload, but otherwise we need to figure out how to do it all in 1 go.
Edit: I verified (on another project), that it is indeed possible to upload the wheels later, as long as the version numbers match. So these wheels wouldn't necessarily have to be uploaded along with the sdist
anwyay.