Closed bgilbert closed 8 months ago
All commits have been signed off. You have certified to the terms of the Developer Certificate of Origin, version 1.1. In particular, you certify that this contribution has not been developed using information obtained under a non-disclosure agreement or other license terms that forbid you from contributing it under the GNU Lesser General Public License, version 2.1.
Generate wheels for an
openslide-bin
Python package, containing the OpenSlide shared object and an__init__.py
that loads it withctypes
. OpenSlide Python can look for this package and use its shared object rather than requiring OpenSlide to be installed directly on the system.Hand-roll the wheels rather than building them with an existing tool like meson-python. Existing Python build tools expect to be in control of the entire build process, but we want to produce the wheel as a side effect of an existing build. Our needs are simple, so just implement the underlying packaging specs directly.
Add Python source distribution metadata to the source tarball, but don't allow building via PEP 517. We want to upload the source tarball to PyPI so the complete corresponding source is available alongside the wheels, but it's infeasible to support PEP 517 source builds with our highly customized build process. In practice,
pip install
will only try to do source builds on platforms where a wheel isn't available. Configure PEP 517 builds to use meson-python, then have meson-python fail with an error encouraging users to install OpenSlide from source.Have CI automatically publish the source tarball and wheels to PyPI at release time, via PyPI's trusted publisher mechanism, after manual approval. Have CI verify that the source tarball doesn't exceed PyPI's default 100 MiB limit.
Closes https://github.com/openslide/openslide-bin/issues/160.