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

[vpdq] Use scikit-build-core build backend for Python binding #1721

Draft
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

ianwal
Copy link
Contributor

@ianwal ianwal commented Dec 13, 2024

Summary

WIP. Follow up PR to some comments in #1711. Posting draft now in case I don't end up finishing it soon and someone else wants to pick it up and for general input. Seems like a no-brainer if it works, though.

Replace the hackish custom setup.py script that is used to build the Cython binding with scikit-build-core

Basic code skeleton taken from the scikit-build-core example

No API changes for the end user. ABI change is not a concern for the Python binding, as the entire library will be replaced on upgrade.

TODO:

  • Set [tool.scikit-build.cmake.build-type] to RelWithDebInfo

  • Ensure we don't need cmake in requires in pyproject.toml. Double check the scikit-build-core docs for this.

  • Add scikit-build-core with a known good version to requirements.txt, remove setuptools

Test Plan

CI tests building and installing locally.

TODO:

  • Test building sdist in one venv and installing in another fresh venv
  • Test building wheel on one Linux distro and installing on another (for good measure)
  • Test uploading wheel to PyPI test server and installing it.

@Dcallies
Copy link
Contributor

Thanks again for the help!

@ianwal ianwal force-pushed the vpdq-python-scikit-build branch from e06867e to e9ea232 Compare December 14, 2024 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants