gazebosim / gazebosim/sdformat

[Proposal] Add Python packaging support for SDFormat

Open
#1,568 8 comments 3 reactions 2 assignees Claimed by @sauk2 View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.