catkin plugin: check workspace for dependencies
Metadata
Current evaluation
Merged PR #2585 (b88e37814) fixed Catkin builds by using rospack to enumerate workspace packages and exclude their internal dependencies from rosdep resolution; resolves LP #1832044.
Resolution: closed resolved
Reason: PR #2585 was merged as commit b88e37814. It adds workspace package discovery via rospack before rosdep filtering, resolving LP #1832044.
Evaluated by: mr-cal-bot
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 |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2585 (b88e37814) fixed Catkin builds by using rospack to enumerate workspace packages and exclude their internal dependencies from rosdep resolution; resolves LP #1832044. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2585 (commit b88e37814): catkin plugin now enumerates workspace packages with rospack and filters declared dependencies against them before rosdep, fixing LP #1832044. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2585 (commit b88e37814) by kyrofa: the Catkin plugin now uses rospack to enumerate workspace packages and filters dependencies through that list, fixing LP: #1832044. Later removed by #2833 once rosdep -i worked. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged as b88e37814: catkin plugin now enumerates workspace packages with rospack and filters rosdep dependencies against them, fixing LP #1832044. Later superseded by #2833 (949f90946) removing the workaround. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2585 as commit b88e37814, fixing LP #1832044 by resolving Catkin dependencies against workspace packages discovered with rospack. | |
| 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. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcraft (launchpad)#1832044
(confidence 100%)
Launchpad bug LP #1832044 was explicitly resolved by this PR.
-
Blocked By:
rosdep#685
(confidence 95%)
The PR implements workspace-aware dependency filtering because rosdep lacked this capability.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1832044 Catkin plugin doesn't check the workspace for dependencies | snapcraft (launchpad) | closed | Catkin plugin failed on whole-workspace builds because rosdep (#685) couldn't resolve deps satisfied by in-workspace packages. Workaround merged in snapcraft PR #2585 (commit b88e37814); the workaround was later dropped in #2833 once rosdep was fixed upstream. | |
| #2833 catkin: remove rospack workaround | snapcraft | merged | Merged PR #2833 in commit 949f90946, removing the Catkin rospack workaround because rosdep can now ignore workspace source packages. | |
| #2847 Catkin plugin: consider only 'local' workspaces | snapcraft | merged | Merged PR #2847 (commit 1d476f622) sources ROS setup with --local, preventing destructive-mode Catkin builds from using host workspaces and skipping dependency installation. | |
| #1743 catkin plugin: support building entire workspace | snapcraft | merged | Merged #1743 in commit ec4cac26a, making catkin-packages optional so the Catkin plugin builds the entire workspace when omitted; this also resolves snapcraft#1713. | |
| #1581 catkin plugin: support rosdep pip dependencies | snapcraft | merged | Merged PR #1581 in commit 186ae7f91, adding pip-based rosdep dependency support to the Catkin plugin and fixing LP bug #1683036. | |
| #331 Catkin plugin: Handle rosdep empty and multiple dependencies. | snapcraft | merged | PR #331 merged into snapcraft master as commit 1c1119ce3 (merge e3a2b9d03). It refactored the Catkin plugin's rosdep dependency resolution to handle empty output and multiple packages per line, fixing LP bugs #1548406 and #1548404. | |
| #1713 catkin plugin: support for building all packages in a given workspace | snapcraft | closed | Implemented workspace-wide Catkin builds: omitting catkin-packages now builds every package. Merged in canonical/snapcraft#1743 via commit ec4cac26a. | |
| #1721168 Catkin plugin: support building the entire workspace | snapcraft (launchpad) | closed | Implemented in snapcraft PR #1743 (commit ec4cac26a, "catkin plugin: support building entire workspace"), merged ~Nov 2017. catkin-packages became optional: omitting it builds the whole workspace, while an empty list still means no packages. | |
| #163 Catkin plugin: use rosdep for dependency resolution | snapcraft | merged | Merged in PR #163 (commit 87b2e24f6), replacing manual Catkin package.xml dependency parsing with rosdep; PR #183 backported the change to Snapcraft 1.x. | |
| #1548404 Catkin plugin: Can't handle rosdep resolving to multiple packages | snapcraft (launchpad) | closed | Fixed by ubuntu-core/snapcraft PR #331 (commit 1c1119ce3, 'Catkin plugin: Handle rosdep empty and multiple dependencies'), merged as e3a2b9d03; maintainer ~kyrofa linked the PR when closing the Launchpad bug. |