AcademySoftwareFoundation / AcademySoftwareFoundation/Imath
Set up a wheel workflow for python bindings
- Dominant language
- C++
- Stars
- 488
- Forks
- 161
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 3
Description
Use OpenEXR's [wheel workflow](https://github.com/AcademySoftwareFoundation/openexr/blob/main/.github/workflows/python-wheels.yml) as a template: copy OpenEXR's python_wheels.yml, python_wheels_publish.yml, python_wheels_publish_test.yml, and pyproject.toml files into Imath and get it work. Ignore the publish workflows to start with; getting the basic wheel workflow building is the significant first step.
Install the PyImath and PyImathNumpy modules. Ignore the PyBindImath, which should be deprecated and removed.
PyImath uses Boost.Python, so this will require building Boost.Python from source, since actions/cibuildwheel needs installations that the build environments don’t provide. cibuildwheel builds against a matrix of python versions and machine architectures across Linux, macOS, and Windows.
Build the same matrix of python/architectures as OpenEXR. This is mostly an exercise in getting Boost.Python to build across these combinations.
Contributor guide
Research direction
Compare OpenEXR's .github/workflows/python_wheels.yml, python_wheels_publish.yml, python_wheels_publish_test.yml, and pyproject.toml with Imath's layout. Start with the basic wheel workflow and its Boost.Python build requirements, ignoring publishing workflows initially. Done means PyImath and PyImathNumpy build across OpenEXR's Python-version and architecture matrix on Linux, macOS, and Windows, without PyBindImath.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, github-actions, python
- Domain
- build-system, ci-cd
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100