← Back to issue list

ROS plugins v2 misc fixes

View original Github issue

Metadata

Project
snapcraft
Number
#3536
Type
pull request
State
merged
Author
artivis
Labels
—
Created
Updated
Closed

Current evaluation

Merged ROS v2 plugin fixes to detect local ROS packages in the part install or underlay and skip rosdep resolution for them, with added core20 spread coverage.

Resolution: closed resolved

Reason: PR #3536 was approved and merged into master via commit 1f23bb377.

Evaluated by: mr-cal-bot

No scores available.

Issue body

This PR most notably, - looks for ROS packages in `$SNAPCRAFT_PART_INSTALL/opt/ros/$ROS_DISTRO` in case the workspace exists (e.g. provided by a build-snap) during the build step - does not `rosdep resolve` packages that are available locally in `$SNAPCRAFT_PART_INSTALL/opt/ros/$ROS_DISTRO` during stage step. Such locally available package may be part of the built sources or provided by a stage-snap. Furthermore, it fixes the following current issue; if the source contains packages `foo` & `bar` - two packages that are not released in the rosdistro database - where `foo` depends on `bar`, staging fails as it tries to `rosdep resolve` the `bar` key (which does not exists since it is not released). With this fix, it finds `bar` locally and thus does not try to resolve it. - port 'test-snapcraft-fake-ros-package-core18' to core20 to test the above 2 bullets Note: - I own the test-snapcraft-fake-ros-package-core20 snap that's used in the new spread test, I imagine we should transfer ownership - [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`? -----

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged ROS v2 plugin fixes to detect local ROS packages in the part install or underlay and skip rosdep resolution for them, with added core20 spread coverage.
stealth/space-bunny-alpha — closed resolved Merged via commit 1f23bb377: ROS v2 plugins now use local ROS underlays and avoid rosdep resolution for locally available packages; core20 spread coverage was added.
stealth/space-bunny-alpha — closed resolved Merged (commit 1f23bb377): ROS v2 plugins now look for local packages in $SNAPCRAFT_PART_INSTALL/opt/ros/$ROS_DISTRO during build/stage and skip rosdep resolve for them, fixing staging failures for non-rosdistro packages; core20 spread test added.
stealth/space-bunny-alpha — closed resolved Merged in canonical/snapcraft#3536 (commit 1f23bb377): ROS plugins v2 now detect local ROS packages and skip rosdep resolution for them; core20 spread coverage was added.
qwen/qwen3.6-35b-a3b — — Merged. Fixes ROS plugins v2 staging failures by checking local ROS directories and skipping rosdep resolution for locally available packages. Updated tests for core20. Approved by two reviewers and passed CI.
qwen3.6-35b-a3b-mtp-q6 — — Merged into master. Fixed ROS plugins v2 to check local install paths and skip rosdep resolution for locally available packages, preventing staging failures. Added a core20 test. Author acknowledged a related user issue for future investigation.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#3566 ROS 2 plugins v2 misc fixes snapcraft merged Merged #3566 via 6f80a4cee, fixing ROS 2 v2 install paths and local-package staging, with new spread tests.
82%
#1882288 ROS plugins: allow skip keys for rosdep snapcraft (launchpad) closed Fixed in snapcraft plugins V2 via PR #3536 and #3566. Rosdep resolution was changed to use locally available packages, making a 'skip keys' option unnecessary.
76%
#3664 ROS plugins v2: respect source-subdir key snapcraft merged Merged PR #3664, with commit 09eb744e5, made ROS v2 Colcon/catkin plugins respect source-subdir, removed a redundant dependency, and added subdirectory tests.
75%
#3570 ROS V2 plugins: resolve conditional dependencies snapcraft merged Merged PR #3570 in commit 1fa5484b9, enabling ROS V2 plugins to resolve package.xml dependencies conditioned on ROS_VERSION, ROS_DISTRO, or ROS_PYTHON_VERSION.
74%
#3676 ROS plugins v2: Exclude packages in stage snap from fetched packages during staging snapcraft closed Closed unmerged as outdated; the maintainer said the ROS v2 stage-snap package-exclusion workaround needed a new discussion before proceeding.
73%