Add rmw_zenoh_cpp as RMW vendor and update dist#1487
Conversation
There was a problem hiding this comment.
Pull request overview
Adds awareness of the rmw_zenoh_cpp RMW implementation to rclnodejs and updates distro→default RMW mapping, with a corresponding test adjustment to avoid running content-filtering tests on an unsupported RMW.
Changes:
- Add
ZENOH: 'rmw_zenoh_cpp'toRMWNames. - Add missing
jazzyandkiltedentries to the default ROS distro → RMW mapping. - Update content-filtering test gating to also exclude
rmw_zenoh_cpp.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| lib/rmw.js | Registers the Zenoh RMW name and extends default distro→RMW mapping. |
| test/test-subscription-content-filter.js | Skips content-filtering tests when running on Zenoh RMW. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const DefaultRosRMWNameMap = new Map(); | ||
| DefaultRosRMWNameMap.set('eloquent', RMWNames.FASTRTPS); | ||
| DefaultRosRMWNameMap.set('foxy', RMWNames.FASTRTPS); | ||
| DefaultRosRMWNameMap.set('galactic', RMWNames.CYCLONEDDS); | ||
| DefaultRosRMWNameMap.set('humble', RMWNames.FASTRTPS); | ||
| DefaultRosRMWNameMap.set('jazzy', RMWNames.FASTRTPS); | ||
| DefaultRosRMWNameMap.set('kilted', RMWNames.FASTRTPS); | ||
| DefaultRosRMWNameMap.set('rolling', RMWNames.FASTRTPS); |
There was a problem hiding this comment.
DistroUtils recognizes the iron distro, but DefaultRosRMWNameMap still has no entry for it. With RMW_IMPLEMENTATION unset, getRMWName() will return undefined on Iron (and on any other known-but-unmapped distro), which can lead to incorrect feature gating (e.g., tests treating content filtering as supported). Add an iron mapping (likely RMWNames.FASTRTPS) and/or provide a safe fallback when the map lookup is missing.
Changes:
lib/rmw.jsZENOH: 'rmw_zenoh_cpp'toRMWNamesconstantsiron,jazzy, andkilteddistro entries toDefaultRosRMWNameMap(all default tormw_fastrtps_cpp)getRMWName()— returnsrmw_fastrtps_cppwhen the distro is not in the map andRMW_IMPLEMENTATIONis unset, preventingundefinedfrom causing incorrect feature gatingtest/test-subscription-content-filter.jsisContentFilteringSupported()to excludermw_zenoh_cpp, which does not support content filteringContext:
rmw_zenoh_cppwas promoted to Tier 1 in ROS 2 Kilted Kaiju and is actively referenced inrclpytests for conditional behavior. rclnodejs was missing it entirely from its RMW vendor registry. TheDefaultRosRMWNameMapwas also missing entries for multiple known distros (iron,jazzy,kilted), andgetRMWName()had no fallback for unmapped distros.Fix: #1486