Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Load profiles based on topic names #335

Merged

Conversation

EduPonz
Copy link
Contributor

@EduPonz EduPonz commented Oct 24, 2019

When loading configuration from a Fast DDS XML file, the current code uses the same publisher profile for all publishers and the same subscriber profile for all subscribers.

This PR aims to change this behavior, allowing the user to specify different settings on each publisher or subscriber, according to the following rules:

When creating a ROS2 publisher

If a <publisher> profile with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, use the <publisher> profile with is_default_profile="true"

When creating a ROS2 subscription

If a <subscriber> profile with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, use the <subscriber> profile with is_default_profile="true"

When creating a ROS2 service

For the creation of the request subscriber, if a <subscriber> profile with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, if a <subscriber> profile with profile_name="service" exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, use the <subscriber> profile with is_default_profile="true"

For the creation of the reply publisher, if a <publisher> profile with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, if a <publisher> profile with profile_name="service" exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, use the <publisher> profile with is_default_profile="true"

When creating a ROS2 client

For the creation of the request publisher, if a <publisher> profile with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, if a <publisher> profile with profile_name="client" exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, use the <publisher> profile with is_default_profile="true"

For the creation of the reply subscriber, if a <subscriber> profile with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, if a <subscriber> profile with profile_name="client" exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it.
Otherwise, use the <subscriber> profile with is_default_profile="true"

@EduPonz EduPonz changed the title Refs #6715: Load profiles based on node and topic names Refs #6715: Load profiles based on node and topic names [6736] Oct 24, 2019
@EduPonz EduPonz closed this Oct 24, 2019
@EduPonz EduPonz reopened this Oct 24, 2019
@EduPonz EduPonz force-pushed the feature/load_profiles_from_nodename_and_topic branch from b80b552 to f4691ab Compare October 24, 2019 13:09
@EduPonz EduPonz force-pushed the feature/load_profiles_from_nodename_and_topic branch from aa886d2 to 4675d06 Compare October 25, 2019 09:46
@wjwwood wjwwood added the enhancement New feature or request label Nov 14, 2019
@dirk-thomas
Copy link
Member

Please provide a detailed description what this patch is about and what the references in the title are referring to.

@dirk-thomas dirk-thomas added the more-information-needed Further information is required label Nov 14, 2019
@EduPonz EduPonz changed the title Refs #6715: Load profiles based on node and topic names [6736] Load profiles based on node and topic names Nov 15, 2019
@EduPonz
Copy link
Contributor Author

EduPonz commented Nov 15, 2019

Done

@wjwwood wjwwood removed the more-information-needed Further information is required label Nov 21, 2019
@claireyywang
Copy link

@EduPonz looks like there are some build errors related to rmw_fastrtps_shared_cpp in the PR check. Can you please look into that? You may want to rebase onto master first to incorporate the latest changes. Thanks!

@EduPonz
Copy link
Contributor Author

EduPonz commented Nov 22, 2019

@claireyywang I've taken a look at the console output from the CI and have found this error message.

02:47:01 In file included from /tmp/ws/src/rmw_fastrtps/rmw_fastrtps_shared_cpp/src/rmw_node.cpp:49:0:
02:47:01 /opt/ros/eloquent/include/fastrtps/xmlparser/XMLProfileManager.h:96:37: note: candidate: static eprosima::fastrtps::xmlparser::XMLP_ret eprosima::fastrtps::xmlparser::XMLProfileManager::fillParticipantAttributes(const string&, eprosima::fastrtps::ParticipantAttributes&)
02:47:01          RTPS_DllAPI static XMLP_ret fillParticipantAttributes(
02:47:01                                      ^~~~~~~~~~~~~~~~~~~~~~~~~
02:47:01 /opt/ros/eloquent/include/fastrtps/xmlparser/XMLProfileManager.h:96:37: note:   candidate expects 2 arguments, 3 provided

In Fast-RTPS v1.9.3, we have added an optional argument to XMLProfileManager::fillParticipantAttributes(), XMLProfileManager::fillPublisherAttributes(), and XMLProfileManager::fillSubscriberAttributes() so that the user can prevent an error level log if the profile is not found in the XML. We have added this option in relation with this PR, because the intention is for the rmw to look for some default profiles, but we don't want to show a log if they are not found. Which version of Fast-RTPS are you using for this build?

Thanks!

@claireyywang
Copy link

@EduPonz Thanks for the quick response! I believe we are using version 1.9.x of Fast-RTPS for eloquent builds.

@EduPonz
Copy link
Contributor Author

EduPonz commented Nov 22, 2019

@claireyywang I'm looking at the header and source files of XMLProfileManager in 1.9.x and I can see the methods are correctly defined there (meaning including the log_error flag). Is it possible that your Fast-RTPS is not up-to-date or that you are linking with and older version?

@claireyywang
Copy link

claireyywang commented Nov 22, 2019

@ros-pull-request-builder retest this please

@EduPonz
Copy link
Contributor Author

EduPonz commented Nov 22, 2019

@claireyywang Actually, we now believe that the PR came before the update of the 1.9.x, so the necessary changes were actually not there. Re-running the build should suffice in that case. can you do that or should I do a force push to force the build? Thanks!

@ros2 ros2 deleted a comment from claireyywang Nov 22, 2019
@ros2 ros2 deleted a comment from claireyywang Nov 22, 2019
@ros2 ros2 deleted a comment from claireyywang Nov 22, 2019
@dirk-thomas
Copy link
Member

dirk-thomas commented Nov 22, 2019

We can't run the PR builder atm since Eloquent has been branched of and F-turtle jobs aren't available yet. The Epr... status is a left over and can be ignored.

@claireyywang Please trigger jobs on ci.ros2.org instead.

@claireyywang
Copy link

Linux Build Status
Linux-aarch64 Build Status
OSX Build Status
Windows Build Status

Copy link

@claireyywang claireyywang left a comment

Choose a reason for hiding this comment

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

nit.

eprosima::fastrtps::fixed_string<255> sub_topic_name = _create_topic_name(
qos_policies, ros_service_response_prefix, service_name, "Reply");
Domain::getDefaultSubscriberAttributes(subscriberParam);
if (std::getenv("FASTRTPS_DEFAULT_PROFILES_FILE") != nullptr) {

Choose a reason for hiding this comment

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

std::getenv triggered warnings on Windows. Compiler suggests using _dupenv_s instead. Same for below.

Copy link
Member

Choose a reason for hiding this comment

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

This should probably use the platform independent function rcutils_get_env().

@EduPonz EduPonz force-pushed the feature/load_profiles_from_nodename_and_topic branch from 8c4c65a to 8c7747a Compare November 25, 2019 09:14
@EduPonz
Copy link
Contributor Author

EduPonz commented Nov 25, 2019

I have removed the std::getenv("FASTRTPS_DEFAULT_PROFILES_FILE") called, since the getDefault<>Attributes() methods already attempt to load the profiles file defined by environment variable FASTRTPS_DEFAULT_PROFILES_FILE

@claireyywang
Copy link

claireyywang commented Dec 2, 2019

CI
Linux Build Status
Linux-aarc64 Build Status
OSX Build Status
Windows Build Status

Copy link

@claireyywang claireyywang left a comment

Choose a reason for hiding this comment

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

LGTM other than the cpplinter warnings on line length (<100 chars) and whitespace. @ivanpauno what do you think?

    * For ROS2 nodes: If a participant profiles with profile_name=node_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.
    * For ROS2 publishers/subscriptions: If a publisher/subscriber with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.
    * For ROS2 services: if a publisher/subscriber with profile_name=topic_name (or service) exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.
    * For ROS2 clients: if a publisher/subscriber with profile_name=topic_name (or client) exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
@EduPonz EduPonz force-pushed the feature/load_profiles_from_nodename_and_topic branch from 0dd60e0 to b726e63 Compare December 17, 2020 15:31
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
@EduPonz EduPonz force-pushed the feature/load_profiles_from_nodename_and_topic branch from b726e63 to eba8500 Compare December 17, 2020 15:50
@EduPonz EduPonz changed the title Load profiles based on node and topic names Load profiles based on topic names Dec 17, 2020
@EduPonz
Copy link
Contributor Author

EduPonz commented Dec 17, 2020

I have updated this PR cause I think the content is very much relevant and users would definitely benefit from it. It enables loading different QoS settings for different publishers/subscriptions/clients/services based on topic names. Participant profiles are not loaded since, to my knowledge, there is no context identifier that the user can be aware of.

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
@MiguelCompany
Copy link
Contributor

Participant profiles are not loaded since, to my knowledge, there is no context identifier that the user can be aware of.

Perhaps you should update the PR description, then

@EduPonz
Copy link
Contributor Author

EduPonz commented Dec 18, 2020

Perhaps you should update the PR description, then

I had done that, but I never clicked on update. Thanks!

Copy link
Member

@ivanpauno ivanpauno left a comment

Choose a reason for hiding this comment

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

@EduPonz could you add documentation about this in the README?

rmw_fastrtps_cpp/src/rmw_client.cpp Show resolved Hide resolved
@ivanpauno
Copy link
Member

It would also be great if we would have ROS2 documentation pointing out when it's recommended to use the new "qos parameter overrides" and when vendor specific profiles. The general guideline would be use parameters for qos settings available in ROS 2, and to use vendor specific files for everything else.

We actually should add a ROS 2 tutorial about that, but if you can briefly mention both in the readme that would be great.

Participant profiles are not loaded since, to my knowledge, there is no context identifier that the user can be aware of.

Yeah, we don't have an identifier for that.

Most applications only have one participant per process.
If you want to share the same XML file between different processes but use different participant profiles for each of them, maybe the profile to use could be specified in an environment variable (?), but I'm not sure if that's a good idea or just using different files is better.

@EduPonz
Copy link
Contributor Author

EduPonz commented Dec 21, 2020

If you want to share the same XML file between different processes but use different participant profiles for each of them, maybe the profile to use could be specified in an environment variable (?), but I'm not sure if that's a good idea or just using different files is better.

We can discuss that for a different PR. I think that we have enough interdependent environment variable as it is, adding more might just be too confusing. I'll extend the README and then we can talk about how to proceed with the ROS 2 tutorial. Thanks for the review!

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
@EduPonz
Copy link
Contributor Author

EduPonz commented Dec 21, 2020

@ivanpauno I've extended the README to document the new functionality. It'd be great if you could take a look at it.

Copy link
Member

@ivanpauno ivanpauno left a comment

Choose a reason for hiding this comment

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

Maybe an example of how to use different profiles for different topics would be good.

This looks great to me, thanks!

ROS 2 clients contain a publisher to send requests, and a subscription to receive the service's replies.
`rmw_fastrtps` allows for configuring each of these endpoints separately in the following manner:

1. To configure the requests publisher, define a `<publisher>` profile with attribute `profile_name=topic_name`, where topic name is the name of the service after mangling.
Copy link
Member

Choose a reason for hiding this comment

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

it would be great to explain how the topic names after mangling look

Copy link
Contributor

Choose a reason for hiding this comment

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

+1, but since some of the mangling is ROS 2 specific, let's not repeat existing documentation.


##### Creating publishers/subscriptions with different profiles

To configure a publisher/subscription, define a `<publisher>`/`<subscriber>` profile with attribute `profile_name=topic_name`.
Copy link
Member

Choose a reason for hiding this comment

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

it would be great to clarify if this is the topic name after mangling or not

@ivanpauno
Copy link
Member

Waiting for an extra approval from a maintainer, maybe @hidmic or @mjeronimo ?

@JaimeMartin JaimeMartin self-requested a review December 21, 2020 19:26
Copy link
Contributor

@JaimeMartin JaimeMartin left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@hidmic hidmic left a comment

Choose a reason for hiding this comment

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

Overall LGTM. On a related note, why is this functionality not available in rmw_fastrtps_dynamic_cpp?

@hidmic
Copy link
Contributor

hidmic commented Dec 21, 2020

This needs a CI run too.

@hidmic
Copy link
Contributor

hidmic commented Dec 21, 2020

CI up to rmw_fastrps_cpp, test_rmw_implementation, test_communication:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

@JaimeMartin JaimeMartin merged commit 4d38e38 into ros2:master Dec 22, 2020
@EduPonz
Copy link
Contributor Author

EduPonz commented Dec 22, 2020

@hidmic @ivanpauno I'm adding the functionality to rmw_fastrtps_dynamic_cpp and extending the README in a follow up PR.

@MiguelCompany MiguelCompany deleted the feature/load_profiles_from_nodename_and_topic branch January 13, 2021 12:08
EduPonz added a commit to eProsima/rmw_fastrtps that referenced this pull request Jan 19, 2021
* Refs #6715: Load profiles based on node and topic names
    * For ROS2 nodes: If a participant profiles with profile_name=node_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.
    * For ROS2 publishers/subscriptions: If a publisher/subscriber with profile_name=topic_name exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.
    * For ROS2 services: if a publisher/subscriber with profile_name=topic_name (or service) exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.
    * For ROS2 clients: if a publisher/subscriber with profile_name=topic_name (or client) exists in FASTRTPS_DEFAULT_PROFILES_FILE, then load it. Else use default.

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Uncrustify compliance and log_error=false on loading profiles

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Correct line length

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Keep linters happy

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Document configuration of entities using XML

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
timonegk pushed a commit to timonegk/ros-rolling-rmw-fastrtps-cpp-release that referenced this pull request May 21, 2022
ros-rolling-rmw-fastrtps-cpp (6.2.1-1jammy) jammy; urgency=high
.
  * Add pub/sub init, publish and take instrumentation using tracetools (#591 <ros2/rmw_fastrtps#591>)
  * Add content filter topic feature (#513 <ros2/rmw_fastrtps#513>)
  * Add sequence numbers to message info structure (#587 <ros2/rmw_fastrtps#587>)
  * Removed some heap interactions in rmw_serialize.cpp (#590 <ros2/rmw_fastrtps#590>)
  * Contributors: Chen Lihui, Christophe Bedard, Ivan Santiago Paunovic, WideAwakeTN
.
ros-rolling-rmw-fastrtps-cpp (6.2.0-1jammy) jammy; urgency=high
.
  * Add EventsExecutor (#468 <ros2/rmw_fastrtps#468>)
  * Install headers to include/${PROJECT_NAME} (#578 <ros2/rmw_fastrtps#578>)
  * Contributors: Shane Loretz, iRobot ROS
.
ros-rolling-rmw-fastrtps-cpp (6.1.2-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (6.1.1-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (6.1.0-1jammy) jammy; urgency=high
.
  * Add client/service QoS getters. (#560 <ros2/rmw_fastrtps#560>)
  * Contributors: mauropasse
.
ros-rolling-rmw-fastrtps-cpp (6.0.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (5.2.2-1jammy) jammy; urgency=high
.
  * Correctly recalculate serialized size on bounded sequences. (#540 <ros2/rmw_fastrtps#540>)
  * Fix type size alignment. (#550 <ros2/rmw_fastrtps#550>)
  * Contributors: Miguel Company
.
ros-rolling-rmw-fastrtps-cpp (5.2.1-1jammy) jammy; urgency=high
.
  * Change links from index.ros.org -> docs.ros.org (#539 <ros2/rmw_fastrtps#539>)
  * Contributors: Chris Lalancette
.
ros-rolling-rmw-fastrtps-cpp (5.2.0-1jammy) jammy; urgency=high
.
  * Add rmw_publisher_wait_for_all_acked support. (#519 <ros2/rmw_fastrtps#519>)
  * Contributors: Barry Xu
.
ros-rolling-rmw-fastrtps-cpp (5.1.0-1jammy) jammy; urgency=high
.
  * Loan messages implementation (#523 <ros2/rmw_fastrtps#523>)
    * Added is_plain_ attribute to base TypeSupport.
    * Added new methods to base TypeSupport.
    * Implementation of rmw_borrow_loaned_message.
    * Implementation of rmw_return_loaned_message_from_publisher.
    * Enable loan messages on publishers of plain types.
    * Implementation for taking loaned messages.
    * Enable loan messages on subscriptions of plain types.
  * Contributors: Miguel Company
.
ros-rolling-rmw-fastrtps-cpp (5.0.0-1jammy) jammy; urgency=high
.
  * Refactor to use DDS standard API (#518 <ros2/rmw_fastrtps#518>)
  * Unique network flows (#502 <ros2/rmw_fastrtps#502>)
  * updating quality declaration links (re: ros2/docs.ros2.org#52 <ros2/docs.ros2.org#52>) (#520 <ros2/rmw_fastrtps#520>)
  * Contributors: Miguel Company, shonigmann
.
ros-rolling-rmw-fastrtps-cpp (4.5.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (4.4.0-1jammy) jammy; urgency=high
.
  * Add RMW function to check QoS compatibility (#511 <ros2/rmw_fastrtps#511>)
  * Capture cdr exceptions (#505 <ros2/rmw_fastrtps#505>)
  * Contributors: Jacob Perron, Miguel Company
.
ros-rolling-rmw-fastrtps-cpp (4.3.0-1jammy) jammy; urgency=high
.
  * Load profiles based on topic names (#335 <ros2/rmw_fastrtps#335>)
  * Set rmw_dds_common::GraphCache callback after init succeeds. (#496 <ros2/rmw_fastrtps#496>)
  * Handle typesupport errors on fetch. (#495 <ros2/rmw_fastrtps#495>)
  * Contributors: Eduardo Ponz Segrelles, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (4.2.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (4.1.0-1jammy) jammy; urgency=high
.
  * Check for correct context shutdown (#486 <ros2/rmw_fastrtps#486>)
  * New environment variable to change easily the publication mode (#470 <ros2/rmw_fastrtps#470>)
  * Contributors: Ignacio Montesino Valle, José Luis Bueno López
.
ros-rolling-rmw-fastrtps-cpp (4.0.0-1jammy) jammy; urgency=high
.
  * Discriminate when the Client has gone from when the Client has not completely matched (#467 <ros2/rmw_fastrtps#467>)
    * Workaround when the client is gone before server sends response
    * Change add to the map to listener callback
  * Update the package.xml files with the latest Open Robotics maintainers (#459 <ros2/rmw_fastrtps#459>)
  * Update Quality Declarations and READMEs (#455 <ros2/rmw_fastrtps#455>)
    * Add QD links for dependencies to rmw_fastrtps_cpp QD
    * Provide external dependencies QD links
    * Update rmw_fastrtps README to use Fast DDS
    * Update rmw_fastrtps_cpp QD: Fast DDS & unit test
    * Update README rmw_fastrtps_cpp to QL2
  * Contributors: JLBuenoLopez-eProsima, Jaime Martin Losa, José Luis Bueno López, Michael Jeronimo
.
ros-rolling-rmw-fastrtps-cpp (3.1.4-1jammy) jammy; urgency=high
.
  * Perform fault injection in all creation/destruction APIs. (#453 <ros2/rmw_fastrtps#453>)
  * Ensure rmw_destroy_node() completes despite run-time errors. (#458 <ros2/rmw_fastrtps#458>)
  * Update rmw_fastrtps_cpp and rmw_fastrtps_shared_cpp QDs to QL2. (#456 <ros2/rmw_fastrtps#456>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (3.1.3-1jammy) jammy; urgency=high
.
  * Return RMW_RET_UNSUPPORTED in rmw_get_serialized_message_size (#452 <ros2/rmw_fastrtps#452>)
  * Contributors: Alejandro Hernández Cordero
.
ros-rolling-rmw-fastrtps-cpp (3.1.2-1jammy) jammy; urgency=high
.
  * Updated publisher/subscription allocation and wait set API return codes (#443 <ros2/rmw_fastrtps#443>)
  * Added rmw_logging tests (#442 <ros2/rmw_fastrtps#442>)
  * Contributors: Alejandro Hernández Cordero
.
ros-rolling-rmw-fastrtps-cpp (3.1.1-1jammy) jammy; urgency=high
.
  * Make service/client construction/destruction implementation compliant (#445 <ros2/rmw_fastrtps#445>)
  * Make sure type can be unregistered successfully (#437 <ros2/rmw_fastrtps#437>)
  * Contributors: Barry Xu, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (3.1.0-1jammy) jammy; urgency=high
.
  * Add tests for native entity getters. (#439 <ros2/rmw_fastrtps#439>)
  * Avoid deadlock if graph update fails. (#438 <ros2/rmw_fastrtps#438>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (3.0.0-1jammy) jammy; urgency=high
.
  * Call Domain::removePublisher while failure occurs in create_publisher (#434 <ros2/rmw_fastrtps#434>)
  * Contributors: Barry Xu
.
ros-rolling-rmw-fastrtps-cpp (2.6.0-1jammy) jammy; urgency=high
.
  * Ensure compliant matched pub/sub count API. (#424 <ros2/rmw_fastrtps#424>)
  * Ensure compliant publisher QoS queries. (#425 <ros2/rmw_fastrtps#425>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (2.5.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (2.4.0-1jammy) jammy; urgency=high
.
  * Ensure compliant subscription API. (#419 <ros2/rmw_fastrtps#419>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (2.3.0-1jammy) jammy; urgency=high
.
  * Ensure compliant publisher API. (#414 <ros2/rmw_fastrtps#414>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (2.2.0-1jammy) jammy; urgency=high
.
  * Set context actual domain id (#410 <ros2/rmw_fastrtps#410>)
  * Contributors: Ivan Santiago Paunovic
.
ros-rolling-rmw-fastrtps-cpp (2.1.0-1jammy) jammy; urgency=high
.
  * Ensure compliant node construction/destruction API. (#408 <ros2/rmw_fastrtps#408>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (2.0.0-1jammy) jammy; urgency=high
.
  * Remove domain_id and localhost_only from node API (#407 <ros2/rmw_fastrtps#407>)
  * Amend rmw_init() implementation: require enclave. (#406 <ros2/rmw_fastrtps#406>)
  * Update Quality Declarations to QL3. (#404 <ros2/rmw_fastrtps#404>)
  * Contributors: Ivan Santiago Paunovic, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (1.1.0-1jammy) jammy; urgency=high
.
  * Ensure compliant init/shutdown API implementation. (#401 <ros2/rmw_fastrtps#401>)
  * Update Quality Declaration to QL3. (#403 <ros2/rmw_fastrtps#403>)
  * Finalize context iff shutdown. (#396 <ros2/rmw_fastrtps#396>)
  * Make service wait for response reader (#390 <ros2/rmw_fastrtps#390>)
  * Contributors: Michel Hidalgo, Miguel Company
.
ros-rolling-rmw-fastrtps-cpp (1.0.1-1jammy) jammy; urgency=high
.
  * Add Security Vulnerability Policy pointing to REP-2006 (#389 <ros2/rmw_fastrtps#389>)
  * Update QDs for 1.0 (#383 <ros2/rmw_fastrtps#383>)
  * Contributors: Chris Lalancette, Stephen Brawner
.
ros-rolling-rmw-fastrtps-cpp (1.0.0-1jammy) jammy; urgency=high
.
  * Remove API related to manual by node liveliness.  (#379 <ros2/rmw_fastrtps#379>)
  * Update quality declarations on feature testing. (#380 <ros2/rmw_fastrtps#380>)
  * Contributors: Ivan Santiago Paunovic, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-cpp (0.9.1-1jammy) jammy; urgency=high
.
  * Add package READMEs and QUALITY_DECLARATION files (#375 <ros2/rmw_fastrtps#375>)
  * Added doxyfiles (#372 <ros2/rmw_fastrtps#372>)
  * Contributors: Alejandro Hernández Cordero, brawner
.
ros-rolling-rmw-fastrtps-cpp (0.9.0-1jammy) jammy; urgency=high
.
  * Add missing export of rmw_dds_common. (#374 <ros2/rmw_fastrtps#374>)
  * Rename rosidl_message_bounds_t. (#373 <ros2/rmw_fastrtps#373>)
  * Feature/services timestamps. (#369 <ros2/rmw_fastrtps#369>)
  * Add support for taking a sequence of messages. (#366 <ros2/rmw_fastrtps#366>)
  * security-context -> enclave. (#365 <ros2/rmw_fastrtps#365>)
  * Rename rosidl_generator_c namespace to rosidl_runtime_c. (#367 <ros2/rmw_fastrtps#367>)
  * Remove custom typesupport for rmw_dds_common interfaces. (#364 <ros2/rmw_fastrtps#364>)
  * Added rosidl_runtime c and cpp depencencies. (#351 <ros2/rmw_fastrtps#351>)
  * Switch to one Participant per Context. (#312 <ros2/rmw_fastrtps#312>)
  * Add rmw_*_event_init() functions. (#354 <ros2/rmw_fastrtps#354>)
  * Fixing type support C/CPP mix on rmw_fastrtps_dynamic_cpp. (#350 <ros2/rmw_fastrtps#350>)
  * Fix build warning in Ubuntu Focal. (#346 <ros2/rmw_fastrtps#346>)
  * Code style only: wrap after open parenthesis if not in one line. (#347 <ros2/rmw_fastrtps#347>)
  * Passing down type support information (#342 <ros2/rmw_fastrtps#342>)
  * Implement functions to get publisher and subcription informations like QoS policies from topic name. (#336 <ros2/rmw_fastrtps#336>)
  * Contributors: Alejandro Hernández Cordero, Dirk Thomas, Ingo Lütkebohle, Ivan Santiago Paunovic, Jaison Titus, Miaofei Mei, Michael Carroll, Miguel Company, Mikael Arguedas
.
ros-rolling-rmw-fastrtps-cpp (0.8.1-1jammy) jammy; urgency=high
.
  * use return_loaned_message_from (#334 <ros2/rmw_fastrtps#334>)
  * Restrict traffic to localhost only if env var is provided (#331 <ros2/rmw_fastrtps#331>)
  * Zero copy api (#322 <ros2/rmw_fastrtps#322>)
  * update signature for added pub/sub options (#329 <ros2/rmw_fastrtps#329>)
  * Contributors: Brian Marchi, Karsten Knese, William Woodall
.
ros-rolling-rmw-fastrtps-cpp (0.8.0-1jammy) jammy; urgency=high
.
  * Add function for getting clients by node (#293 <ros2/rmw_fastrtps#293>)
  * Implement get_actual_qos() for subscriptions (#287 <ros2/rmw_fastrtps#287>)
  * Fix error message (#290 <ros2/rmw_fastrtps#290>)
  * Contributors: Jacob Perron, M. M
.
ros-rolling-rmw-fastrtps-cpp (0.7.3-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-cpp (0.7.2-1jammy) jammy; urgency=high
.
  * Centralize topic name creation logic and update to match FastRTPS 1.8 API (#272 <ros2/rmw_fastrtps#272>)
  * Contributors: Nick Burek
.
ros-rolling-rmw-fastrtps-cpp (0.7.1-1jammy) jammy; urgency=high
.
  * Support arbitrary message namespaces  (#266 <ros2/rmw_fastrtps#266>)
  * Add qos interfaces with no-op (#271 <ros2/rmw_fastrtps#271>)
  * Updates for preallocation API. (#274 <ros2/rmw_fastrtps#274>)
  * Contributors: Jacob Perron, Michael Carroll, Ross Desmond
.
ros-rolling-rmw-fastrtps-cpp (0.7.0-1jammy) jammy; urgency=high
.
  * Add function to get publisher actual qos settings (#267 <ros2/rmw_fastrtps#267>)
  * pass context to wait set and fini context (#252 <ros2/rmw_fastrtps#252>)
  * Improve service_is_available logic to protect that client is waiting forever (#238 <ros2/rmw_fastrtps#238>)
  * Merge pull request #250 <ros2/rmw_fastrtps#250> from ros2/support_static_lib
  * use namespace_prefix from shared package
  * Contributors: Dirk Thomas, DongheeYe, William Woodall, ivanpauno
.
ros-rolling-rmw-fastrtps-cpp (0.6.1-1jammy) jammy; urgency=high
.
  * Add topic cache object for managing topic relations (#236 <ros2/rmw_fastrtps#236>)
  * Fastrtps 1.7.0 (#233 <ros2/rmw_fastrtps#233>)
  * RMW_FastRTPS configuration from XML only (#243 <ros2/rmw_fastrtps#243>)
  * refactor to support init options and context (#237 <ros2/rmw_fastrtps#237>)
  * Methods to retrieve matched counts on pub/sub (#234 <ros2/rmw_fastrtps#234>)
  * use uint8_array (#240 <ros2/rmw_fastrtps#240>)
  * Contributors: Juan Carlos, Karsten Knese, Michael Carroll, MiguelCompany, Ross Desmond, William Woodall
.
ros-rolling-rmw-fastrtps-cpp (0.6.0-1jammy) jammy; urgency=high
.
  * Add semicolons to all RCLCPP and RCUTILS macros. (#229 <ros2/rmw_fastrtps#229>)
  * Include node namespaces in get_node_names (#224 <ros2/rmw_fastrtps#224>)
  * add rmw_get_serialization_format (#215 <ros2/rmw_fastrtps#215>)
  * Merge pull request #218 <ros2/rmw_fastrtps#218> from ros2/pr203
  * Revert "fix template closing indentation (#214 <ros2/rmw_fastrtps#214>)"
  * fix template closing indentation (#214 <ros2/rmw_fastrtps#214>)
  * Contributors: Chris Lalancette, Dirk Thomas, Karsten Knese, Michael Carroll, Miguel Company, Mikael Arguedas
.
ros-rolling-rmw-fastrtps-cpp (0.5.1-1jammy) jammy; urgency=high
.
  * update maintainer
  * Contributors: Dirk Thomas
.
ros-rolling-rmw-fastrtps-cpp (0.5.0-1jammy) jammy; urgency=high
.
  * Avoid allocations (#211 <ros2/rmw_fastrtps#211>)
  * Temporary buffer remove (#207 <ros2/rmw_fastrtps#207>)
  * Validate the buffer_ of CustomServiceRequest object before using it to (#210 <ros2/rmw_fastrtps#210>)
  * update usage of rcutils_join_path() (#208 <ros2/rmw_fastrtps#208>)
  * Expose raw CDR stream for publish and subscribe (#186 <ros2/rmw_fastrtps#186>)
  * Remove topic partitions (#192 <ros2/rmw_fastrtps#192>)
  * Fix leak if client reponse is never taken (#201 <ros2/rmw_fastrtps#201>)
  * Revert "Export rmw_fastrtps_cpp target" (#200 <ros2/rmw_fastrtps#200>)
  * Support access control  (#197 <ros2/rmw_fastrtps#197>)
  * Export rmw_fastrtps_cpp target (#198 <ros2/rmw_fastrtps#198>)
  * Fix deserialization segfault in bionic. (#199 <ros2/rmw_fastrtps#199>)
  * Fix namespaces (#196 <ros2/rmw_fastrtps#196>)
  * Merge pull request #182 <ros2/rmw_fastrtps#182> from ros2/node_name_in_user_data
  * add participant listener
  * add node name to user data
  * change export order for static linking (#190 <ros2/rmw_fastrtps#190>)
  * update style (#189 <ros2/rmw_fastrtps#189>)
  * optimize timeout judgement according to different condition (#187 <ros2/rmw_fastrtps#187>)
  * use existing check_wait_set_for_data to avoid duplicated code (#185 <ros2/rmw_fastrtps#185>)
  * Enable logging level manipulation from rmw_fastrtps (#156 <ros2/rmw_fastrtps#156>)
  * Small performance improvements (#183 <ros2/rmw_fastrtps#183>)
  * Segmentation error to dereference nullptr (#180 <ros2/rmw_fastrtps#180>)
  * Contributors: Dirk Thomas, Ethan Gao, Guillaume Autran, Karsten Knese, Michael Carroll, MiguelCompany, Mikael Arguedas, Minggang Wang, Rohit Salem, Shane Loretz, Sriram Raghunathan, William Woodall, jwang11
.
ros-rolling-rmw-fastrtps-cpp (0.4.0-1jammy) jammy; urgency=high
.
  * Merge pull request #178 <ros2/rmw_fastrtps#178> from ros2/fix_wrong_count
  * Merge pull request #177 <ros2/rmw_fastrtps#177> from ros2/rename_group
  * Wait set two words (#175 <ros2/rmw_fastrtps#175>)
  * not exporting pthread manually (#174 <ros2/rmw_fastrtps#174>)
  * Merge pull request #169 <ros2/rmw_fastrtps#169> from ros2/rep149
  * Merge pull request #171 <ros2/rmw_fastrtps#171> from jwang11/master
  * rcutils_join_path returns a char * now. (#173 <ros2/rmw_fastrtps#173>)
  * memory leak issue (#172 <ros2/rmw_fastrtps#172>)
  * Unify and simplify de/serializeROSmessage processing
  * Avoid duplicated code in calculateMaxSerializedSize for array and normal member (#168 <ros2/rmw_fastrtps#168>)
  * Fix the issues to dereference to nullptr (#165 <ros2/rmw_fastrtps#165>)
  * Fix rmw_fastrtps dead code (#163 <ros2/rmw_fastrtps#163>)
  * Merge pull request #167 <ros2/rmw_fastrtps#167> from deng02/tune-count-pub-sub
  * Remove string allocation in the count of subscribers and publishers
  * use auto deduction and nullptr to keep coding style consistent (#162 <ros2/rmw_fastrtps#162>)
  * Merge pull request #164 <ros2/rmw_fastrtps#164> from dejanpan/master
  * Fix several parameter check issues in rmw_fastrtps_cpp apis
  * Remove unnecessary dependency on rosidl_generator_cpp (#161 <ros2/rmw_fastrtps#161>)
  * Move the hasData checks for non-blocking wait 'timeout' higher (#158 <ros2/rmw_fastrtps#158>)
  * Support loading default XML profile file (#153 <ros2/rmw_fastrtps#153>)
  * Drop duplicated rmw_init.cpp in rmw_fastrtps_cpp/CMakeLists.txt (#155 <ros2/rmw_fastrtps#155>)
  * Merge pull request #154 <ros2/rmw_fastrtps#154> from ros2/uncrustify_master
  * Removing magic numbers: old maximun lengths (#152 <ros2/rmw_fastrtps#152>)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants