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

Python 3.13 wheels #2052

Merged
merged 4 commits into from
Sep 24, 2024
Merged

Conversation

remia
Copy link
Collaborator

@remia remia commented Sep 21, 2024

Here is a list of changes included:

  • Bumping cibuildwheel, we should have working macOS ARM testing
  • Bumping the default pybind11 version used in the build (no strong reason but seems like a good time)
  • Adding Python 3.13 wheels and removing 3.7 wheels
  • Fixing macOS build issues related to the deployment target and recent updates in cibuildwheel
  • FIxing Windows test issues related to DLL search directory, the exact cause has not been identified but the workflow should now complete successfully. Debugging was made harder as I haven't been able to get any print out of the OpenColorTestSuite.py, even after increasing build-verbosity to 3 in cibuildwheel (warnings worked though). Use of dlltracer (stdout or stderr or audit events) didn't yield any results, but might if the debug print issue is fixed (though it probably depends on when the segfault is triggered exactly).

Tagging @KelSolaar

@remia remia linked an issue Sep 21, 2024 that may be closed by this pull request
@@ -13,6 +13,7 @@ classifiers =
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we pop the Programming Language :: Python :: 3.7 classifier above?

Copy link
Collaborator Author

@remia remia Sep 22, 2024

Choose a reason for hiding this comment

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

Good point and I was also wondering about it, here we simply remove wheels for 3.7 but users could still build manually for Python 3.7 and use it. We are still testing Python 3.7 with the VFX 2020 platform docker images, though it's about to be removed in the VFX 2024 PR. So all that to say that I have no objections to remove :)

Copy link
Contributor

Choose a reason for hiding this comment

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

Looking at the Scientific Python SPEC0, support for Python 3.10 is about to be dropped: https://scientific-python.org/specs/spec-0000/, CY2023 is Python 3.10, and Python 3.7 is CY2021.

I think that as a whole, there should be an ASWF consensus on which minimum Python version to support, especially when some of the core packages we are relying on, e.g., Numpy have seen their support dropped. In Colour, we split the apple in two and support the previous VFX Reference Platform year as minimum. Let's discuss at TSC.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I forgot that VFX 2021 is still using Python 3.7, for now let's keep it in there as there was no strong feeling against at yesterday TSC. We should definitively make sure we have a defined plan for older platform support so worth discussing at the next TSC when you are there :)

@KelSolaar
Copy link
Contributor

LGTM besides the classifier.

Copy link
Collaborator

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

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

Thanks for fixing this Remi!

Copy link
Collaborator

@zachlewis zachlewis left a comment

Choose a reason for hiding this comment

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

Nice work!
Really strange, that the OCIO_PYTHON_LOAD_DLLS_FROM_PATH thing is causing problems. That's pretty baffling.

Do we want to support free-threaded mode too for Python 3.13?

@remia
Copy link
Collaborator Author

remia commented Sep 23, 2024

Nice work! Really strange, that the OCIO_PYTHON_LOAD_DLLS_FROM_PATH thing is causing problems. That's pretty baffling.

Do we want to support free-threaded mode too for Python 3.13?

For the segfault, let's continue the discussion in #2040!

I don't think we have the resources to add support for GIL-free Python in the coming release and not exactly sure yet what work will be required to be honest. From a quick look, I assume we have to upgrade to pybind 2.13 and start using py::mod_gil_not_used() to check whether we need to handle unlocking / locking the GIL or not?

@remia remia merged commit 77e92a9 into AcademySoftwareFoundation:main Sep 24, 2024
63 checks passed
@remia remia deleted the python_313_wheels branch September 24, 2024 13:41
chrisnashdisguise pushed a commit to chrisnashdisguise/OpenColorIO that referenced this pull request Oct 30, 2024
* Python 3.13 wheels

Signed-off-by: Rémi Achard <[email protected]>

* Build mac ARM wheels on Apple Silicon runners to enable testing

Signed-off-by: Rémi Achard <[email protected]>

* Fix upload_pypi job dependencies

Signed-off-by: Rémi Achard <[email protected]>

---------

Signed-off-by: Rémi Achard <[email protected]>
Signed-off-by: Chris Nash <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Python Wheels Action broken on Windows
4 participants