Skip to content

Choose how the grippers SDK is delivered to ROS consumers (submodule vs vendor package) #36

Description

@ebarnett3

Deferred from the review of #20 — a strategy decision, not a code change.

Problem

The repo vendors the SDK as a git submodule at extern/grippers. It builds, and colcon picks it up, but it forces every consumer to clone recursively: a plain git clone followed by colcon build fails with a confusing missing-CMakeLists error. That is a poor first experience.

Options on the table

  • git submodule (status quo) — no infrastructure, requires --recurse-submodules.
  • Vendor/wrapper ament package — a small vendor package that fetches and builds the SDK at build time, the way libserialport-style vendor packages do. The reviewer's preference: least effort of the alternatives, and no recursive clone.
  • Further options are laid out in the PDF attached to the discussion: ROS C++ SDK Integration Strategies.pdf

Considerations

  • The SDK is versioned independently of this repo, so whatever we pick has to pin a version and make bumping it reviewable.
  • Offline and air-gapped builds: a vendor package that downloads at build time breaks them, a submodule does not.
  • Once the SDK is released and installable, a plain find_package against a rosdep-installed SDK becomes the endgame — this choice should not block that.

Discussion

#20 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions