catkin plugin: check workspace for dependencies
Metadata
Current evaluation
Merged. Resolves LP: #1832044 by updating the Catkin plugin to use rospack for workspace dependency resolution instead of relying solely on the rosdep index. Approved by reviewers and passed all CI checks.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh tests/unit`?
-----
Currently the Catkin plugin doesn't check the workspace for dependencies, which causes the build to fail if a declared dependency isn't contained within the rosdep index (even though it's satisfied by another package in the workspace). Until rosdep [grows the ability to do this on its own](https://github.com/ros-infrastructure/rosdep/issues/685), this PR resolves [LP: #1832044](https://bugs.launchpad.net/snapcraft/+bug/1832044) by adding the ability for the snapcraft CLI to do this manually, using `rospack` to enumerate the packages contained in the workspace and filtering dependencies through that list.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Resolves LP: #1832044 by updating the Catkin plugin to use rospack for workspace dependency resolution instead of relying solely on the rosdep index. Approved by reviewers and passed all CI checks. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a catkin plugin fix resolving build failures when workspace dependencies lack rosdep entries. The update uses rospack to enumerate local packages and filter dependencies, addressing LP: #1832044. Changes passed tests with 96.36% diff coverage. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged fix for the Catkin plugin to resolve workspace dependencies using rospack, addressing LP #1832044. Builds now succeed when dependencies are satisfied by other workspace packages instead of the rosdep index. Changes are available on the edge channel. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2847 Catkin plugin: consider only 'local' workspaces | snapcraft | merged | Merged. Fixes catkin plugin dependency resolution in destructive mode by passing the --local flag when sourcing ROS setup scripts. This prevents host ROS paths from leaking into workspace searches. Approved by three reviewers. | |
| #1832044 Catkin plugin doesn't check the workspace for dependencies | snapcraft (launchpad) | closed | The catkin plugin incorrectly errors on workspace-local dependencies due to a rosdep bug. The report was closed without a fix or resolution. | |
| #1743 catkin plugin: support building entire workspace | snapcraft | merged | Merged. The catkin-packages property is now optional. When omitted, the plugin builds the entire workspace. Resolves LP: #1721168. Approved by two reviewers with passing CI checks. | |
| #2833 catkin: remove rospack workaround | snapcraft | merged | Merged removal of a catkin rospack workaround, reverting #2585 as rosdep now natively ignores source packages. Approved by three reviewers and passed CI checks. | |
| #331 Catkin plugin: Handle rosdep empty and multiple dependencies. | snapcraft | merged | Merged refactoring of the Catkin plugin rosdep resolver to handle empty results and multiple dependencies per line. Fixes Launchpad bugs #1548406 and #1548404. Approved by maintainer sergiusens. | |
| #1581 catkin plugin: support rosdep pip dependencies | snapcraft | merged | Merged implementation adding pip-based dependency support to the Catkin plugin's rosdep resolver, resolving Launchpad bug #1683036. Approved by one reviewer, passed CI, and modified 12 files. | |
| #163 Catkin plugin: use rosdep for dependency resolution | snapcraft | merged | Merged. Replaced manual package.xml parsing with rosdep for Catkin plugin dependency resolution. Reviewers approved the changes, with minor naming suggestions deferred to a future refactor. | |
| #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. | |
| #1314 catkin plugin: add support for rosinstall files | snapcraft | merged | Merged. Introduces a rosinstall-files property to the Catkin plugin, allowing Snapcraft to manage ROS workspace dependencies. Approved by a reviewer and merged after resolving CI test delays. Resolves Launchpad bug 1533735. | |
| #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. |