Skip to content

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

"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