After you've built your wheels, you'll probably want to deliver them to PyPI.
Manual method¶
On your development machine, do the following...
# Clear out your 'dist' folder.
rm -rf dist
# Make a source distribution
python setup.py sdist
# 🏃🏻
# Go and download your wheel files from wherever you put them. e.g. your CI
# provider can be configured to store them for you. Put them all into the
# 'dist' folder.
# Upload using 'twine' (you may need to 'pip install twine')
twine upload dist/*
Semi-automatic method using wheelhouse-uploader¶
Obviously, manual steps are for chumps, so we can automate this a little by using wheelhouse-uploader.
Quick note from me - using S3 as a storage didn't work due to a bug in libcloud. Feel free to use my fork of that package that fixes the bug
pip install https://github.com/joerick/libcloud/archive/v1.5.0-s3fix.zip
Automatic method¶
If you don't need much control over the release of a package, you can set up cibuildwheel to deliver the wheels straight to PyPI. This doesn't require anycloud storage to work - you just need to bump the version and tag it.
examples/travis-ci-deploy.yml
and examples/github-deploy.yml
are example configurations that automatically upload wheels to PyPI. Also check out this example repo for more detailed instructions on how to set this up.