Skip to content

Add rmw_zenoh_cpp as RMW vendor and update dist#1487

Merged
minggangw merged 2 commits into
RobotWebTools:developfrom
minggangw:fix-1486
Apr 13, 2026
Merged

Add rmw_zenoh_cpp as RMW vendor and update dist#1487
minggangw merged 2 commits into
RobotWebTools:developfrom
minggangw:fix-1486

Conversation

@minggangw

@minggangw minggangw commented Apr 13, 2026

Copy link
Copy Markdown
Member

Changes:

  • lib/rmw.js

    • Added ZENOH: 'rmw_zenoh_cpp' to RMWNames constants
    • Added missing iron, jazzy, and kilted distro entries to DefaultRosRMWNameMap (all default to rmw_fastrtps_cpp)
    • Added safe fallback to getRMWName() — returns rmw_fastrtps_cpp when the distro is not in the map and RMW_IMPLEMENTATION is unset, preventing undefined from causing incorrect feature gating
  • test/test-subscription-content-filter.js

    • Updated isContentFilteringSupported() to exclude rmw_zenoh_cpp, which does not support content filtering

Context:

rmw_zenoh_cpp was promoted to Tier 1 in ROS 2 Kilted Kaiju and is actively referenced in rclpy tests for conditional behavior. rclnodejs was missing it entirely from its RMW vendor registry. The DefaultRosRMWNameMap was also missing entries for multiple known distros (iron, jazzy, kilted), and getRMWName() had no fallback for unmapped distros.

Fix: #1486

Copilot AI review requested due to automatic review settings April 13, 2026 05:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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' to RMWNames.
  • Add missing jazzy and kilted entries 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.

Comment thread lib/rmw.js
Comment on lines 25 to 32
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);

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@coveralls

coveralls commented Apr 13, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 85.862% (-0.005%) from 85.867% — minggangw:fix-1486 into RobotWebTools:develop

@minggangw minggangw merged commit e0ae6de into RobotWebTools:develop Apr 13, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add rmw_zenoh_cpp as RMW vendor

3 participants