Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Third-party/external plugin repository #1995

Open
azeey opened this issue May 20, 2023 · 2 comments
Open

Third-party/external plugin repository #1995

azeey opened this issue May 20, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@azeey
Copy link
Contributor

azeey commented May 20, 2023

Desired behavior

It would be great if there was a centralized/recommended place for third party plugin contributions without being merged into upstream. This would speed up the rate of development of new plugins by the community since there will potentially be a less stringent code review process.

To make this work well, we would provide binary distributions for all supported platforms, but we would also need to develop some infrastructure to make it easy to build that repository and use it with Gazebo seamlessly . This could include things like making sure plugins are installed in the right location or providing colcon hooks so paths are set up correctly.

If we develop the necessary infrastructure to make this work, it could also make plugins developed outside of this central repository (e.g. plugins with incompatible licenses) work well with Gazebo even if we wouldn't provide binary distributions for such repositories.

To speed up the PR review process, we would need help from the community, so perhaps we can have a two phase review process where the initial review would be done by members of the community and once that is complete, it'd be reviewed by the core simulation team.

Alternatives considered

  • Put third-party plugins in a staging area inside the gz-sim repo
  • A wiki page with a list of third-party plugins

cc @srmainwaring @bperseghetti

@azeey azeey added the enhancement New feature or request label May 20, 2023
@jrutgeer
Copy link
Contributor

jrutgeer commented May 26, 2023

Obviously great, but I think you really should also consider the documentation aspect from the start.

It would be great if each plugin would have some standardized description, e.g.:

  • General overview of the functionality it provides,
  • The components it defines and/or uses,
  • If it expects interaction with other plugins to create, initialize, update these components,
  • Which entitities it expects,
  • Etc.

If there is no formal specification of what documentation is needed for a plugin to be includen into the repository, you will typically end up with relatively poor documentation, or even none at all.

@arjo129
Copy link
Contributor

arjo129 commented May 31, 2023

I'd also add we should provide templates that make it easy for end users to write tests to verify that their plugins behave as expected. These tests shouldn't be run with gazebo's core tests but whenever the developers push their plugins.

We could require that developers provide some form of manifest with there plugin describing what parameters exist and what types they should be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: To do
Development

No branches or pull requests

3 participants