Apply client workspace compatibility patches for newer ROS 2 interface packages#815
Open
EugenioCollado wants to merge 6 commits into
Open
Apply client workspace compatibility patches for newer ROS 2 interface packages#815EugenioCollado wants to merge 6 commits into
EugenioCollado wants to merge 6 commits into
Conversation
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
There was a problem hiding this comment.
Pull request overview
Adds a patching step to the micro_ros_setup client workspace import flow so newer ROS 2 interface packages can be made compatible with Micro XRCE-DDS typesupport generation/linking, without requiring upstream ROS 2 repo changes.
Changes:
- Introduce a new
apply_patches.shscript and invoke it duringcreate_ws.sh. - Add patch assets under
patches/for generator/runtime and action-dependency compatibility fixes. - Install the patch assets and the new script via CMake.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/create_ws.sh | Calls the patch-application step after importing repositories. |
| scripts/apply_patches.sh | New helper to locate patch assets and apply them idempotently to a workspace. |
| patches/ros2-test-msgs-action-deps.patch | Patch asset adding action-related deps for test_msgs. |
| patches/ros2-example-interfaces-action-deps.patch | Patch asset adding action-related deps for example_interfaces. |
| patches/ros2-core-generators-to-default-generators.patch | Patch asset switching selected interface packages from core to default generators/runtime. |
| CMakeLists.txt | Installs the patches/ directory and the new script. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds compatibility patching in micro_ros_setup for imported ROS 2 client workspaces so they can be built successfully with Micro XRCE-DDS typesupport.
Recent ROS 2 interface packages use patterns that work in a full ROS 2 build but can break in the micro-ROS firmware workspace. In particular:
This PR keeps those fixes local to micro-ROS by shipping patch files in micro_ros_setup and applying them when the workspace is created/imported, instead of requiring direct changes in upstream ROS 2 repositories as part of the normal micro-ROS flow.
What changed
Patch scope
The compatibility patches address:
Why
As a micro-ROS maintainer, we need the fix to live in micro-ROS-owned repositories while still allowing the generated firmware workspace to build against current ROS 2 interface definitions.