catkin plugin: support building entire workspace
Metadata
Current evaluation
Merged. The catkin-packages property is now optional. When omitted, the plugin builds the entire workspace. Resolves LP: #1721168. Approved by two reviewers with passing CI checks.
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`?
-----
Currently the Catkin plugin requires one to specify each and every Catkin package in the workspace that needs to be built and installed into the snap. This is a hindrance for larger projects, especially as oftentimes the entire workspace is needed.
This PR resolves LP: [#1721168](https://bugs.launchpad.net/snapcraft/+bug/1721168) (and #1713) by making the `catkin-packages` property optional. If it's not specified, simply build the entire workspace. Thus the only API change is making what was previously a required property optional, and assigning meaning to its absence.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. The catkin-packages property is now optional. When omitted, the plugin builds the entire workspace. Resolves LP: #1721168. Approved by two reviewers with passing CI checks. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged PR making the catkin-packages property optional in the Catkin plugin. When omitted, the plugin builds the entire workspace, resolving Launchpad bug #1721168. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged changes to the Catkin plugin making the catkin-packages property optional. When omitted, the plugin builds the entire workspace, resolving Launchpad bug 1721168 and issue 1713. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1713 catkin plugin: support for building all packages in a given workspace | snapcraft | closed | Abandoned. The request to omit catkin-packages for automatic workspace builds was closed without implementation due to inactivity. | |
| #1721168 Catkin plugin: support building the entire workspace | snapcraft (launchpad) | closed | Request for Catkin plugin workspace-wide builds was closed without implementation or discussion. No pull requests were opened, indicating the feature request was abandoned. | |
| #2585 catkin plugin: check workspace for dependencies | snapcraft | merged | Merged. Resolves LP: #1832044 by updating the Catkin plugin to use rospack for workspace dependency resolution instead of relying solely on the rosdep index. Approved by reviewers and passed all CI checks. | |
| #2545 catkin plugin: use build-packages for compilers | snapcraft | merged | Merged updates to the Catkin plugin that specify compilers as build-packages instead of isolating them. This resolves a rebuild failure and aligns with current base requirements. Approved by one reviewer and passed CI. | |
| #2847 Catkin plugin: consider only 'local' workspaces | snapcraft | merged | Merged. Fixes catkin plugin dependency resolution in destructive mode by passing the --local flag when sourcing ROS setup scripts. This prevents host ROS paths from leaking into workspace searches. Approved by three reviewers. | |
| #1526 catkin plugin: don't assume catkin is in underlay | snapcraft | merged | Merged fix updating the catkin plugin to use its isolated installation instead of assuming catkin exists in the underlay. Resolves Launchpad bug #1696014. Includes reviewer-requested test naming updates. Approved and merged. | |
| #175 Catkin plugin: Refactor build. | snapcraft | merged | Merged after addressing reviewer feedback on error handling and testing strategy. The update refactored the Catkin plugin build process, simplified build logic, extracted dependency resolution, added a source-space keyword, and achieved 100% unit test coverage. | |
| #2459 catkin plugin: describe how to build all packages | snapcraft | merged | Merged a documentation update for the catkin plugin explaining how to build all packages. Adds a missing blurb from a previous bug fix. Approved by two reviewers, passed CI, and modified one file. | |
| #1638317 Catkin plugin doesn't build pure python workspaces | snapcraft (launchpad) | closed | Abandoned due to inactivity. The catkin plugin incorrectly omits gcc and g++ for pure Python ROS workspaces, though both compilers are required. No fix or follow-up was provided. | |
| #1779 catkin-tools plugin: use stage-packages | snapcraft | merged | Merged a fix switching the catkin-tools plugin from build-packages to stage-packages, resolving clean system failures. Added an integration test. Approved by two reviewers and passed CI. |