← Back to issue list

[WIP] catkin plugin: support building with an underlay.

View original Github issue

Metadata

Project
snapcraft
Number
#1140
Type
pull request
State
merged
Author
kyrofa
Labels
Created
Updated
Closed

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.
77%
#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.
77%
#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.
72%