Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
35c89c8
Enable qos parameter overrides for the /parameter_events topic (#1532)
ivanpauno Mar 12, 2021
736550c
Fix doc typo in CallbackGroup constructor (#1582)
jacobperron Mar 18, 2021
e331050
Document design decisions that were made for statically typed paramet…
ivanpauno Mar 18, 2021
7bfda87
7.0.0
cottsay Mar 18, 2021
f5afe38
Made 'Context::shutdown_reason' function a const function (#1578)
suab321321 Mar 19, 2021
7505161
get_parameters_service_ should return empty if allow_undeclared_ is f…
fujitatomoya Mar 22, 2021
cae3836
Changelogs
ivanpauno Mar 22, 2021
59ad83a
7.0.1
ivanpauno Mar 22, 2021
182ad38
Guard against integer overflow in duration conversion (#1584)
jacobperron Mar 22, 2021
052596c
make rcl_lifecyle_com_interface optional in lifecycle nodes (#1507)
Karsten1987 Mar 23, 2021
63fdf82
Changelog.
clalancette Mar 23, 2021
763c564
8.0.0
clalancette Mar 23, 2021
3fa511a
use const auto & to iterate over parameters (#1593)
Karsten1987 Mar 23, 2021
0088e35
Document misuse of parameters callback (#1590)
jacobperron Mar 24, 2021
dbb4c35
Add API for checking QoS profile compatibility (#1554)
jacobperron Mar 25, 2021
98a62f6
Remove rmw_connext_cpp references. (#1595)
clalancette Mar 25, 2021
06a4a56
Changelog.
clalancette Mar 25, 2021
a7ec7d9
8.1.0
clalancette Mar 25, 2021
92ece94
add automatically_add_executor_with_node option (#1594)
BriceRenaudeau Mar 25, 2021
63e7922
Delete debug messages (#1602)
ivanpauno Mar 29, 2021
bc8c71b
Clock subscription callback group spins in its own thread (#1556)
anaelle-sw Mar 29, 2021
3ab6571
Namespace tracetools C++ functions (#1603)
christophebedard Mar 30, 2021
2562f71
Revert "Namespace tracetools C++ functions (#1603)" (#1607)
clalancette Mar 30, 2021
f986ca3
Fix flaky lifecycle node tests (#1606)
jacobperron Mar 30, 2021
aa3a65d
Namespace tracetools C++ functions (#1608)
christophebedard Mar 31, 2021
51a4b21
Initialize integers in test_parameter_event_handler.cpp to avoid unde…
ivanpauno Mar 31, 2021
4747205
Changelog.
clalancette Mar 31, 2021
e7e3504
8.2.0
clalancette Mar 31, 2021
f19633f
Add RMW listener APIs
Mar 11, 2021
b94349c
split long log into two lines
Mar 16, 2021
f125d57
Remove use_previous_event
Mar 24, 2021
e187411
Do not set gc listener callback
Apr 1, 2021
bb09b5c
significant refactor to make callbacks type safe
wjwwood Apr 2, 2021
70dfa2e
updating quality declaration links (re: ros2/docs.ros2.org#52) (#1615)
shonigmann Apr 2, 2021
cd3fd53
use context from `node_base_` for clock executor. (#1617)
fujitatomoya Apr 2, 2021
95adde2
Add generic publisher and generic subscription for serialized message…
nnmm Apr 3, 2021
1037822
refactor AnySubscriptionCallback and add/deprecate callback signature…
wjwwood Apr 3, 2021
7226725
Create load_parameters and delete_parameters methods (#1596)
BriceRenaudeau Apr 4, 2021
7b94f28
Add publishing instrumentation (#1600)
christophebedard Apr 4, 2021
06a4ee0
Add spin_some support to the StaticSingleThreadedExecutor (#1338)
mauropasse Apr 5, 2021
6af478d
Unique network flows (#1496)
anamud Apr 5, 2021
091a8bc
Change index.ros.org -> docs.ros.org. (#1620)
clalancette Apr 5, 2021
61fcc76
remove deprecated code which was deprecated in foxy and should be rem…
wjwwood Apr 6, 2021
f9f90e0
Changelog.
clalancette Apr 6, 2021
98fc7fe
9.0.0
clalancette Apr 6, 2021
41fedb7
Fix race condition in TimeSource clock thread setup (#1623)
hidmic Apr 7, 2021
53cc25d
Use rclcpp::guard_condition
Apr 1, 2021
560e0cd
EventsExecutor: Use rclcpp::GuardCondition
Apr 9, 2021
56405fc
significant refactor to make callbacks type safe
wjwwood Apr 2, 2021
6ef29c1
Remove const on set_listener_callback
Apr 1, 2021
a9c6521
Restore test exception for Connext (#1625)
asorbini Apr 9, 2021
1412e94
EventsExecutor to use std::function
Apr 9, 2021
32aa3db
GuardCondition to have callback <WIP>
Apr 9, 2021
7cadae3
IPC Subscription to have callback
Apr 12, 2021
41c8f8a
EntitiesCollector GCs to push single event
Apr 12, 2021
98ab933
Changelog.
clalancette Apr 12, 2021
a62287b
9.0.1
clalancette Apr 12, 2021
893679e
Check first parameter type and range before calling the user validati…
ivanpauno Apr 13, 2021
085f161
Do not test the value of the history policy when testing the get_publ…
ivanpauno Apr 13, 2021
c4a68b4
Use a different implementation of mutex two priorities (#1628)
ivanpauno Apr 13, 2021
1c2bd84
Avoid returning loan when none was obtained. (#1629)
MiguelCompany Apr 14, 2021
14aba06
Changelog.
clalancette Apr 14, 2021
ec70642
9.0.2
clalancette Apr 14, 2021
b8df934
Clarify node parameters docs (#1631)
jacobperron Apr 15, 2021
1cfa92c
Add on_ready callback to waitables, add clear_* functions, add unit-t…
alsora Apr 19, 2021
bff6916
Increase cppcheck timeout to 500s (#1634)
sloretz Apr 21, 2021
e151cc2
add mutex to set and clear listener APIs
Apr 23, 2021
dd0cd98
allow to set ipc sub callback from regular subscription
Apr 23, 2021
d2dab49
fix minor failures
alsora Apr 23, 2021
4ad66d1
fix typos and errors in comments
alsora Apr 23, 2021
01c2111
fix comments
alsora Apr 23, 2021
476238b
expose qos listener APIs from pub and sub; add unit-tests
alsora Apr 23, 2021
79dba0a
add qos event unit-test for invalid callbacks
alsora Apr 23, 2021
d4dbb64
Merge pull request #64 from alsora/asoragna/waitable-listeners
Apr 23, 2021
b0ff053
Merge remote-tracking branch 'upstream/master' into irobot/add-rmw-li…
Apr 23, 2021
fba080c
Fix action server deadlock issue that caused by other mutexes locked …
KavenYau Apr 25, 2021
e4e56ef
Use QoS depth to limit callbacks count
Apr 28, 2021
d760ba3
Merge pull request #65 from mauropasse/mauro/add-rmw-listener-apis
alsora Apr 28, 2021
79c2dd8
use dynamic_pointer_cast to detect allocator mismatch in intra proces…
wjwwood Apr 29, 2021
6806cdf
Use OnShutdown callback handle instead of OnShutdown callback (#1639)
Barry-Xu-2018 Apr 30, 2021
d051b8a
Returns CancelResponse::REJECT while goal handle failed to transit to…
KavenYau Apr 30, 2021
c15eb1e
Fix get_publishers_subscriptions_info_by_topic test in test_node.cpp …
hidmic May 3, 2021
1fc2d58
Keep custom allocator in publisher and subscription options alive. (#…
hidmic May 4, 2021
0659d82
Do not attempt to use void allocators for memory allocation. (#1657)
hidmic May 5, 2021
2e4c97a
[rclcpp] Type Adaptation feature (#1557)
wjwwood May 7, 2021
5dad229
Fix doc typo (#1663)
jacobperron May 10, 2021
a3383c3
Changelog.
clalancette May 11, 2021
72443ff
10.0.0
clalancette May 11, 2021
d488535
[service] Don't use a weak_ptr to avoid leaking (#1668)
ivanpauno May 13, 2021
f245b4c
Bump the benchmark timeout for benchmark_action_client (#1671)
cottsay May 13, 2021
18fcd91
fix syntax issue with gcc (#1674)
wjwwood May 15, 2021
56f68f9
Fix destruction order in lifecycle benchmark (#1675)
cottsay May 15, 2021
07b6ea0
Declare parameters uninitialized (#1673)
jacobperron May 19, 2021
0251f70
11.0.0
jacobperron May 19, 2021
1c61751
Fix occasionally missing goal result caused by race condition (#1677)
KavenYau May 20, 2021
2ac2dc2
Merge branch 'master' into mauro/add-rmw-listener-apis-merge-master
May 24, 2021
c9d3d11
Merge pull request #66 from mauropasse/mauro/add-rmw-listener-apis-me…
May 24, 2021
558569f
Merge branch 'irobot/add-rmw-listener-apis' into mauro/add-events-exe…
May 26, 2021
394da52
Some fixes
May 26, 2021
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ Visit the [rclcpp API documentation](http://docs.ros2.org/latest/api/rclcpp/) fo

### Examples

The ROS 2 tutorials [Writing a simple publisher and subscriber](https://index.ros.org/doc/ros2/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber/)
and [Writing a simple service and client](https://index.ros.org/doc/ros2/Tutorials/Writing-A-Simple-Cpp-Service-And-Client/)
The ROS 2 tutorials [Writing a simple publisher and subscriber](https://docs.ros.org/en/rolling/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.html).
and [Writing a simple service and client](https://docs.ros.org/en/rolling/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.html)
contain some examples of rclcpp APIs in use.
97 changes: 97 additions & 0 deletions rclcpp/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,103 @@
Changelog for package rclcpp
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

11.0.0 (2021-05-18)
-------------------
* Allow declare uninitialized parameters (`#1673 <https://github.com/ros2/rclcpp/issues/1673>`_)
* Fix syntax issue with gcc (`#1674 <https://github.com/ros2/rclcpp/issues/1674>`_)
* [service] Don't use a weak_ptr to avoid leaking (`#1668 <https://github.com/ros2/rclcpp/issues/1668>`_)
* Contributors: Ivan Santiago Paunovic, Jacob Perron, William Woodall

10.0.0 (2021-05-11)
-------------------
* Fix doc typo (`#1663 <https://github.com/ros2/rclcpp/issues/1663>`_)
* [rclcpp] Type Adaptation feature (`#1557 <https://github.com/ros2/rclcpp/issues/1557>`_)
* Do not attempt to use void allocators for memory allocation. (`#1657 <https://github.com/ros2/rclcpp/issues/1657>`_)
* Keep custom allocator in publisher and subscription options alive. (`#1647 <https://github.com/ros2/rclcpp/issues/1647>`_)
* Fix get_publishers_subscriptions_info_by_topic test in test_node.cpp (`#1648 <https://github.com/ros2/rclcpp/issues/1648>`_)
* Use OnShutdown callback handle instead of OnShutdown callback (`#1639 <https://github.com/ros2/rclcpp/issues/1639>`_)
* use dynamic_pointer_cast to detect allocator mismatch in intra process manager (`#1643 <https://github.com/ros2/rclcpp/issues/1643>`_)
* Increase cppcheck timeout to 500s (`#1634 <https://github.com/ros2/rclcpp/issues/1634>`_)
* Clarify node parameters docs (`#1631 <https://github.com/ros2/rclcpp/issues/1631>`_)
* Contributors: Audrow Nash, Barry Xu, Jacob Perron, Michel Hidalgo, Shane Loretz, William Woodall

9.0.2 (2021-04-14)
------------------
* Avoid returning loan when none was obtained. (`#1629 <https://github.com/ros2/rclcpp/issues/1629>`_)
* Use a different implementation of mutex two priorities (`#1628 <https://github.com/ros2/rclcpp/issues/1628>`_)
* Do not test the value of the history policy when testing the get_publishers/subscriptions_info_by_topic() methods (`#1626 <https://github.com/ros2/rclcpp/issues/1626>`_)
* Check first parameter type and range before calling the user validation callbacks (`#1627 <https://github.com/ros2/rclcpp/issues/1627>`_)
* Contributors: Ivan Santiago Paunovic, Miguel Company

9.0.1 (2021-04-12)
------------------
* Restore test exception for Connext (`#1625 <https://github.com/ros2/rclcpp/issues/1625>`_)
* Fix race condition in TimeSource clock thread setup (`#1623 <https://github.com/ros2/rclcpp/issues/1623>`_)
* Contributors: Andrea Sorbini, Michel Hidalgo

9.0.0 (2021-04-06)
------------------
* remove deprecated code which was deprecated in foxy and should be removed in galactic (`#1622 <https://github.com/ros2/rclcpp/issues/1622>`_)
* Change index.ros.org -> docs.ros.org. (`#1620 <https://github.com/ros2/rclcpp/issues/1620>`_)
* Unique network flows (`#1496 <https://github.com/ros2/rclcpp/issues/1496>`_)
* Add spin_some support to the StaticSingleThreadedExecutor (`#1338 <https://github.com/ros2/rclcpp/issues/1338>`_)
* Add publishing instrumentation (`#1600 <https://github.com/ros2/rclcpp/issues/1600>`_)
* Create load_parameters and delete_parameters methods (`#1596 <https://github.com/ros2/rclcpp/issues/1596>`_)
* refactor AnySubscriptionCallback and add/deprecate callback signatures (`#1598 <https://github.com/ros2/rclcpp/issues/1598>`_)
* Add generic publisher and generic subscription for serialized messages (`#1452 <https://github.com/ros2/rclcpp/issues/1452>`_)
* use context from `node_base\_` for clock executor. (`#1617 <https://github.com/ros2/rclcpp/issues/1617>`_)
* updating quality declaration links (re: `ros2/docs.ros2.org#52 <https://github.com/ros2/docs.ros2.org/issues/52>`_) (`#1615 <https://github.com/ros2/rclcpp/issues/1615>`_)
* Contributors: Ananya Muddukrishna, BriceRenaudeau, Chris Lalancette, Christophe Bedard, Nikolai Morin, Tomoya Fujita, William Woodall, mauropasse, shonigmann

8.2.0 (2021-03-31)
------------------
* Initialize integers in test_parameter_event_handler.cpp to avoid undefined behavior (`#1609 <https://github.com/ros2/rclcpp/issues/1609>`_)
* Namespace tracetools C++ functions (`#1608 <https://github.com/ros2/rclcpp/issues/1608>`_)
* Revert "Namespace tracetools C++ functions (`#1603 <https://github.com/ros2/rclcpp/issues/1603>`_)" (`#1607 <https://github.com/ros2/rclcpp/issues/1607>`_)
* Namespace tracetools C++ functions (`#1603 <https://github.com/ros2/rclcpp/issues/1603>`_)
* Clock subscription callback group spins in its own thread (`#1556 <https://github.com/ros2/rclcpp/issues/1556>`_)
* Contributors: Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, anaelle-sw

8.1.0 (2021-03-25)
------------------
* Remove rmw_connext_cpp references. (`#1595 <https://github.com/ros2/rclcpp/issues/1595>`_)
* Add API for checking QoS profile compatibility (`#1554 <https://github.com/ros2/rclcpp/issues/1554>`_)
* Document misuse of parameters callback (`#1590 <https://github.com/ros2/rclcpp/issues/1590>`_)
* use const auto & to iterate over parameters (`#1593 <https://github.com/ros2/rclcpp/issues/1593>`_)
* Contributors: Chris Lalancette, Jacob Perron, Karsten Knese

8.0.0 (2021-03-23)
------------------
* Guard against integer overflow in duration conversion (`#1584 <https://github.com/ros2/rclcpp/issues/1584>`_)
* Contributors: Jacob Perron

7.0.1 (2021-03-22)
------------------
* get_parameters service should return empty if undeclared parameters are allowed (`#1514 <https://github.com/ros2/rclcpp/issues/1514>`_)
* Made 'Context::shutdown_reason' function a const function (`#1578 <https://github.com/ros2/rclcpp/issues/1578>`_)
* Contributors: Tomoya Fujita, suab321321

7.0.0 (2021-03-18)
------------------
* Document design decisions that were made for statically typed parameters (`#1568 <https://github.com/ros2/rclcpp/issues/1568>`_)
* Fix doc typo in CallbackGroup constructor (`#1582 <https://github.com/ros2/rclcpp/issues/1582>`_)
* Enable qos parameter overrides for the /parameter_events topic (`#1532 <https://github.com/ros2/rclcpp/issues/1532>`_)
* Add support for rmw_connextdds (`#1574 <https://github.com/ros2/rclcpp/issues/1574>`_)
* Remove 'struct' from the rcl_time_jump_t. (`#1577 <https://github.com/ros2/rclcpp/issues/1577>`_)
* Add tests for declaring statically typed parameters when undeclared parameters are allowed (`#1575 <https://github.com/ros2/rclcpp/issues/1575>`_)
* Quiet clang memory leak warning on "DoNotOptimize". (`#1571 <https://github.com/ros2/rclcpp/issues/1571>`_)
* Add ParameterEventsSubscriber class (`#829 <https://github.com/ros2/rclcpp/issues/829>`_)
* When a parameter change is rejected, the parameters map shouldn't be updated. (`#1567 <https://github.com/ros2/rclcpp/pull/1567>`_)
* Fix when to throw the NoParameterOverrideProvided exception. (`#1567 <https://github.com/ros2/rclcpp/pull/1567>`_)
* Fix SEGV caused by order of destruction of Node sub-interfaces (`#1469 <https://github.com/ros2/rclcpp/issues/1469>`_)
* Fix benchmark test failure introduced in `#1522 <https://github.com/ros2/rclcpp/issues/1522>`_ (`#1564 <https://github.com/ros2/rclcpp/issues/1564>`_)
* Fix documented example in create_publisher (`#1558 <https://github.com/ros2/rclcpp/issues/1558>`_)
* Enforce static parameter types (`#1522 <https://github.com/ros2/rclcpp/issues/1522>`_)
* Allow timers to keep up the intended rate in MultiThreadedExecutor (`#1516 <https://github.com/ros2/rclcpp/issues/1516>`_)
* Fix UBSAN warnings in any_subscription_callback. (`#1551 <https://github.com/ros2/rclcpp/issues/1551>`_)
* Fix runtime error: reference binding to null pointer of type (`#1547 <https://github.com/ros2/rclcpp/issues/1547>`_)
* Contributors: Andrea Sorbini, Chris Lalancette, Colin MacKenzie, Ivan Santiago Paunovic, Jacob Perron, Steven! Ragnarök, bpwilcox, tomoya

6.3.1 (2021-02-08)
------------------
* Reference test resources directly from source tree (`#1543 <https://github.com/ros2/rclcpp/issues/1543>`_)
Expand Down
32 changes: 25 additions & 7 deletions rclcpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ project(rclcpp)
find_package(Threads REQUIRED)

find_package(ament_cmake_ros REQUIRED)
find_package(ament_index_cpp REQUIRED)
find_package(builtin_interfaces REQUIRED)
find_package(libstatistics_collector REQUIRED)
find_package(rcl REQUIRED)
Expand All @@ -20,9 +21,10 @@ find_package(rosidl_typesupport_cpp REQUIRED)
find_package(statistics_msgs REQUIRED)
find_package(tracetools REQUIRED)

# Default to C++14
# TODO(wjwwood): remove this when gtest can build on its own, when using target_compile_features()
# Default to C++17
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# About -Wno-sign-conversion: With Clang, -Wconversion implies -Wsign-conversion. There are a number of
Expand All @@ -40,6 +42,7 @@ set(${PROJECT_NAME}_SRCS
src/rclcpp/context.cpp
src/rclcpp/contexts/default_context.cpp
src/rclcpp/detail/mutex_two_priorities.cpp
src/rclcpp/detail/resolve_parameter_overrides.cpp
src/rclcpp/detail/rmw_implementation_specific_payload.cpp
src/rclcpp/detail/rmw_implementation_specific_publisher_payload.cpp
src/rclcpp/detail/rmw_implementation_specific_subscription_payload.cpp
Expand All @@ -50,15 +53,17 @@ set(${PROJECT_NAME}_SRCS
src/rclcpp/executable_list.cpp
src/rclcpp/executor.cpp
src/rclcpp/executors.cpp
src/rclcpp/expand_topic_or_service_name.cpp
src/rclcpp/executors/events_executor.cpp
src/rclcpp/executors/events_executor_entities_collector.cpp
src/rclcpp/executors/multi_threaded_executor.cpp
src/rclcpp/executors/single_threaded_executor.cpp
src/rclcpp/executors/static_executor_entities_collector.cpp
src/rclcpp/executors/static_single_threaded_executor.cpp
src/rclcpp/executors/timers_manager.cpp
src/rclcpp/expand_topic_or_service_name.cpp
src/rclcpp/future_return_code.cpp
src/rclcpp/generic_publisher.cpp
src/rclcpp/generic_subscription.cpp
src/rclcpp/graph_listener.cpp
src/rclcpp/guard_condition.cpp
src/rclcpp/init_options.cpp
Expand All @@ -68,8 +73,8 @@ set(${PROJECT_NAME}_SRCS
src/rclcpp/memory_strategies.cpp
src/rclcpp/memory_strategy.cpp
src/rclcpp/message_info.cpp
src/rclcpp/network_flow_endpoint.cpp
src/rclcpp/node.cpp
src/rclcpp/node_options.cpp
src/rclcpp/node_interfaces/node_base.cpp
src/rclcpp/node_interfaces/node_clock.cpp
src/rclcpp/node_interfaces/node_graph.cpp
Expand All @@ -80,13 +85,14 @@ set(${PROJECT_NAME}_SRCS
src/rclcpp/node_interfaces/node_timers.cpp
src/rclcpp/node_interfaces/node_topics.cpp
src/rclcpp/node_interfaces/node_waitables.cpp
src/rclcpp/node_options.cpp
src/rclcpp/parameter.cpp
src/rclcpp/parameter_value.cpp
src/rclcpp/parameter_client.cpp
src/rclcpp/parameter_event_handler.cpp
src/rclcpp/parameter_events_filter.cpp
src/rclcpp/parameter_map.cpp
src/rclcpp/parameter_service.cpp
src/rclcpp/parameter_value.cpp
src/rclcpp/publisher_base.cpp
src/rclcpp/qos.cpp
src/rclcpp/qos_event.cpp
Expand All @@ -101,6 +107,7 @@ set(${PROJECT_NAME}_SRCS
src/rclcpp/time_source.cpp
src/rclcpp/timer.cpp
src/rclcpp/type_support.cpp
src/rclcpp/typesupport_helpers.cpp
src/rclcpp/utilities.cpp
src/rclcpp/wait_set_policies/detail/write_preferring_read_write_lock.cpp
src/rclcpp/waitable.cpp
Expand Down Expand Up @@ -172,15 +179,20 @@ foreach(interface_file ${interface_files})
include/rclcpp/node_interfaces/get_${interface_name}.hpp)
endforeach()

add_library(${PROJECT_NAME}
${${PROJECT_NAME}_SRCS})
add_library(${PROJECT_NAME} ${${PROJECT_NAME}_SRCS})
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
# TODO(wjwwood): address all deprecation warnings and then remove this
if(WIN32)
target_compile_definitions(${PROJECT_NAME} PUBLIC "_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS")
endif()
target_include_directories(${PROJECT_NAME} PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
"$<INSTALL_INTERFACE:include>")
target_link_libraries(${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT})
# specific order: dependents before dependencies
ament_target_dependencies(${PROJECT_NAME}
"ament_index_cpp"
"libstatistics_collector"
"rcl"
"rcl_yaml_param_parser"
Expand Down Expand Up @@ -211,6 +223,7 @@ ament_export_include_directories(include)
ament_export_libraries(${PROJECT_NAME})
ament_export_targets(${PROJECT_NAME})

ament_export_dependencies(ament_index_cpp)
ament_export_dependencies(libstatistics_collector)
ament_export_dependencies(rcl)
ament_export_dependencies(rcpputils)
Expand All @@ -237,3 +250,8 @@ install(
DIRECTORY include/ ${CMAKE_CURRENT_BINARY_DIR}/include/
DESTINATION include
)

if(TEST cppcheck)
# must set the property after ament_package()
set_tests_properties(cppcheck PROPERTIES TIMEOUT 500)
endif()
18 changes: 9 additions & 9 deletions rclcpp/QUALITY_DECLARATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ This document is a declaration of software quality for the `rclcpp` package, bas

The package `rclcpp` claims to be in the **Quality Level 1** category when it is used with a **Quality Level 1** middleware.

Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://www.ros.org/reps/rep-2004.html) of the ROS2 developer guide.

## Version Policy [1]

### Version Scheme [1.i]

`rclcpp` uses `semver` according to the recommendation for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#versioning).
`rclcpp` uses `semver` according to the recommendation for ROS Core packages in the [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#versioning).

### Version Stability [1.ii]

Expand Down Expand Up @@ -39,19 +39,19 @@ Headers under the folder `detail` are not considered part of the public API and

## Change Control Process [2]

`rclcpp` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#change-control-process).
`rclcpp` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#change-control-process).

### Change Requests [2.i]

All changes will occur through a pull request, check [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#change-control-process) for additional information.
All changes will occur through a pull request, check [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#change-control-process) for additional information.

### Contributor Origin [2.ii]

This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md).

### Peer Review Policy [2.iii]

All pull requests will be peer-reviewed, check [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#change-control-process) for additional information.
All pull requests will be peer-reviewed, check [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#change-control-process) for additional information.

### Continuous Integration [2.iv]

Expand Down Expand Up @@ -111,7 +111,7 @@ The tests aim to cover both typical usage and corner cases, but are quantified b

### Coverage [4.iii]

`rclcpp` follows the recommendations for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#code-coverage), and opts to use line coverage instead of branch coverage.
`rclcpp` follows the recommendations for ROS Core packages in the [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#code-coverage), and opts to use line coverage instead of branch coverage.

This includes:

Expand All @@ -121,13 +121,13 @@ This includes:

Changes are required to make a best effort to keep or increase coverage before being accepted, but decreases are allowed if properly justified and accepted by reviewers.

Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_coverage/lastCompletedBuild/cobertura/src_ros2_rclcpp_rclcpp_src_rclcpp/). A description of how coverage statistics are calculated is summarized in this page ["ROS 2 Onboarding Guide"](https://index.ros.org/doc/ros2/Contributing/ROS-2-On-boarding-Guide/#note-on-coverage-runs).
Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_coverage/lastCompletedBuild/cobertura/src_ros2_rclcpp_rclcpp_src_rclcpp/). A description of how coverage statistics are calculated is summarized in this page ["ROS 2 Onboarding Guide"](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#note-on-coverage-runs).

`rclcpp` has a line coverage `>= 95%`, which is calculated over all directories within `rclcpp` with the exception of the `experimental` directory.

### Performance [4.iv]

`rclcpp` follows the recommendations for performance testing of C/C++ code in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#performance), and opts to do performance analysis on each release rather than each change.
`rclcpp` follows the recommendations for performance testing of C/C++ code in the [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#performance), and opts to do performance analysis on each release rather than each change.

The performance tests of `rclcpp` are located in the [test/benchmark directory](https://github.com/ros2/rclcpp/tree/master/rclcpp/test/benchmark).

Expand All @@ -139,7 +139,7 @@ Changes that introduce regressions in performance must be adequately justified i

### Linters and Static Analysis [4.v]

`rclcpp` uses and passes all the ROS2 standard linters and static analysis tools for a C++ package as described in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
`rclcpp` uses and passes all the ROS2 standard linters and static analysis tools for a C++ package as described in the [ROS 2 Developer Guide](https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#linters-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.

Currently nightly test results can be seen here:
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp/)
Expand Down
Loading