gazebosim / gazebosim/gz-rendering
Refactor library so it's harder to break ABI
- Dominant language
- C++
- Stars
- 81
- Forks
- 90
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 10
Description
Adding new features to a released version of `ign-rendering` is complicated because of its current inheritance structure. All (most?) [user-facing classes](https://github.com/ignitionrobotics/ign-rendering/tree/main/include/ignition/rendering) are pure-virtual, and adding new pure virtual functions breaks ABI.
We should look into refactoring `ign-rendering` in a way that it's easier to add new APIs without breaking ABI, so that we don't require major version bumps for new features.
Contributor guide
Research direction
Start by reviewing the user-facing classes under include/ignition/rendering and their current inheritance structure. Trace how adding a pure-virtual function affects released ABI and identify the scope of a refactoring that permits new APIs without major version bumps. Done requires an agreed design and implementation plan; the issue provides no specific tests or acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100