Catkin plugin: Handle rosdep empty and multiple dependencies.
Metadata
Current evaluation
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.
Suggested action: —
No scores available.
Issue body
This PR resolves both LP: [#1548406](https://bugs.launchpad.net/snapcraft/+bug/1548406) and [#1548404](https://bugs.launchpad.net/snapcraft/+bug/1548404) by refactoring the `rosdep` dependency resolution code to account for an empty result as well as multiple results on one line.
Note that both of these bugs are fixed here since, while they're separate bugs, the fix for both is very closely related and it would be more work to split them apart than to just do both.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged refactoring of the Catkin plugin rosdep resolution to handle empty outputs and multiple dependencies per line. Resolves Launchpad bugs #1548406 and #1548404. Approved and merged by maintainers. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged refactoring of the Catkin plugin rosdep resolver to handle empty and multiple dependency results, resolving Launchpad bugs #1548406 and #1548404. Approved by @sergiusens. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. | |
| #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. | |
| #1548404 Catkin plugin: Can't handle rosdep resolving to multiple packages | snapcraft (launchpad) | closed | Closed without resolution. The Catkin plugin fails when rosdep returns multiple packages on a single line, treating it as one invalid name. The issue was abandoned due to zero comments and no proposed fix. | |
| #1548406 Catkin plugin: Can't handle rosdep resolving to nothing | snapcraft (launchpad) | closed | Closed without comments or resolution. The Catkin plugin issue regarding rosdep entries resolving to nothing was unaddressed, indicating the report was abandoned or resolved internally without a code change. | |
| #183 Backport to 1.x: Catkin plugin: use rosdep for dependency resolution. | snapcraft | merged | Merged backport of #163 to the 1.x branch. The catkin plugin now uses rosdep for dependency resolution, updating three files with 547 additions and 147 deletions. | |
| #2585 catkin plugin: check workspace for dependencies | snapcraft | merged | 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. | |
| #1479 rosdep: add support for multiple dependency types | snapcraft | merged | Merged to add rosdep support for parsing multiple dependency types. The catkin plugin was updated to use the new API, currently limited to debs, laying groundwork for future pip dependency integration. Approved and passed CI. | |
| #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. | |
| #1683036 Catkin plugin doesn't support rosdep dependencies that resolve to pip | snapcraft (launchpad) | closed | Support for rosdep dependencies resolving to pip in the Catkin plugin was closed without implementation. The request appears abandoned, leaving pip resolution unsupported. | |
| #1392 catkin plugin: extract rosdep into new package | snapcraft | merged | Merged. Extracts rosdep from the catkin plugin into snapcraft.plugins.internal.pullers to enable future Ament and ROS 2 support. Updates plugin loading to ignore internal packages, resolving issue #1464. |