gazebosim / gazebosim/gz-rendering

Refactor library so it's harder to break ABI

Open
#166 0 comments 0 reactions 0 assignees View on GitHub
enhancement proposal
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.