plugins: add ros2 boostrapper
Metadata
Current evaluation
Merged following reviewer approval and passing CI checks. Adds a ROS2 bootstrapper to build the underlay from source, paving the way for a future Ament plugin. Integration tests will be added in a follow-up PR.
Suggested action: —
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] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Pave the way for an Ament plugin: make progress on LP: [#1686850](https://bugs.launchpad.net/snapcraft/+bug/1686850) (and #1443) by adding code to bootstrap ROS2 underlay from source.
Note that a Debian archive containing ros2 exists, but according to the docs it's temporary. Until it stabilizes, we'll build from source. This PR is essentially the [documentation for building from source](https://github.com/ros2/ros2/wiki/Linux-Development-Setup) in Python form.
A follow-up PR will add an Ament plugin that utilizes the bootstrapper.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged following reviewer approval and passing CI checks. Adds a ROS2 bootstrapper to build the underlay from source, paving the way for a future Ament plugin. Integration tests will be added in a follow-up PR. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to add a ROS2 bootstrapper building the underlay from source, enabling a future Ament plugin. Approved by ROS2 and Snapcraft maintainers after minor feedback. Integration tests are deferred to a follow-up PR. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a ROS2 bootstrapper to build ROS2 from source, enabling a future Ament plugin. Approved by maintainers and ROS contributors after passing static and unit tests. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1583 ament plugin: new plugin | snapcraft | merged | Merged a new ROS2 Ament plugin for Snapcraft, resolving LP: #1686850. The PR bootstraps ROS2 and builds source packages. Test failures from ROS repository key errors and a rebase conflict were fixed prior to approval and merge. |