Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Workspace folders
build/
install/
log/

# VS Code
.vscode/
9 changes: 0 additions & 9 deletions .vscode/settings.json

This file was deleted.

12 changes: 12 additions & 0 deletions rmw_implementation/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@
Changelog for package rmw_implementation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

3.1.4 (2025-12-23)
------------------
* Updated deprecated ament_index_cpp API (`#272 <https://github.com/ros2/rmw_implementation/issues/272>`_)
* Contributors: Alejandro Hernández Cordero

3.1.3 (2025-11-18)
------------------
* Add rmw_get_clients_info_by_service , rmw_servers_clients_info_by_service (`#238 <https://github.com/ros2/rmw_implementation/issues/238>`_)
* fix cmake deprecation (`#267 <https://github.com/ros2/rmw_implementation/issues/267>`_)
* Explain rosidl_typesupport\_{c,cpp} in rmw impl typesupport list (`#265 <https://github.com/ros2/rmw_implementation/issues/265>`_)
* Contributors: Christophe Bedard, Minju, Lee, mosfet80

3.1.2 (2025-07-29)
------------------

Expand Down
2 changes: 1 addition & 1 deletion rmw_implementation/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.20)

project(rmw_implementation)

Expand Down
3 changes: 2 additions & 1 deletion rmw_implementation/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>rmw_implementation</name>
<version>3.1.2</version>
<version>3.1.4</version>
<description>Proxy implementation of the ROS 2 Middleware Interface.</description>

<maintainer email="william@openrobotics.org">William Woodall</maintainer>
Expand All @@ -27,6 +27,7 @@
<build_depend condition="$DISABLE_GROUPS_WORKAROUND != 1">rmw_cyclonedds_cpp</build_depend>
<build_depend condition="$DISABLE_GROUPS_WORKAROUND != 1">rmw_fastrtps_cpp</build_depend>
<build_depend condition="$DISABLE_GROUPS_WORKAROUND != 1">rmw_fastrtps_dynamic_cpp</build_depend>
<build_depend condition="$DISABLE_GROUPS_WORKAROUND != 1">rmw_zenoh_cpp</build_depend>

<depend>rmw_implementation_cmake</depend>

Expand Down
30 changes: 28 additions & 2 deletions rmw_implementation/src/functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "functions.hpp"

#include <cstddef>
#include <filesystem>
#include <map>
#include <memory>
#include <stdexcept>
Expand All @@ -34,6 +35,7 @@
#include "rmw/features.h"
#include "rmw/get_network_flow_endpoints.h"
#include "rmw/get_node_info_and_types.h"
#include "rmw/get_service_endpoint_info.h"
#include "rmw/get_service_names_and_types.h"
#include "rmw/get_topic_endpoint_info.h"
#include "rmw/get_topic_names_and_types.h"
Expand Down Expand Up @@ -108,8 +110,8 @@ load_library()
// OK, we failed to load the default RMW. Fetch all of the ones we can
// find and attempt to load them one-by-one.
rmw_reset_error();
const std::map<std::string, std::string> packages_with_prefixes = ament_index_cpp::get_resources(
"rmw_typesupport");
const std::map<std::string, std::filesystem::path> packages_with_prefixes =
ament_index_cpp::get_resources_by_name("rmw_typesupport");
for (const auto & package_prefix_pair : packages_with_prefixes) {
if (package_prefix_pair.first != "rmw_implementation") {
ret = attempt_to_load_one_rmw(package_prefix_pair.first);
Expand Down Expand Up @@ -770,6 +772,26 @@ RMW_INTERFACE_FN(
bool,
rmw_topic_endpoint_info_array_t *))

RMW_INTERFACE_FN(
rmw_get_clients_info_by_service,
rmw_ret_t, RMW_RET_ERROR,
5, ARG_TYPES(
const rmw_node_t *,
rcutils_allocator_t *,
const char *,
bool,
rmw_service_endpoint_info_array_t *))

RMW_INTERFACE_FN(
rmw_get_servers_info_by_service,
rmw_ret_t, RMW_RET_ERROR,
5, ARG_TYPES(
const rmw_node_t *,
rcutils_allocator_t *,
const char *,
bool,
rmw_service_endpoint_info_array_t *))

RMW_INTERFACE_FN(
rmw_qos_profile_check_compatible,
rmw_ret_t, RMW_RET_ERROR,
Expand Down Expand Up @@ -946,6 +968,8 @@ void prefetch_symbols(void)
GET_SYMBOL(rmw_set_log_severity)
GET_SYMBOL(rmw_get_publishers_info_by_topic)
GET_SYMBOL(rmw_get_subscriptions_info_by_topic)
GET_SYMBOL(rmw_get_clients_info_by_service)
GET_SYMBOL(rmw_get_servers_info_by_service)
GET_SYMBOL(rmw_qos_profile_check_compatible)
GET_SYMBOL(rmw_publisher_get_network_flow_endpoints)
GET_SYMBOL(rmw_subscription_get_network_flow_endpoints)
Expand Down Expand Up @@ -1078,6 +1102,8 @@ unload_library()
symbol_rmw_set_log_severity = nullptr;
symbol_rmw_get_publishers_info_by_topic = nullptr;
symbol_rmw_get_subscriptions_info_by_topic = nullptr;
symbol_rmw_get_clients_info_by_service = nullptr;
symbol_rmw_get_servers_info_by_service = nullptr;
symbol_rmw_qos_profile_check_compatible = nullptr;
symbol_rmw_publisher_get_network_flow_endpoints = nullptr;
symbol_rmw_subscription_get_network_flow_endpoints = nullptr;
Expand Down
9 changes: 9 additions & 0 deletions test_rmw_implementation/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@
Changelog for package test_rmw_implementation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

3.1.4 (2025-12-23)
------------------

3.1.3 (2025-11-18)
------------------
* Add rmw_get_clients_info_by_service , rmw_servers_clients_info_by_service (`#238 <https://github.com/ros2/rmw_implementation/issues/238>`_)
* fix cmake deprecation (`#267 <https://github.com/ros2/rmw_implementation/issues/267>`_)
* Contributors: Minju, Lee, mosfet80

3.1.2 (2025-07-29)
------------------
* Test failing deserialization of invalid sequence length (`#261 <https://github.com/ros2/rmw_implementation/issues/261>`_)
Expand Down
35 changes: 18 additions & 17 deletions test_rmw_implementation/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.20)

project(test_rmw_implementation)

Expand All @@ -15,6 +15,7 @@ endif()
find_package(ament_cmake REQUIRED)

if(BUILD_TESTING)
find_package(ament_cmake_ros REQUIRED)
find_package(ament_cmake_gtest REQUIRED)
find_package(osrf_testing_tools_cpp REQUIRED)

Expand Down Expand Up @@ -199,100 +200,100 @@ if(BUILD_TESTING)
message(STATUS "Creating API tests for '${rmw_implementation}'")
set(rmw_implementation_env_var RMW_IMPLEMENTATION=${rmw_implementation})

ament_add_gtest_test(test_init_shutdown
ament_add_ros_isolated_gtest_test(test_init_shutdown
TEST_NAME test_init_shutdown${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_init_options
ament_add_ros_isolated_gtest_test(test_init_options
TEST_NAME test_init_options${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_create_destroy_node
ament_add_ros_isolated_gtest_test(test_create_destroy_node
TEST_NAME test_create_destroy_node${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_publisher
ament_add_ros_isolated_gtest_test(test_publisher
TEST_NAME test_publisher${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_subscription
ament_add_ros_isolated_gtest_test(test_subscription
TEST_NAME test_subscription${target_suffix}
TIMEOUT 120
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_serialize_deserialize
ament_add_ros_isolated_gtest_test(test_serialize_deserialize
TEST_NAME test_serialize_deserialize${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_publisher_allocator
ament_add_ros_isolated_gtest_test(test_publisher_allocator
TEST_NAME test_publisher_allocator${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_subscription_allocator
ament_add_ros_isolated_gtest_test(test_subscription_allocator
TEST_NAME test_subscription_allocator${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_wait_set
ament_add_ros_isolated_gtest_test(test_wait_set
TEST_NAME test_wait_set${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_graph_api
ament_add_ros_isolated_gtest_test(test_graph_api
TEST_NAME test_graph_api${target_suffix}
TIMEOUT 120
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_unique_identifiers
ament_add_ros_isolated_gtest_test(test_unique_identifiers
TEST_NAME test_unique_identifiers${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_service
ament_add_ros_isolated_gtest_test(test_service
TEST_NAME test_service${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_client
ament_add_ros_isolated_gtest_test(test_client
TEST_NAME test_client${target_suffix}
TIMEOUT 120
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_qos_profile_check_compatible
ament_add_ros_isolated_gtest_test(test_qos_profile_check_compatible
TEST_NAME test_qos_profile_check_compatible${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_duration_infinite
ament_add_ros_isolated_gtest_test(test_duration_infinite
TEST_NAME test_duration_infinite${target_suffix}
ENV
${rmw_implementation_env_var}
)

ament_add_gtest_test(test_event
ament_add_ros_isolated_gtest_test(test_event
TEST_NAME test_event${target_suffix}
ENV
${rmw_implementation_env_var}
Expand Down
4 changes: 2 additions & 2 deletions test_rmw_implementation/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>test_rmw_implementation</name>
<version>3.1.2</version>
<version>3.1.4</version>
<description>Test suite for ROS middleware API.</description>

<maintainer email="william@openrobotics.org">William Woodall</maintainer>
Expand All @@ -14,7 +14,7 @@

<buildtool_depend>ament_cmake</buildtool_depend>

<test_depend>ament_cmake_gtest</test_depend>
<test_depend>ament_cmake_ros</test_depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
<test_depend>osrf_testing_tools_cpp</test_depend>
Expand Down
Loading
Loading