Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to PEP 621 project metadata; build sdist and all wheels in CI #237

Merged
merged 8 commits into from
Nov 2, 2023

Conversation

bgilbert
Copy link
Member

@bgilbert bgilbert commented Nov 1, 2023

Switch away from setup.py as much as possible. Drop obsolete test_suite and zip_safe settings. Combine multi-word keywords. Add repo and documentation URLs. Move tool configurations into pyproject.toml where possible. PEP 621 support requires setuptools ≥ 61.

Build the source tarball and wheels for Linux, macOS, and Windows in GitHub Actions using the Python build package. The Linux wheels support manylinux1 and above, after postprocessing with auditwheel, because the extension module doesn't use libc functions. The macOS wheels are multi-arch on Python 3.9+.

While we're here, minor release procedure updates: update the Fedora package and check that it propagated to the Copr before announcing the release; additionally announce releases to forum.image.sc.

Update Fedora and check that it propagated to the Copr before announcing.
Also announce to forum.image.sc.

Signed-off-by: Benjamin Gilbert <[email protected]>
7z will fail if given an HTTP error page, so this is only a cleanup.

Signed-off-by: Benjamin Gilbert <[email protected]>
Drop obsolete test_suite and zip_safe settings.  Combine multi-word
keywords.  Add repo and documentation URLs.

PEP 621 support requires setuptools >= 61.

Closes: openslide#167
Signed-off-by: Benjamin Gilbert <[email protected]>
It's the build tool currently recommended by PyPA.  Since it builds in
a venv, we can stop installing some dependencies.

Signed-off-by: Benjamin Gilbert <[email protected]>
@openslide-bot
Copy link

openslide-bot commented Nov 1, 2023

DCO signed off ✔️

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.

The convert module doesn't use any libc APIs, so we can build on any Linux
distro and auditwheel will tag the wheel as the oldest manylinux.

auditwheel requires setuptools on Python 3.12 for distutils.

Fixes: openslide#126
Fixes: openslide#187
Signed-off-by: Benjamin Gilbert <[email protected]>
By omitting the `python -m build` -w argument in one job, verify that the
source tarball can successfully build a wheel.  Use that source tarball in
releases rather than building it on a developer's machine.

Signed-off-by: Benjamin Gilbert <[email protected]>
Signed-off-by: Benjamin Gilbert <[email protected]>
pre-commit will not support pyproject.toml, and flake8 doesn't support it
yet.

Signed-off-by: Benjamin Gilbert <[email protected]>
@bgilbert bgilbert merged commit 72eb0d1 into openslide:main Nov 2, 2023
18 checks passed
@bgilbert bgilbert deleted the setuptools branch November 2, 2023 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants