[feature] ROS plugins v2 out of source tree builds
Metadata
Current evaluation
Merged. Enables out-of-source-tree builds for ROS plugins v2, allowing snapcraft.yaml placement in the package root. Replaces PR #3348. Approved by two reviewers and passed CI.
Suggested action: —
No scores available.
Issue body
This PR changes the ROS plugins v2 so that they use the 'out of source tree builds' feature introduced in https://github.com/snapcore/snapcraft/pull/3392.
It allows for distributing the `snapcraft.yaml` config file directly alongside a ROS package (in the package root directory) whereas it can currently only be distributed with a ROS workspace.
Replaces a previous attempt https://github.com/snapcore/snapcraft/pull/3348.
- [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 |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Enables out-of-source-tree builds for ROS plugins v2, allowing snapcraft.yaml placement in the package root. Replaces PR #3348. Approved by two reviewers and passed CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Updates ROS plugins v2 to use out-of-source tree builds, permitting snapcraft.yaml placement in the package root rather than a workspace. Replaces PR #3348. Accepted with a 0.01% coverage decrease. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Enables out-of-source tree builds for ROS plugins v2, allowing snapcraft.yaml to reside in the ROS package root instead of requiring a full workspace. Replaces PR #3348 and passed all tests. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3392 plugins v2: add support for out of source tree builds | snapcraft | merged | Merged. Introduces an out_of_source_build property to PluginV2, disabling automatic source copying. Applied to meson and cmake plugins, adjusted for consistency per review, and merged with 100% diff coverage. | |
| #3664 ROS plugins v2: respect source-subdir key | snapcraft | merged | Merged. Updates ROS plugins v2 to respect the source-subdir key, removes an unnecessary catkin_tools dependency, and adds tests for Colcon and catkin v2 subdir handling. Approved by reviewers and passed CI. | |
| #3536 ROS plugins v2 misc fixes | snapcraft | merged | 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. |