Repository navigation
ci: ros2:// interop against Jazzy and Lyrical (design 053 s12) - #314
Merged
Merged
Conversation
`tests/interop/ros2_interop.sh <distro>` starts rmw_zenohd in Docker, runs the ros2_talker and ros2_listener examples, and checks them with the ros2 CLI: `node list` shows the node, `topic info -v` the type, hash, QoS and a GID, `topic echo` a value, and every message of `topic pub` arrives. It retries while discovery settles and reads container output through `docker logs`. CI runs it as `ros2-interop` for jazzy and lyrical; locally it is `make ros2-interop DISTRO=...`. Co-Authored-By: Claude Opus 5.5 <[email protected]>
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.
Stage s12 of
docs/design/053-implementation-plan.md, the checkpoint:ros2://interop against real ROS 2 in CI. Meets criterion 2. Criterion 1, golden values captured from real rmw_zenoh, was already met in s07.What it adds
aimdb-zenoh-connector/tests/interop/Dockerfile:ros:<distro>withrmw_zenoh_cppinstalled.tests/interop/ros2_interop.sh <distro>: startsrmw_zenohdin Docker with host networking, then runs theros2_talkerandros2_listenerexamples as AimDB.ros2 node listshows/aimdb/talker;ros2 topic info -v /aimdb_chattershows the type, node name and namespace, the type hash,PUBLISHER, a GID,RELIABLE,KEEP_LAST (10)andVOLATILE;ros2 topic echo --oncereceivesdata: aimdb N.ros2 topic info -v /aimdb_cmdshows it;ros2 topic pub --times 3reach the record.docker logsso it works on any Docker setup, and cleans up its containers on success and on failure.IMAGEandEXAMPLEScan override the image and the binaries' directory.ros2-interop, a matrix overjazzyandlyricalwithfail-fast: false. It runsmake ros2-interop DISTRO=<distro>, which builds the examples and runs the script.ros2-interop(defaultDISTRO=lyrical), so you can run it locally.Verified locally
ros2_interop.sh lyrical: PASSros2_interop.sh jazzy: PASSmake ros2-interop DISTRO=lyrical: PASSKEEP_LAST (7)fails withFAIL (lyrical): ros2 topic info -v lacks 'History (Depth): KEEP_LAST (7)', exit code 1, and still cleans up.The GID is checked for presence here. Its value is checked against captured rmw_zenoh attachments in s07, and against the hash of our own publisher token in s09's tests.
Checkpoint
With s12, the native ROS feature is complete:
zenoh://(s08),ros2://outbound and inbound (s09, s10), the shared gateway session (s11), and now interop in CI. The remaining stages are the embedded backend (s13–s15), blocked on a zenoh-nostd release (Q7), and docs (s16). Following the Q7 answer, the feature branch could merge intomainwith the native backend only once s16's native-facing docs are written.Checks
The full matrix runs in CI, now including the two
ros2-interopjobs.🤖 Generated with Claude Code