gazebosim / gazebosim/sdformat
[Proposal] Add Python packaging support for SDFormat
- Dominant language
- C++
- Stars
- 216
- Forks
- 125
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 14
Description
## Desired behavior
SDFormat currently provides Python bindings but no standard way to build and distribute them as Python wheels on PyPI. The proposal is to enable creating a Python wheel using standard packaging tools to allow users to install SDFormat's Python bindings easily through a `pip install` command.
## Alternatives considered
Manual local builds and installs of Python bindings through CMake.
## Implementation suggestion
- Add a `pyproject.toml` and specify `scikit-build` as build backend to automatically produce Python wheels by calling `pip install .`
- Add a minimal `setup.py` to provide metadata and to ensure backwards compatibility.
- Modify `CMakeLists.txt` in `python` directory if necessary to expose proper targets for `scikit-build` to use
- Test and validate against multiple Python versions
## Additional context
- This enhancement will prepare the foundation for automating PyPI publishing though the existing Gazebo release pipeline (to be handled in a separate issue https://github.com/gazebo-tooling/release-tools/issues/1318)
- Testing can be initially done on TestPyPI before publishing official releases on PyPI.
Contributor guide
Assessment
This issue has not been assessed yet.