Skip to content

introduce ActionEndpointInfo to support "ros2 action info (-v)". - #1697

Open
fujitatomoya wants to merge 3 commits into
rollingfrom
ros2cli/issues/1210
Open

introduce ActionEndpointInfo to support "ros2 action info (-v)".#1697
fujitatomoya wants to merge 3 commits into
rollingfrom
ros2cli/issues/1210

Conversation

@fujitatomoya

Copy link
Copy Markdown
Collaborator

Description

Part of ros2/ros2cli#1210

Fixes # (issue)

Is this user-facing behavior change?

No, new methods and classes added.

Did you use Generative AI?

Yes, Claude Fable

Additional Information

Signed-off-by: Tomoya Fujita <tomoya.fujita825@gmail.com>
@mergify

mergify Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

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

This PR extends rclpy graph introspection to support richer “action endpoint” queries (action clients/servers) needed for tooling like ros2 action info (-v), by adding a new aggregated ActionEndpointInfo model plus new pybind/C++ graph functions and Python Node APIs.

Changes:

  • Added ActionEndpointInfo (aggregating the 3 services + 2 topics that make up an action endpoint) and new Node.get_action_*_info_by_action() Python APIs.
  • Added new C++/pybind graph entry points to retrieve action client/server endpoint info, plus new C++/pybind node methods to count action clients/servers.
  • Added tests covering action endpoint info retrieval and action client/server counting.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
rclpy/test/test_node.py Adds tests for action endpoint info queries and action client/server counting.
rclpy/src/rclpy/utils.hpp Declares conversion helper for rcl_action_endpoint_info_array_t to Python.
rclpy/src/rclpy/utils.cpp Implements action endpoint info array conversion to Python dictionaries.
rclpy/src/rclpy/node.hpp Declares new node methods to count action clients and action servers.
rclpy/src/rclpy/node.cpp Implements and exposes new action client/server count methods via pybind.
rclpy/src/rclpy/graph.hpp Declares new graph APIs for action client/server endpoint info by action name.
rclpy/src/rclpy/graph.cpp Implements new action graph queries with RMW unsupported handling and cleanup.
rclpy/src/rclpy/_rclpy_pybind11.cpp Exposes new graph functions to Python (rclpy_get_action_*_info_by_action).
rclpy/rclpy/node.py Adds Python Node wrappers for action endpoint info queries and action client/server counting.
rclpy/rclpy/impl/_rclpy_pybind11.pyi Adds typing for new pybind functions, typed dicts, and node count methods.
rclpy/rclpy/endpoint_info.py Introduces the new ActionEndpointInfo aggregation class.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread rclpy/test/test_node.py
Comment thread rclpy/test/test_node.py
Comment thread rclpy/rclpy/endpoint_info.py Outdated
Comment thread rclpy/rclpy/endpoint_info.py Outdated
Signed-off-by: Tomoya Fujita <tomoya.fujita825@gmail.com>
@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

@ahcorde sorry for asking many PRs to review, can you do me a favor on this one too 🙇

@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262
Gist: https://gist.githubusercontent.com/fujitatomoya/25af40ef2cbead2e0d78b131f3baccbf/raw/799fbf9be74c92398265c46702a25e9b46e9c0b3/ros2.repos
BUILD args: --packages-up-to rcl_action rclcpp_action rclpy ros2cli ros2action
TEST args: --packages-select rcl_action rclcpp_action rclpy ros2cli ros2action
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/19923

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262
Gist: https://gist.githubusercontent.com/fujitatomoya/465889284b527b2c339cbef7dbc3d756/raw/799fbf9be74c92398265c46702a25e9b46e9c0b3/ros2.repos
BUILD args: --packages-up-to rcl_action rclcpp_action rclpy ros2cli ros2action
TEST args: --packages-select rcl_action rclcpp_action rclpy ros2cli ros2action
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/19925

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

a couple of warnings look related to the PR, let me check on those. CC: @ahcorde

Signed-off-by: Tomoya Fujita <fujita.tomoya@triorb.co.jp>
@fujitatomoya

fujitatomoya commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262
Gist: https://gist.githubusercontent.com/fujitatomoya/eb76433221a53f448682e5b09c0ff2c0/raw/799fbf9be74c92398265c46702a25e9b46e9c0b3/ros2.repos
BUILD args: --packages-above-and-dependencies rcl_action rclcpp_action rclpy ros2cli ros2action
TEST args: --packages-above rcl_action rclcpp_action rclpy ros2cli ros2action
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/19963

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

RHEL is still failing one of the assertion, let me check on it. i think windows failures are all unrelated and known situation.

@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262
Gist: https://gist.githubusercontent.com/fujitatomoya/4bfcaae75a21e34c0b036bf2672d0278/raw/799fbf9be74c92398265c46702a25e9b46e9c0b3/ros2.repos
BUILD args: --packages-above-and-dependencies rcl_action rclcpp_action rclpy ros2cli ros2action
TEST args: --packages-above rcl_action rclcpp_action rclpy ros2cli ros2action
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/20013

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@fujitatomoya

Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262
Gist: https://gist.githubusercontent.com/fujitatomoya/7e8c429cfeeba77d5a0872329ed7ff3a/raw/799fbf9be74c92398265c46702a25e9b46e9c0b3/ros2.repos
BUILD args: --packages-above-and-dependencies rcl_action rclcpp_action rclpy ros2cli ros2action
TEST args: --packages-above rcl_action rclcpp_action rclpy ros2cli ros2action
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/20024

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

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.

3 participants