Packaging
Main package
python -m pip install -U build
python -m build
This produces dist/*.whl and dist/*.tar.gz for the main package.
Extension module
python -m pip install -U build pybind11 wheel
python -m build
For manylinux and macOS wheels (CI uses this), run cibuildwheel:
python -m pip install -U cibuildwheel
CIBW_BUILD="cp39-*" CIBW_SKIP="pp* *musllinux*" \
python -m cibuildwheel --output-dir dist
Notes:
The extension demo builds native binaries (.so/.pyd).
A C/C++ compiler is required on the build machine.
Release tagging
When you create a git tag (for example, v1.0.0), the CI workflow builds
packages, publishes them to PyPI, and attaches artifacts to the GitHub Release.
PyPI
This project publishes to PyPI on tag builds. You can also publish manually:
python -m pip install -U twine
python -m twine upload dist/*
Use a PyPI API token for authentication.