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 python build to scikit-build-core #1816

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

Conversation

JeanChristopheMorinPerso
Copy link
Member

@JeanChristopheMorinPerso JeanChristopheMorinPerso commented Nov 23, 2024

Summarize your change.

The current python builds use setuptools which is really complicated and hard to maintain. This PR replaces setuptools with a more recent and modern build backend that was specifically designed to support CMake+Python. That backend is scikit-build-core.

Note that this is not the old scikit-build. It's from the same people, but it's not the same thing. scikit-buil was building on top of setuptools. scikit-build-core is a complete rewrite and doesn't rely on setuptools.

This makes the build, debugging and packaging experience much better.

scikit-build-core is now widely used and has active maintainers. It's also used by other projects in the ASWF (https://github.com/AcademySoftwareFoundation/MaterialX, https://github.com/AcademySoftwareFoundation/openexr, AcademySoftwareFoundation/OpenImageIO#4428 for example).

I'm leaving this PR as a draft because there are some failures on Python 3.7 and I'm not too sure why.

TODO:

  • Compare files in sdist and wheels to make sure they match with setuptools generated ones.
  • Compare metadata in wheels with setuptools generated metadata.
  • Update documentation on how to build the python library.

@github-actions github-actions bot added dependencies Pull requests that update a dependency file ci python-bindings otioview labels Nov 23, 2024
Signed-off-by: Jean-Christophe Morin <[email protected]>
@@ -93,6 +93,7 @@ jobs:
py_build_test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
fail-fast: false

pyproject.toml Outdated Show resolved Hide resolved
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",

Signed-off-by: Jean-Christophe Morin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci dependencies Pull requests that update a dependency file documentation otioview python-bindings
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant