[WIP] catkin plugin: support building with an underlay.
Metadata
Current evaluation
Merged changes adding an underlay property to the Catkin plugin, enabling ROS dependency sharing. Resolves LP: #1664776. Approved and merged after addressing a regression from PR #1146.
Suggested action: —
No scores available.
Issue body
Currently the Catkin plugin simply pulls down all dependencies of the workspace being built using rosdep. This doesn't work for the cases of trying to create a ROS system that utilizes content sharing, as it forces each snap to bundle their dependencies even when it's undesired.
This PR resolves LP: [#1664776](https://bugs.launchpad.net/snapcraft/+bug/1664776) by adding support for an `underlay` property to the Catkin plugin, which accepts a build-time underlay path for when the consumer snap is being built (which is searched for dependencies before fetching them), as well as a run-time underlay path for when the consumer snap is being run (so the workspace can be properly overlaid).
**Note:** This is the first of two PRs. The second adds a demo (and a snaps_test) that utilizes this. It might be helpful to see how this is used, though, so feel free to [check out the demo](https://github.com/kyrofa/snapcraft/tree/feature/1664776/catkin_underlay_snaps_tests/demos/shared-ros).
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged changes adding an underlay property to the Catkin plugin, enabling ROS dependency sharing. Resolves LP: #1664776. Approved and merged after addressing a regression from PR #1146. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged the catkin plugin update adding an underlay property for build and runtime dependency paths, resolving LP #1664776. Despite WIP status and breakage from #1146, it was merged to enable ROS content sharing without bundling dependencies. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged after resolving a regression from PR #1146. Adds an underlay property to the Catkin plugin for build and runtime paths, preventing unnecessary dependency bundling. Resolves LP #1664776. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1664776 Catkin plugin: support building with an underlay | snapcraft (launchpad) | closed | Closed without implementation due to lack of activity. The feature request to add underlay support to the Catkin plugin was abandoned. | |
| #1526 catkin plugin: don't assume catkin is in underlay | snapcraft | merged | Merged fix updating the catkin plugin to use its isolated installation instead of assuming catkin exists in the underlay. Resolves Launchpad bug #1696014. Includes reviewer-requested test naming updates. Approved and merged. | |
| #2525 catkin plugin: check stage-snaps for ROS dependencies | snapcraft | merged | Merged to master. Updates the catkin plugin to check stage-snaps for ROS dependencies, preventing redundant fetching by treating them like underlays. Resolves Launchpad bug #1823788. Approved, passed CI, and merged. |