← Back to issue list

Catkin plugin doesn't check the workspace for dependencies

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1832044
Type
issue
State
closed
Author
~kyrofa
Labels
—
Created
Updated
Closed

Current evaluation

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.

Resolution: closed resolved

Reason: Maintainer kyrofa proposed a snapcraft-side workaround, PR #2585, which was merged as commit b88e37814 "catkin plugin: check workspace for dependencies". The workaround was subsequently removed in #2833 (949f90946) once the upstream rosdep fix (ros-infrastructure/rosdep#686, for issue #685) landed, and the Launchpad bug was closed.

Evaluated by: mr-cal-bot

No scores available.

Issue body

When not providing the catkin plugin with a list of catkin packages to build, it defaults to building the entire workspace (which is great). However, due to a bug in rosdep (https://github.com/ros-infrastructure/rosdep/issues/685), it doesn't properly check the entire workspace for dependencies, and errors out if a dependency is specified that isn't contained in the rosdep index but is satisfied by another package in the workspace.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved 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.
stealth/space-bunny-alpha — closed resolved Catkin workspace dependency checking was fixed by merged canonical/snapcraft#2585 (commit b88e37814), which discovers workspace packages with rospack before rosdep resolution.
stealth/space-bunny-alpha — closed resolved Fixed in canonical/snapcraft#2585 (commit b88e37814): Catkin now checks whole-workspace builds against packages discovered with rospack.
qwen/qwen3.6-35b-a3b — — The catkin plugin incorrectly errors on workspace-local dependencies due to a rosdep bug. The report was closed without a fix or resolution.
qwen/qwen3.6-35b-a3b — — The catkin plugin workspace dependency bug was abandoned and closed without resolution. No comments or follow-up actions were recorded.

Update history

Date Change
created

Related work

  • Likely Fixed By: snapcraft#2585 (confidence 95%)

    PR referenced in the maintainer's closing comments; merged as commit b88e37814 adding workspace dependency checking to the catkin plugin.

  • Related To: snapcraft#2833 (confidence 90%)

    Commit 949f90946 removes the rospack/rosdep workspace workaround now that rosdep -i works, confirming the upstream fix resolved the original problem.

  • Caused By: rosdep#685 (confidence 85%)

    Upstream rosdep bug where whole-workspace dependency resolution failed; fixed by rosdep PR #686.

Related issues

Issue Project State Summary Similarity
#2585 catkin plugin: check workspace for dependencies snapcraft merged 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.
85%
#1548406 Catkin plugin: Can't handle rosdep resolving to nothing snapcraft (launchpad) closed Fixed by canonical/snapcraft#331, merged as commit 1c1119ce3; Catkin now treats empty rosdep output as no dependencies instead of an error.
78%
#1683036 Catkin plugin doesn't support rosdep dependencies that resolve to pip snapcraft (launchpad) closed Catkin support for rosdep dependencies resolving to pip was merged in snapcraft PR #1581, commit 186ae7f91.
78%
#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.
78%
#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.
78%
#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.
77%
#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.
76%
#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.
76%
#1823788 Catkin plugin doesn't notice ROS dependencies satisfied by stage-snaps snapcraft (launchpad) closed Catkin stage-snap dependency detection was implemented by merged snapcraft PR #2525 (commit d1c5f1b00), avoiding redundant ROS dependency fetches.
76%
#1638317 Catkin plugin doesn't build pure python workspaces snapcraft (launchpad) closed Catkin plugin only staged g++ when roscpp was a dependency, breaking pure-Python ROS workspaces. Fixed by snapcore/snapcraft PR #881 (merged as 2f0c8ba04), staging gcc/g++ unconditionally; issue closed by maintainer ~kyrofa.
76%