← Back to issue list

Catkin plugin: Handle rosdep empty and multiple dependencies.

View original Github issue

Metadata

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

Current evaluation

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.

Resolution: closed resolved

Reason: The PR itself was merged by maintainer kyrofa, with commit 1c1119ce3 "Catkin plugin: Handle rosdep empty and multiple dependencies." merged via merge commit e3a2b9d03, and reviewer sergiusens approved it. The change fixed Launchpad bugs #1548406 and #1548404 by splitting rosdep output on whitespace and tolerating empty results; descendant code in snapcraft/parts/plugins/_ros.py keeps that parsing logic.

Evaluated by: mr-cal-bot

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
stealth/space-bunny-alpha — closed resolved 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.
stealth/space-bunny-alpha — closed resolved Merged canonical/snapcraft#331, refactoring Catkin rosdep resolution to handle empty output and multiple packages per line, fixing LP bugs #1548406 and #1548404.
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.

Update history

No update history recorded yet.

Related work

  • Related To: snapcraft#3324 (confidence 25%)

    Later ROS plugins v1 rosdep work building on the same code path in _ros.py.

Related issues

Issue Project State Summary Similarity
#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.
90%
#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.
89%
#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.
88%
#1392 catkin plugin: extract rosdep into new package snapcraft merged Merged in canonical/snapcraft#1392 (99218f59d), extracting rosdep from Catkin into internal.pullers and resolving #1464.
83%
#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.
82%
#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.
80%
#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.
79%
#175 Catkin plugin: Refactor build. snapcraft merged Merged in snapcraft#175 via commit 9045874fd, refactoring Catkin environment, dependency handling, build logic, source-space support, and tests.
78%
#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.
78%
#1548370 Catkin plugin: Confusing print when dependency is an invalid package snapcraft (launchpad) closed Catkin now reports a clear error for invalid dependency packages; fixed by merged canonical/snapcraft PR #330 (e44ded923).
77%