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

Publish logs to Rosout #350

Merged
merged 8 commits into from
Jan 14, 2019
Merged

Publish logs to Rosout #350

merged 8 commits into from
Jan 14, 2019

Conversation

nburek
Copy link
Contributor

@nburek nburek commented Dec 5, 2018

This pull request adds the rosout logging feature, which will forward logs from node loggers to the rosout topic on that node. This change is on top of other commits being reviewed in #327. This PR will currently contain the changes from both that review and this review. After that review is merged in this one should just show the last commit adding the rosout feature.

@nburek
Copy link
Contributor Author

nburek commented Jan 2, 2019

Hello OSRF team, what are the next steps for this and the related PR? I would love to try to get these in for the first Crystal patch if possible.

@jacobperron jacobperron self-requested a review January 3, 2019 20:14
@clalancette clalancette requested review from wjwwood and removed request for jacobperron January 3, 2019 20:52
Copy link
Member

@jacobperron jacobperron left a comment

Choose a reason for hiding this comment

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

Some minor comments

rcl/src/rcl/logging_rosout.c Outdated Show resolved Hide resolved
rcl/include/rcl/logging_rosout.h Outdated Show resolved Hide resolved
rcl/include/rcl/logging_rosout.h Show resolved Hide resolved
rcl/include/rcl/logging_rosout.h Outdated Show resolved Hide resolved
rcl/include/rcl/logging_rosout.h Outdated Show resolved Hide resolved
rcl/include/rcl/logging_rosout.h Outdated Show resolved Hide resolved
rcl/src/rcl/logging_rosout.c Outdated Show resolved Hide resolved
rcl/src/rcl/logging_rosout.c Outdated Show resolved Hide resolved
rcl/src/rcl/logging_rosout.c Outdated Show resolved Hide resolved
rcl/src/rcl/logging_rosout.c Outdated Show resolved Hide resolved
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.

A few small comments too.

* \param severity The severity level
* \param name The name of the logger, must be null terminated c string
* \param timestamp The timestamp for when the log message was made
* \param log_str The string to be logged
Copy link
Contributor

Choose a reason for hiding this comment

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

@nburek nit: consider \param -> \param[in] for consistency with documentation above.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

*
* If a publisher already exists for this node then a new publisher will NOT be created.
*
* It is expected that after creating a rosout publisher with this function that
Copy link
Contributor

Choose a reason for hiding this comment

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

@nburek nit: extra that at the end of the line?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed extra that

rcl_ret_t
rcl_logging_rosout_fini();

/// Creates a rosout publisher for a node and registers to be used by the logging system
Copy link
Contributor

Choose a reason for hiding this comment

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

@nburek consider [...]registers 'it' to be used [...].

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added 'it'

if (g_rcl_logging_rosout_enabled) {
status = rcl_logging_rosout_fini();
}
if (RCL_RET_OK == status && g_rcl_logging_ext_lib_enabled) {
Copy link
Contributor

Choose a reason for hiding this comment

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

@nburek just curious, why not calling rcl_logging_external_shutdown() if rcl_logging_rosout_fini() failed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To prevent ambiguity in the case when both fail. My preference in this situation is to stop after the first failure as to not potentially mask it with another failure that might be related/caused by the first one.

@nburek
Copy link
Contributor Author

nburek commented Jan 5, 2019

Thanks for all the feedback. I've finished making updates based on your comments. There was only one that I pushed back on, so let me know what you think after you read my reasoning above.

@hidmic
Copy link
Contributor

hidmic commented Jan 8, 2019

Running CI, including this PR and ros2/rcutils#131:

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

@nuclearsandwich
Copy link
Member

@nburek following up on @chapulina's comment ros2/rcutils#131 (comment) output from the Linux CI machines includes:

double free or corruption (fasttop)

with this test being one example of the above.

I'm less savvy with how Mac and Windows but I believe the test failures there stem from the same problem with differing system-specific output.

@nburek
Copy link
Contributor Author

nburek commented Jan 10, 2019

I'm digging into this now. It looks like something is not getting torn down correctly, which may be a result of the refactor to rcl that occurred while I was developing this that converted some portions of the rcl from being a single instance to being a context that gets initialized and torn down separate. While adjusting to the new lifecycle I probably missed a case in how something could be torn down. That's just my initial assumption at this point though, it still needs more investigation into what's going on.

@nburek
Copy link
Contributor Author

nburek commented Jan 11, 2019

This issue should now be fixed. A bug in the last commit I made introduced the bug that caused it to try to cleanup the rosout topic multiple times. This should now be fixed and all the tests from "test_rclcpp" were passing locally.

@nuclearsandwich
Copy link
Member

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

@nburek
Copy link
Contributor Author

nburek commented Jan 11, 2019

It looks like the Mac and Windows builds here failed because of a Jenkins issue:

07:05:00 FATAL: command execution failed
07:05:00 java.nio.channels.ClosedChannelException
07:05:00 	at org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.onReadClosed(ChannelApplicationLayer.java:209)
07:05:00 	at org.jenkinsci.remoting.protocol.ApplicationLayer.onRecvClosed(ApplicationLayer.java:222)
07:05:00 	at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.onRecvClosed(ProtocolStack.java:816)

From the CI build that was run on the rcutils PR that includes this PR, the only issue is with a couple of Warnings on Windows. I'll work on getting those warnings fixed.
ros2/rcutils#131 (comment)

@jacobperron jacobperron removed the in review Waiting for review (Kanban column) label Jan 14, 2019
@nburek
Copy link
Contributor Author

nburek commented Jan 16, 2019

Can we try to get this PR merged into the next Crystal patch release?
ros2/ros2#647

@nuclearsandwich
Copy link
Member

This is queued for patch release 2.

@chapulina
Copy link

It looks like this pull request broke backwards compatibility by throwing an error if there are multiple nodes with the same name. This is affecting downstream packages like navigation and rosbag (see issues referenced above) and has the potential to break many more packages.

@nburek, just a heads up that we're revisiting whether this will in fact go into patch 2, or if it should be retargeted for Dashing given all the downstream consequences. If your team can think of a more gentle transition, like printing a warning on Crystal and throwing the error on Dashing, that would make it easier to release this into Crystal.

@nburek
Copy link
Contributor Author

nburek commented Feb 6, 2019

The code could be modified to just print a warning, but it could explicitly break functionality because it would essentially cause two different node instances to share the same publisher attached to just one of the nodes. Destroying the one with the publisher would cause the other to break without additional complexity for maintaining both publishers and uniquely identifying which node they belong to so that they're torn down with the right node.

I'm curious what the long term stance is going to be on having multiple nodes with the same name. My understanding was that ROS1 explicitly disallows this and while ROS2 didn't explicitly disallow it until now that the recommendation was not to rely on it. If it's going to be allowed then this needs to be fixed regardless and if it's not going to be allowed then it feels like we're just adding an exception for a use case that we say shouldn't be supported but unofficially is. My worry in this case is that it won't be a temporary patch and I'd almost prefer to miss patch 2 and break the interface with Dashing.

@chapulina
Copy link

I'm curious what the long term stance is going to be on having multiple nodes with the same name.

I believe the long term plan is to explicitly disallow duplicate names.

the recommendation was not to rely on it

Correct, and the fact that it hasn't been enforced so far was just an oversight. However, there's a big difference between recommending against it and enforcing it.

we're just adding an exception for a use case that we say shouldn't be supported but unofficially is

There's nothing preventing downstream users from creating multiple nodes with the same name right now, and it looks like it's been working for them. So even though it is not recommended, we shouldn't break those users' code without a strong reason, like a security risk or a critical bug. A new feature is not a reason to break existing code in a patch release.

The code could be modified to just print a warning, but it could explicitly break functionality

It would just break the new functionality being added by this PR, right? Which is something that the preexisting packages and users wouldn't be counting on anyway. A warning would raise awareness without breaking existing code. It would be up to downstream developers whether they want to address the warnings on a future Crystal patch (as I believe navigation and rosbag are planning to do) or they could wait until Dashing to adapt to the new strict requirements.

I'd almost prefer to miss patch 2 and break the interface with Dashing

I've talked to the team and we agree that we shouldn't break existing functionality. So I'll leave it up to you if you want to follow the warning route, or just keep the functionality on master so it goes into Dashing.

@dirk-thomas
Copy link
Member

I believe the long term plan is to explicitly disallow duplicate names.

That has not been decided yet.

@nburek
Copy link
Contributor Author

nburek commented Feb 6, 2019

A new feature is not a reason to break existing code in a patch release.

I totally agree. I don't think it can go into the patch as is since it breaks the interface by adding the explicit exclusion.

I believe the long term plan is to explicitly disallow duplicate names.

That has not been decided yet.

I was hoping that this decision had already been made. While just making this exception a warning right now would mean that logging has weird behavior in the case where you violate the policy it's at least telling people that they shouldn't be doing that. It would be something in ROS2 core that is explicitly telling people not to use the same name inside the same process, even if it's not enforced yet. If it's not going to be the policy that unique names are enforced within a process then making it a warning becomes a bit of a contradiction in my opinion between what a feature in ROS core is telling people and what the design says is allowed. In that case I'd rather fix the rosout feature to work with non-unique names in a way that makes sense, though that is probably more work and means it may slip past patch 2.

@chapulina
Copy link

That has not been decided yet.

I wasn't aware of that. @nburek is right that in that case, a warning may be misleading.

@dirk-thomas
Copy link
Member

I'd rather fix the rosout feature to work with non-unique names in a way that makes sense

That sounds like the best alternative at the moment 👍

@nburek
Copy link
Contributor Author

nburek commented Feb 6, 2019

@dirk-thomas Do we have any line of site on when/if a decision is going to be made on unique naming within a process? Is there any previous conversation around it I could read up on?

@dirk-thomas
Copy link
Member

Do we have any line of site on when/if a decision is going to be made on unique naming within a process?

It is currently not planned to work on that conceptional question within this release cycle.

Is there any previous conversation around it I could read up on?

I am not aware of a specific thread about the topic but it appear in multiple discussions where identifying nodes is a topic: e.g. http://design.ros2.org/articles/static_remapping.html

@wjwwood
Copy link
Member

wjwwood commented Feb 6, 2019

I believe the long term plan is to explicitly disallow duplicate names.

That has not been decided yet.

But we have many places where that's the assumption. My understanding is that unique names is the preferred route, but we're just missing the enforcement. If we were to go the other way and allow duplicate node names we'd have lots of refactoring to do.

I'd rather fix the rosout feature to work with non-unique names in a way that makes sense

That sounds like the best alternative at the moment 👍

Again, I disagree. I think the simplest and safest approach is to assume node names need to be unique, but add a check if duplicates are detected and warn against them.

Is there any previous conversation around it I could read up on?

I am not aware of a specific thread about the topic but it appear in multiple discussions where identifying nodes is a topic: e.g. http://design.ros2.org/articles/static_remapping.html

ros2/design#187

@dirk-thomas
Copy link
Member

Since the description in that design ticket says explicitly:

We need a design document that states node names need to be unique (or not) with rationale why and if unique then how to enforce it and if not unique how to deal with existing features that assume and rely on unique node names.

I would highly recommend to not go further down a path which we have not settled on. We might lean towards requiring unique node names but if we decide not to for whatever reason this would add one more thing which needs to be revisited.

As long as there is no technical reason why this specific issue can't be resolved without relying on unique node names I think implementing it in a way that it does support non-unique names is the more flexible way to go.

@wjwwood
Copy link
Member

wjwwood commented Feb 6, 2019

As long as there is no technical reason why this specific issue can't be resolved without relying on unique node names I think implementing it in a way that it does support non-unique names is the more flexible way to go.

If it is easy to make it work without assuming node names are unique then that's fine, but we shouldn't go out of our way to make this feature work with non-unique node names. Because in my experience it is often harder to assume they are not unique, e.g. setting parameter values with services which are namespaced by node name.

I'm not up to speed on this issue enough to say which is the case this time, but if it is at all difficult to implement with non-unique node names, then I stand by my assertion that detecting and warning is a better route for now, because I would wager we end up going with enforced unique node names eventually, mostly because there are cases were we need the names to be unique and I don't see a reasonable way to implement those cases without unique names.

@nuclearsandwich
Copy link
Member

@nburek from the discussion above it seems that our immediate path forward will be informed by your estimate of the work involved to allow logging to function without node-name uniqueness. If you have any initial estimates on what's involved that would help us come to a decision for how to handle the upcoming Crystal patch release.

@nburek
Copy link
Contributor Author

nburek commented Feb 6, 2019

To just switch this over to a warning I would estimate it would take someone on my team 4-6 hours to make the change, thoroughly test it, and send a PR for it.

To add some support for non-unique node names the simplest solution I can think of for now would be to change the map to allow for a list of publishers for a node name instead of just a single one. It would have to rely on the node->impl pointer value for uniqueness as I don't know of any other unique identifiers for a node. This would at least allow the rosout code to properly track and deconstruct publishers as nodes are created/destroyed. This would not solve the issue of actually sending the logs for different nodes with the same name over their distinct publishers. It would just have to pick one and all logs generated by node loggers with that name would go out over the first publisher in the list. That may be slightly odd behavior if you're looking at composition use case, because the code for one node could impact another based on the amount of logging it is doing. For a random developer from my team to pick this up I would estimate roughly 5 days to implement, test, and post the PR.

Any solution to actually keep track of which node loggers should use which node publishers when there is no unique naming would require changes to the interfaces for logging and how rclcpp/rclpy loggers track information. That would almost require another design review for the changes.

I think it would be really valuable to get the rosout feature into the crystal patch because it'll allow people to start using it and we'll actually get some good feedback on how it's working before Dashing. However, I think the only way our team would be able to get it ready in time for the second patch is to accept either a warning or a silent assumption with undefined behavior like many other parts of the code. Then we could have a discussion around what the right solution is and get it implemented for Dashing.

@adam-dunc
Copy link

adam-dunc commented Feb 6, 2019

The way I see it we have 3 options forward, please correct me:

  1. Hold this feature until Dashing, after we have a decision on node uniqueness
  2. Modify the node to throw a warning and include it in this patch
  3. Modify this to work with non-unique nodes and push in a future patch

My recommendation would be # 2 at this stage. We discussed Crystal not being LTS so we could get feedback on all the new features from users. I'm glad we are dealing with this discussion now and not right in front of the Dashing release or we may have ended up without rosout logging in Dashing at all. If we hold this off until the full decision is made we'll realistically get no functional feedback from users on it until Dashing which defeats some of the purpose that we discussed with Crystal not being LTS. By logging warning it would work in most cases and can be modified once a decision is made on node uniqueness.

I'm happy to have Amazon help facilitate the long term approach discussions if it offloads some of the program management, design and decision matrix burden. If an owner isn't needed, we'd also be happy to participate.

-Adam

@nuclearsandwich
Copy link
Member

nuclearsandwich commented Feb 6, 2019

@wjwwood, @dirk-thomas, @chapulina and I just had an offline discussion. We also agree that a issuing a warning is the preferred path forward. And we're going to determine at our ROS 2 meeting next Tuesday which future release we want to have settled the node name uniqueness constraints (ros2/design#187) for.

Two technical notes that came up for the immediate PR:

  1. Please target master with the pull request as we'd like Crystal and master to behave consistently until we have an explicit design goal stating otherwise. Once it has been reviewed and merged we'll backport it to crystal.
  2. When submitting the PR please describe the side effects of non-unique node names and summarize the description in the printed warning so that those who receive the warning know what to expect.

@nburek thanks very much for the estimates they were a big help in informing our decision making. Thanks also to @Karsten1987 and @chapulina for finding and reporting this issue before it got into a release and to everyone for their input. 💛

@nburek
Copy link
Contributor Author

nburek commented Feb 7, 2019

Followup PR for changing this to a warning: #384

nuclearsandwich added a commit to ros/rosdistro that referenced this pull request Apr 15, 2019
Increasing version of package(s) in repository `rcl` to `0.7.0-3`:

- upstream repository: https://github.com/ros2/rcl.git
- release repository: https://github.com/ros2-gbp/rcl-release.git
-   file: `dashing/distribution.yaml`
- bloom version: `0.8.0`
- previous version for package: `0.7.0-2`

## rcl

```
* Added more test cases for graph API + fix bug. (#404 <ros2/rcl#404>)
* Fixed missing include. (#413 <ros2/rcl#413>)
* Updated to use pedantic. (#412 <ros2/rcl#412>)
* Added function to get publisher actual qos settings. (#406 <ros2/rcl#406>)
* Refactored graph API docs. (#401 <ros2/rcl#401>)
* Updated to use ament_target_dependencies where possible. (#400 <ros2/rcl#400>)
* Fixed regression around fully qualified node name. (#402 <ros2/rcl#402>)
* Added function rcl_names_and_types_init. (#403 <ros2/rcl#403>)
* Fixed uninitialize sequence number of client. (#395 <ros2/rcl#395>)
* Added launch along with launch_testing as test dependencies. (#393 <ros2/rcl#393>)
* Set symbol visibility to hidden for rcl. (#391 <ros2/rcl#391>)
* Updated to split test_token to avoid compiler note. (#392 <ros2/rcl#392>)
* Dropped legacy launch API usage. (#387 <ros2/rcl#387>)
* Improved security directory lookup. (#332 <ros2/rcl#332>)
* Enforce non-null argv values on rcl_init(). (#388 <ros2/rcl#388>)
* Removed incorrect argument documentation. (#361 <ros2/rcl#361>)
* Changed error to warning for multiple loggers. (#384 <ros2/rcl#384>)
* Added rcl_node_get_fully_qualified_name. (#255 <ros2/rcl#255>)
* Updated rcl_remap_t to use the PIMPL pattern. (#377 <ros2/rcl#377>)
* Fixed documentation typo. (#376 <ros2/rcl#376>)
* Removed test circumvention now that a bug is fixed in rmw_opensplice. (#368 <ros2/rcl#368>)
* Updated to pass context to wait set, and fini rmw context. (#373 <ros2/rcl#373>)
* Updated to publish logs to Rosout. (#350 <ros2/rcl#350>)
* Contributors: AAlon, Dirk Thomas, Jacob Perron, M. M, Michael Carroll, Michel Hidalgo, Mikael Arguedas, Nick Burek, RARvolt, Ross Desmond, Sachin Suresh Bhat, Shane Loretz, William Woodall, ivanpauno
```

## rcl_action

```
* Added Action graph API (#411 <ros2/rcl#411>)
* Updated to use ament_target_dependencies where possible. (#400 <ros2/rcl#400>)
* Fixed typo in Doxyfile. (#398 <ros2/rcl#398>)
* Updated tests to use separated action types. (#340 <ros2/rcl#340>)
* Fixed minor documentation issues. (#397 <ros2/rcl#397>)
* Set symbol visibility to hidden for rcl. (#391 <ros2/rcl#391>)
* Fixed rcl_action documentation. (#380 <ros2/rcl#380>)
* Removed now unused test executable . (#382 <ros2/rcl#382>)
* Removed unused action server option 'clock_type'. (#382 <ros2/rcl#382>)
* Set error message when there is an invalid goal transition. (#382 <ros2/rcl#382>)
* Updated to pass context to wait set, and fini rmw context (#373 <ros2/rcl#373>)
* Contributors: Dirk Thomas, Jacob Perron, Sachin Suresh Bhat, William Woodall, ivanpauno
```

## rcl_lifecycle

```
* Updated to use ament_target_dependencies where possible. (#400 <ros2/rcl#400>)
* Set symbol visibility to hidden for rcl. (#391 <ros2/rcl#391>)
* Contributors: Sachin Suresh Bhat, ivanpauno
```

## rcl_yaml_param_parser

```
* Corrected bool reading from yaml files. (#415 <ros2/rcl#415>)
* Added launch along with launch_testing as test dependencies. (#393 <ros2/rcl#393>)
* Set symbol visibility to hidden for rcl. (#391 <ros2/rcl#391>)
* Contributors: Michel Hidalgo, Sachin Suresh Bhat, ivanpauno
```
andre-rosa pushed a commit to andre-rosa/rosdistro that referenced this pull request May 3, 2019
Increasing version of package(s) in repository `rcl` to `0.7.0-3`:

- upstream repository: https://github.com/ros2/rcl.git
- release repository: https://github.com/ros2-gbp/rcl-release.git
-   file: `dashing/distribution.yaml`
- bloom version: `0.8.0`
- previous version for package: `0.7.0-2`

## rcl

```
* Added more test cases for graph API + fix bug. (ros#404 <ros2/rcl#404>)
* Fixed missing include. (ros#413 <ros2/rcl#413>)
* Updated to use pedantic. (ros#412 <ros2/rcl#412>)
* Added function to get publisher actual qos settings. (ros#406 <ros2/rcl#406>)
* Refactored graph API docs. (ros#401 <ros2/rcl#401>)
* Updated to use ament_target_dependencies where possible. (ros#400 <ros2/rcl#400>)
* Fixed regression around fully qualified node name. (ros#402 <ros2/rcl#402>)
* Added function rcl_names_and_types_init. (ros#403 <ros2/rcl#403>)
* Fixed uninitialize sequence number of client. (ros#395 <ros2/rcl#395>)
* Added launch along with launch_testing as test dependencies. (ros#393 <ros2/rcl#393>)
* Set symbol visibility to hidden for rcl. (ros#391 <ros2/rcl#391>)
* Updated to split test_token to avoid compiler note. (ros#392 <ros2/rcl#392>)
* Dropped legacy launch API usage. (ros#387 <ros2/rcl#387>)
* Improved security directory lookup. (ros#332 <ros2/rcl#332>)
* Enforce non-null argv values on rcl_init(). (ros#388 <ros2/rcl#388>)
* Removed incorrect argument documentation. (ros#361 <ros2/rcl#361>)
* Changed error to warning for multiple loggers. (ros#384 <ros2/rcl#384>)
* Added rcl_node_get_fully_qualified_name. (ros#255 <ros2/rcl#255>)
* Updated rcl_remap_t to use the PIMPL pattern. (ros#377 <ros2/rcl#377>)
* Fixed documentation typo. (ros#376 <ros2/rcl#376>)
* Removed test circumvention now that a bug is fixed in rmw_opensplice. (ros#368 <ros2/rcl#368>)
* Updated to pass context to wait set, and fini rmw context. (ros#373 <ros2/rcl#373>)
* Updated to publish logs to Rosout. (ros#350 <ros2/rcl#350>)
* Contributors: AAlon, Dirk Thomas, Jacob Perron, M. M, Michael Carroll, Michel Hidalgo, Mikael Arguedas, Nick Burek, RARvolt, Ross Desmond, Sachin Suresh Bhat, Shane Loretz, William Woodall, ivanpauno
```

## rcl_action

```
* Added Action graph API (ros#411 <ros2/rcl#411>)
* Updated to use ament_target_dependencies where possible. (ros#400 <ros2/rcl#400>)
* Fixed typo in Doxyfile. (ros#398 <ros2/rcl#398>)
* Updated tests to use separated action types. (ros#340 <ros2/rcl#340>)
* Fixed minor documentation issues. (ros#397 <ros2/rcl#397>)
* Set symbol visibility to hidden for rcl. (ros#391 <ros2/rcl#391>)
* Fixed rcl_action documentation. (ros#380 <ros2/rcl#380>)
* Removed now unused test executable . (ros#382 <ros2/rcl#382>)
* Removed unused action server option 'clock_type'. (ros#382 <ros2/rcl#382>)
* Set error message when there is an invalid goal transition. (ros#382 <ros2/rcl#382>)
* Updated to pass context to wait set, and fini rmw context (ros#373 <ros2/rcl#373>)
* Contributors: Dirk Thomas, Jacob Perron, Sachin Suresh Bhat, William Woodall, ivanpauno
```

## rcl_lifecycle

```
* Updated to use ament_target_dependencies where possible. (ros#400 <ros2/rcl#400>)
* Set symbol visibility to hidden for rcl. (ros#391 <ros2/rcl#391>)
* Contributors: Sachin Suresh Bhat, ivanpauno
```

## rcl_yaml_param_parser

```
* Corrected bool reading from yaml files. (ros#415 <ros2/rcl#415>)
* Added launch along with launch_testing as test dependencies. (ros#393 <ros2/rcl#393>)
* Set symbol visibility to hidden for rcl. (ros#391 <ros2/rcl#391>)
* Contributors: Michel Hidalgo, Sachin Suresh Bhat, ivanpauno
```
timonegk pushed a commit to timonegk/ros-rolling-rcl-release that referenced this pull request May 21, 2022
ros-rolling-rcl (5.3.0-1jammy) jammy; urgency=high
.
  * add content-filtered-topic interfaces (#894 <ros2/rcl#894>)
  * Contributors: Chen Lihui
.
ros-rolling-rcl (5.2.1-1jammy) jammy; urgency=high
.
  * Add additional null check for timer argument (#973 <ros2/rcl#973>)
  * Contributors: NoyZuberi
.
ros-rolling-rcl (5.2.0-1jammy) jammy; urgency=high
.
  * Allow forward slashes within a parameter name rule in argument parsing (#860 <ros2/rcl#860>)
  * Suppress false positive from clang-tidy (#951 <ros2/rcl#951>)
  * Fix missing terminating 0 in rcl_context_impl_t.argv (#969 <ros2/rcl#969>)
  * test_publisher_wait_all_ack depends on rcpputils (#968 <ros2/rcl#968>)
  * Micro-optimizations in rcl (#965 <ros2/rcl#965>)
  * If timer canceled, rcl_timer_get_time_until_next_call returns TIMER_CANCELED (#963 <ros2/rcl#963>)
  * Contributors: Chris Lalancette, Haowei Wen, Ivan Santiago Paunovic, Shane Loretz, William Woodall, mauropasse
.
ros-rolling-rcl (5.1.0-1jammy) jammy; urgency=high
.
  * Add Events Executor (#839 <ros2/rcl#839>)
  * Remove fastrtps customization on test_events (#960 <ros2/rcl#960>)
  * Add client/service QoS getters (#941 <ros2/rcl#941>)
  * introduce ROS_DISABLE_LOAN_MSG to disable can_loan_messages. (#949 <ros2/rcl#949>)
  * Install includes it include/${PROJECT_NAME} (#959 <ros2/rcl#959>)
  * Contributors: Miguel Company, Shane Loretz, Tomoya Fujita, iRobot ROS, mauropasse
.
ros-rolling-rcl (5.0.1-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rcl (5.0.0-1jammy) jammy; urgency=high
.
  * Make rcl_difference_times args const (#955 <ros2/rcl#955>)
  * Update inject_on_return test skipping logic (#953 <ros2/rcl#953>)
  * Fix jump callbacks being called when zero time jump thresholds used (#948 <ros2/rcl#948>)
  * Only change the default logger level if default_logger_level is set (#943 <ros2/rcl#943>)
  * Add Library for wait_for_entity_helpers to deduplicate compilation (#942 <ros2/rcl#942>)
  * Increase Windows timeout 15 -> 25 ms (#940 <ros2/rcl#940>)
  * test should check specified number of entities. (#935 <ros2/rcl#935>)
  * Contributors: Jafar Abdi, Scott K Logan, Shane Loretz, Tomoya Fujita
.
ros-rolling-rcl (4.0.0-1jammy) jammy; urgency=high
.
  * Fix up documentation build for rcl when using rosdoc2 (#932 <ros2/rcl#932>)
  * Include rmw_event_t instead of forward declaring it (#933 <ros2/rcl#933>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rcl (3.2.0-1jammy) jammy; urgency=high
.
  * Add rcl_publisher_wait_for_all_acked support. (#913 <ros2/rcl#913>)
  * Add tracing instrumentation for rcl_take. (#930 <ros2/rcl#930>)
  * Fix #include in C++ typesupport example in rcl_subscription_init docblock. (#927 <ros2/rcl#927>)
  * Update includes after rcutils/get_env.h deprecation. (#917 <ros2/rcl#917>)
  * Use proper rcl_logging return value type and compare to constant. (#916 <ros2/rcl#916>)
  * Contributors: Barry Xu, Christophe Bedard
.
ros-rolling-rcl (3.1.2-1jammy) jammy; urgency=high
.
  * Fix up test_network_flow_endpoints. (#912 <ros2/rcl#912>)
  * Contributors: Chris Lalancette
.
ros-rolling-rcl (3.1.1-1jammy) jammy; urgency=high
.
  * Make test_two_timers_ready_before_timeout less flaky (#911 <ros2/rcl#911>)
  * Add publishing instrumentation (#905 <ros2/rcl#905>)
  * Contributors: Christophe Bedard, Ivan Santiago Paunovic
.
ros-rolling-rcl (3.1.0-1jammy) jammy; urgency=high
.
  * Unique network flows (#880 <ros2/rcl#880>)
  * updating quality declaration links (re: ros2/docs.ros2.org#52 <ros2/docs.ros2.org#52>) (#909 <ros2/rcl#909>)
  * Add functions for waiting for publishers and subscribers (#907 <ros2/rcl#907>)
  * Revert "Mark cyclonedds test_service test as flakey (#648 <ros2/rcl#648>)" (#904 <ros2/rcl#904>)
  * Guard against returning NULL or empty node names (#570 <ros2/rcl#570>)
  * Contributors: Ananya Muddukrishna, Jacob Perron, Michel Hidalgo, shonigmann
.
ros-rolling-rcl (3.0.1-1jammy) jammy; urgency=high
.
  * Remove exceptions for rmw_connext_cpp tests. (#903 <ros2/rcl#903>)
  * Contributors: Chris Lalancette
.
ros-rolling-rcl (3.0.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rcl (2.6.0-1jammy) jammy; urgency=high
.
  * Add support for rmw_connextdds (#895 <ros2/rcl#895>)
  * Put an argument list of 'void' where no arguments are expected. (#899 <ros2/rcl#899>)
  * Cleanup documentation for doxygen. (#896 <ros2/rcl#896>)
  * Contributors: Andrea Sorbini, Chris Lalancette
.
ros-rolling-rcl (2.5.2-1jammy) jammy; urgency=high
.
  * Reference test resources directly from source tree (#554 <ros2/rcl#554>)
  * Contributors: Scott K Logan
.
ros-rolling-rcl (2.5.1-1jammy) jammy; urgency=high
.
  * Re-add "Improve trigger test for graph guard condition (#811 <ros2/rcl#811>)" (#884 <ros2/rcl#884>)
  * Revert "Improve trigger test for graph guard condition (#811 <ros2/rcl#811>)" (#883 <ros2/rcl#883>)
  * Move the guard condition cleanup after removing callback. (#877 <ros2/rcl#877>)
  * Make test_subscription_nominal_string_sequence more reliable (#881 <ros2/rcl#881>)
  * Improve trigger test for graph guard condition (#811 <ros2/rcl#811>)
  * Add NULL check in remap.c (#879 <ros2/rcl#879>)
  * Contributors: Barry Xu, Chris Lalancette, Ivan Santiago Paunovic, Nikolai Morin
.
ros-rolling-rcl (2.5.0-1jammy) jammy; urgency=high
.
  * Add const to constant rcl_context functions (#872 <ros2/rcl#872>)
  * Fix another failing test on CentOS 7 (#863 <ros2/rcl#863>)
  * Update QDs to QL 1 (#866 <ros2/rcl#866>)
  * Address clang static analysis issues (#865 <ros2/rcl#865>)
  * Fix flaky test_info_by_topic (#859 <ros2/rcl#859>)
  * Update QL (#858 <ros2/rcl#858>)
  * Refactor for removing unnecessary source code (#857 <ros2/rcl#857>)
  * Clarify storing of current_time (#850 <ros2/rcl#850>)
  * Make tests in test_graph.cpp more reliable (#854 <ros2/rcl#854>)
  * Fix for external log segfault after SIGINT (#844 <ros2/rcl#844>)
  * Update tracetools QL and add to rcl_lifecycle's QD (#845 <ros2/rcl#845>)
  * Make test logging rosout more reliable (#846 <ros2/rcl#846>)
  * Return OK when finalizing zero-initialized contexts (#842 <ros2/rcl#842>)
  * Zero initialize events an size_of_events members of rcl_wait_set_t (#841 <ros2/rcl#841>)
  * Update deprecated gtest macros (#818 <ros2/rcl#818>)
  * Contributors: Alejandro Hernández Cordero, Audrow Nash, Chen Lihui, Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, Jacob Perron, Stephen Brawner, Thijs Raymakers, tomoya
.
ros-rolling-rcl (2.4.0-1jammy) jammy; urgency=high
.
  * Make sure to check the return value of rcl APIs. (#838 <ros2/rcl#838>)
  * Add convenient node method to get a final topic/service name (#835 <ros2/rcl#835>)
  * Contributors: Chris Lalancette, Ivan Santiago Paunovic
.
ros-rolling-rcl (2.3.0-1jammy) jammy; urgency=high
.
  * Remove redundant error formatting (#834 <ros2/rcl#834>)
  * Fix memory leak in rcl_subscription_init()/rcl_publisher_init() (#794 <ros2/rcl#794>)
  * Update maintainers (#825 <ros2/rcl#825>)
  * Add a semicolon to RCUTILS_LOGGING_AUTOINIT. (#816 <ros2/rcl#816>)
  * Improve error messages in rcl_lifecycle (#742 <ros2/rcl#742>)
  * Fix memory leak on serialized message in test_publisher/subscription.cpp (#801 <ros2/rcl#801>)
  * Fix memory leak because of mock test (#800 <ros2/rcl#800>)
  * Spelling correction (#798 <ros2/rcl#798>)
  * Fix that not to deallocate event impl in some failure case (#790 <ros2/rcl#790>)
  * calling fini functions to avoid memory leak (#791 <ros2/rcl#791>)
  * Contributors: Barry Xu, Chen Lihui, Chris Lalancette, Geoffrey Biggs, Ivan Santiago Paunovic, Jacob Perron, Lei Liu
.
ros-rolling-rcl (2.2.0-1jammy) jammy; urgency=high
.
  * Bump rcl arguments' API test coverage (#777 <ros2/rcl#777>)
  * Fix rcl arguments' API memory leaks and bugs (#778 <ros2/rcl#778>)
  * Add coverage tests wait module (#769 <ros2/rcl#769>)
  * Fix wait set allocation cleanup (#770 <ros2/rcl#770>)
  * Improve test coverage in rcl (#764 <ros2/rcl#764>)
  * Check if rcutils_strdup() outcome immediately (#768 <ros2/rcl#768>)
  * Cleanup rcl_get_secure_root() implementation (#762 <ros2/rcl#762>)
  * Add fault injection macros to rcl functions (#727 <ros2/rcl#727>)
  * Yield rcl_context_fini() error codes (#763 <ros2/rcl#763>)
  * Do not invalidate context before successful shutdown (#761 <ros2/rcl#761>)
  * Zero initialize guard condition on failed init (#760 <ros2/rcl#760>)
  * Adding tests to arguments API (#752 <ros2/rcl#752>)
  * Extend rcl_expand_topic_name() API test coverage (#758 <ros2/rcl#758>)
  * Add coverage tests 94% to service API (#756 <ros2/rcl#756>)
  * Clean up rcl_expand_topic_name() implementation (#757 <ros2/rcl#757>)
  * Complete rcl enclave validation API coverage (#751 <ros2/rcl#751>)
  * Cope with base function restrictions in mocks (#753 <ros2/rcl#753>)
  * Fix allocation when copying arguments (#748 <ros2/rcl#748>)
  * Complete rcl package's logging API test coverage (#747 <ros2/rcl#747>)
  * Improve coverage to 95% in domain id, init option, rmw implementation id and log level modules (#744 <ros2/rcl#744>)
  * Fix rcl package's logging API error code documentation and handling (#746 <ros2/rcl#746>)
  * Fix bug error handling in get_param_files (#743 <ros2/rcl#743>)
  * Complete subscription API test coverage (#734 <ros2/rcl#734>)
  * increase timeouts in test_services fixtures for Connext (#745 <ros2/rcl#745>)
  * Tweaks to client.c and subscription.c for cleaner init/fini (#728 <ros2/rcl#728>)
  * Improve error checking and handling in subscription APIs (#739 <ros2/rcl#739>)
  * Add deallocate calls to free strdup allocated memory (#737 <ros2/rcl#737>)
  * Add missing calls to rcl_convert_rmw_ret_to_rcl_ret (#738 <ros2/rcl#738>)
  * Add mock tests, publisher 95% coverage (#732 <ros2/rcl#732>)
  * Restore env variables set in the test_failing_configuration. (#733 <ros2/rcl#733>)
  * Expose qos setting for /rosout (#722 <ros2/rcl#722>)
  * Reformat rmw_impl_id_check to call a testable function (#725 <ros2/rcl#725>)
  * Add extra check for invalid event implementation (#726 <ros2/rcl#726>)
  * Consolidate macro duplication (#653 <ros2/rcl#653>)
  * Contributors: Ada-King, Dan Rose, Dirk Thomas, Jorge Perez, Michel Hidalgo, brawner, tomoya
.
ros-rolling-rcl (2.1.0-1jammy) jammy; urgency=high
.
  * Add test for subscription message lost event (#705 <ros2/rcl#705>)
  * Add function rcl_event_is_valid (#720 <ros2/rcl#720>)
  * Move actual domain id from node to context (#718 <ros2/rcl#718>)
  * Removed doxygen warnings (#712 <ros2/rcl#712>)
  * Remove some dead code.
  * Make sure to call rcl_arguments_fini at the end of the test.
  * Add remap needed null check (#711 <ros2/rcl#711>)
  * Make public init/fini rosout publisher (#704 <ros2/rcl#704>)
  * Move rcl_remap_copy to public header (#709 <ros2/rcl#709>)
  * Contributors: Alejandro Hernández Cordero, Chris Lalancette, Ivan Santiago Paunovic, Jorge Perez
.
ros-rolling-rcl (2.0.0-1jammy) jammy; urgency=high
.
  * Implement a generic way to change logging levels (#664 <ros2/rcl#664>)
  * Remove domain_id and localhost_only from node_options (#708 <ros2/rcl#708>)
  * Add coverage tests (#703 <ros2/rcl#703>)
  * Add bad arguments tests for coverage (#698 <ros2/rcl#698>)
  * Remove unused internal prototypes (#699 <ros2/rcl#699>)
  * Update quality declaration and coverage (#674 <ros2/rcl#674>)
  * Add setter and getter for domain_id in rcl_init_options_t (#678 <ros2/rcl#678>)
  * Remove unused pytest dependency from rcl. (#695 <ros2/rcl#695>)
  * Fix link to latest API docs (#692 <ros2/rcl#692>)
  * Keep domain id if ROS_DOMAIN_ID is invalid. (#689 <ros2/rcl#689>)
  * Remove unused check context.c (#691 <ros2/rcl#691>)
  * Add check rcl_node_options_copy invalid out (#671 <ros2/rcl#671>)
  * Update tracetools' QL to 2 in rcl's QD (#690 <ros2/rcl#690>)
  * Improve subscription coverage (#681 <ros2/rcl#681>)
  * Improve rcl timer test coverage (#680 <ros2/rcl#680>)
  * Improve wait sets test coverage (#683 <ros2/rcl#683>)
  * Contributors: Alejandro Hernández Cordero, Chen Lihui, Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, Jorge Perez, Michel Hidalgo, tomoya
.
ros-rolling-rcl (1.2.0-1jammy) jammy; urgency=high
.
  * Improve rcl init test coverage. (#684 <ros2/rcl#684>)
  * Improve clock test coverage. (#685 <ros2/rcl#685>)
  * Add message lost event (#673 <ros2/rcl#673>)
  * Minor fixes to rcl clock implementation. (#688 <ros2/rcl#688>)
  * Improve enclave validation test coverage. (#682 <ros2/rcl#682>)
  * Use RCL_RET_* codes only. (#686 <ros2/rcl#686>)
  * Fixed doxygen warnings (#677 <ros2/rcl#677>)
  * Add tests for rcl package (#668 <ros2/rcl#668>)
  * Remove logging_external_interface.h, provided by rcl_logging_interface package now (#676 <ros2/rcl#676>)
  * Print RCL_LOCALHOST_ENV_VAR if error happens via rcutils_get_env. (#672 <ros2/rcl#672>)
  * Contributors: Alejandro Hernández Cordero, Chris Lalancette, Ivan Santiago Paunovic, Jorge Perez, Michel Hidalgo, tomoya
.
ros-rolling-rcl (1.1.5-1jammy) jammy; urgency=high
.
  * Fix conversions between rmw_localhost_only_t and bool (#670 <ros2/rcl#670>)
  * Contributors: Jorge Perez
.
ros-rolling-rcl (1.1.4-1jammy) jammy; urgency=high
.
  * Ensure rcl_publisher_init() fails safely (#667 <ros2/rcl#667>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rcl (1.1.3-1jammy) jammy; urgency=high
.
  * Add Security Vulnerability Policy pointing to REP-2006 (#661 <ros2/rcl#661>)
  * Add tests to publisher and init modules of rcl (#657 <ros2/rcl#657>)
  * Contributors: Chris Lalancette, Jorge Perez
.
ros-rolling-rcl (1.1.2-1jammy) jammy; urgency=high
.
  * Improve docblocks (#659 <ros2/rcl#659>)
  * Contributors: Alejandro Hernández Cordero
.
ros-rolling-rcl (1.1.1-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rcl (1.1.0-1jammy) jammy; urgency=high
.
  * Expose rcl default logging output handler (#660 <ros2/rcl#660>)
  * Remove deprecated functions (#658 <ros2/rcl#658>)
  * Warn about unused return value for set_logger_level (#652 <ros2/rcl#652>)
  * Mark cyclonedds test_service test as flakey (#648 <ros2/rcl#648>)
  * Convert sleep_for into appropriate logic in tests(#631 <ros2/rcl#631>)
  * Reduce timeouts in tests(#613 <ros2/rcl#613>)
  * Add tests for time.c and timer.c (#599 <ros2/rcl#599>)
  * Update Quality Declaration for 1.0 (#647 <ros2/rcl#647>)
  * Contributors: Barry Xu, Dirk Thomas, Ivan Santiago Paunovic, Jorge Perez, Tully Foote, brawner
.
ros-rolling-rcl (1.0.0-1jammy) jammy; urgency=high
.
  * Remove MANUAL_BY_NODE liveliness API (#645 <ros2/rcl#645>)
  * Make test_two_timers* more reliable (#640 <ros2/rcl#640>)
  * Contributors: Ivan Santiago Paunovic
.
ros-rolling-rcl (0.9.1-1jammy) jammy; urgency=high
.
  * Included features (#644 <ros2/rcl#644>)
  * Current state Quality Declaration (#639 <ros2/rcl#639>)
  * Initialize service timestamps to 0 and test. (#642 <ros2/rcl#642>)
  * Contributors: Alejandro Hernández Cordero, Ingo Lütkebohle, Jorge Perez
.
ros-rolling-rcl (0.9.0-1jammy) jammy; urgency=high
.
  * Fix std::string construction in test (#636 <ros2/rcl#636>)
  * Add basic functionality tests for validate_enclave_name and subscription (#624 <ros2/rcl#624>)
  * Save allocator for RCL_CLOCK_UNINITIALIZED clock (#623 <ros2/rcl#623>)
  * Implement service info structure with timestamps (#627 <ros2/rcl#627>)
  * Add support for taking a sequence of messages (#614 <ros2/rcl#614>)
  * Message info with timestamps support in rcl (#619 <ros2/rcl#619>)
  * Don't call ``rcl_logging_configure/rcl_logging_fini`` in ``rcl_init/rcl_shutdown`` (#579 <ros2/rcl#579>)
  * Export targets in a addition to include directories / libraries (#629 <ros2/rcl#629>)
  * Document rcl_pub/etc_fini() must come before rcl_node_fini() (#625 <ros2/rcl#625>)
  * Update security environment variables (#617 <ros2/rcl#617>)
  * Add visibility to rcl_timer_get_allocator (#610 <ros2/rcl#610>)
  * Fix test_publisher memory leaks reported by asan (#567 <ros2/rcl#567>)
  * security-context -> enclave (#612 <ros2/rcl#612>)
  * Rename rosidl_generator_c namespace to rosidl_runtime_c (#616 <ros2/rcl#616>)
  * Rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#615 <ros2/rcl#615>)
  * Fix security directory lookup for '/' security contexts (#609 <ros2/rcl#609>)
  * Changed rosidl_generator_c/cpp to rosidl_runtime_c/cpp (#588 <ros2/rcl#588>)
  * Remove deprecated CLI rules (#603 <ros2/rcl#603>)
  * Use keystore root as security root directory, and not contexts folder (#607 <ros2/rcl#607>)
  * Remove tinydir_vendor dependency (#608 <ros2/rcl#608>)
  * Add missing allocator check for NULL (#606 <ros2/rcl#606>)
  * Change naming style for private functions (#597 <ros2/rcl#597>)
  * Switch to one Participant per Context (#515 <ros2/rcl#515>)
  * Support for ON_REQUESTED_INCOMPATIBLE_QOS and ON_OFFERED_INCOMPATIBLE_QOS events (#535 <ros2/rcl#535>)
  * Small typo fix (#604 <ros2/rcl#604>)
  * Update docstring with new possible return code (#600 <ros2/rcl#600>)
  * Add missing node destruction (#601 <ros2/rcl#601>)
  * Test that nodes are returned with correct multiplicity (#598 <ros2/rcl#598>)
  * Trigger guard condition when timer is reset (#589 <ros2/rcl#589>)
  * Clock API improvements (#580 <ros2/rcl#580>)
  * Fix memory leak in rcl_arguments (#564 <ros2/rcl#564>)
  * Don't check history depth if RMW_QOS_POLICY_HISTORY_KEEP_ALL (#593 <ros2/rcl#593>)
  * Fix alloc-dealloc-mismatch(new->free) in test_info_by_topic (#469 <ros2/rcl#469>) (#569 <ros2/rcl#569>)
  * Use 10sec lifespan in rosout publisher qos (#587 <ros2/rcl#587>)
  * Document clock types (#578 <ros2/rcl#578>)
  * Make rosout publisher transient local with a depth of 1000 (#582 <ros2/rcl#582>)
  * Enable TestInfoByTopicFixture unit tests for other rmw_implementations (#583 <ros2/rcl#583>)
  * Fix memory leak in test_subscription_nominal (#469 <ros2/rcl#469>) (#562 <ros2/rcl#562>)
  * Update rmw_topic_endpoint_info_array usage (#576 <ros2/rcl#576>)
  * Add rcl versions of rmw_topic_endpoint_info* types (#558 <ros2/rcl#558>)
  * Enable test for rcl_get_subscriptions_info_by_topic / rcl_get_publishers_info_by_topic for Cyclone (#572 <ros2/rcl#572>)
  * Fixed missing initialization and fixed qos checking in test (#571 <ros2/rcl#571>)
  * Fix test_count_matched memory leaks reported by asan #567 <ros2/rcl#567> (#568 <ros2/rcl#568>)
  * Code style only: wrap after open parenthesis if not in one line (#565 <ros2/rcl#565>)
  * Fix return type of rcl_publisher_get_subscription_count() (#559 <ros2/rcl#559>)
  * Fix doc strings (#557 <ros2/rcl#557>)
  * Implement functions to get publisher and subcription informations like QoS policies from topic name (#511 <ros2/rcl#511>)
  * Use absolute topic name for ``rosout`` (#549 <ros2/rcl#549>)
  * Set allocator before goto fail (#546 <ros2/rcl#546>)
  * Add public facing API for validating rcl_wait_set_t (#538 <ros2/rcl#538>)
  * Add flag to enable/disable rosout logging in each node individually. (#532 <ros2/rcl#532>)
  * Treat __name the same as __node (#494 <ros2/rcl#494>)
  * Contributors: Alejandro Hernández Cordero, Barry Xu, Chris Lalancette, Dan Rose, Dennis Potman, Dirk Thomas, DongheeYe, Ingo Lütkebohle, Ivan Santiago Paunovic, Jacob Perron, Jaison Titus, Jorge Perez, Miaofei Mei, Michael Carroll, Michel Hidalgo, Mikael Arguedas, P. J. Reed, Ruffin, Shane Loretz, William Woodall, y-okumura-isp
.
ros-rolling-rcl (0.8.3-1jammy) jammy; urgency=high
.
  * Support CLI parameter overrides using dots instead of slashes. (#530 <ros2/rcl#530>)
    Signed-off-by: Michel Hidalgo <mailto:michel@ekumenlabs.com>
  * Contributors: Michel Hidalgo
.
ros-rolling-rcl (0.8.2-1jammy) jammy; urgency=high
.
  * Remove the prototype from rcl_impl_getenv. (#525 <ros2/rcl#525>)
  * Use return_loaned_message_from (#523 <ros2/rcl#523>)
  * Avoid ready_fn and self.proc_info (#522 <ros2/rcl#522>)
  * Add localhost option to node creation (#520 <ros2/rcl#520>)
  * Add initial instrumentation (#473 <ros2/rcl#473>)
  * Zero copy api (#506 <ros2/rcl#506>)
  * Don't create rosout publisher instance unless required. (#514 <ros2/rcl#514>)
  * Handle zero non-ROS specific args properly in rcl_remove_ros_arguments (#518 <ros2/rcl#518>)
  * Update rcl_node_init docstring (#517 <ros2/rcl#517>)
  * Remove vestigial references to rcl_ok() (#516 <ros2/rcl#516>)
  * Add mechanism to pass rmw impl specific payloads during pub/sub creation (#513 <ros2/rcl#513>)
  * Contributors: Brian Marchi, Chris Lalancette, Ingo Lütkebohle, Jacob Perron, Karsten Knese, Michel Hidalgo, Peter Baughman, William Woodall, tomoya
.
ros-rolling-rcl (0.8.1-1jammy) jammy; urgency=high
.
  * Switch the default logging implementation to spdlog.
  * Contributors: Chris Lalancette
.
ros-rolling-rcl (0.8.0-1jammy) jammy; urgency=high
.
  * Delete rcl_impl_getenv, replaced by rcutils_get_env (#502 <ros2/rcl#502>)
  * Parse CLI parameters and YAML files (#508 <ros2/rcl#508>)
  * Add specific return code for non existent node (#492 <ros2/rcl#492>)
  * Add node name and namespace validation to graph functions (#499 <ros2/rcl#499>)
  * Bring back deprecated CLI arguments (#496 <ros2/rcl#496>)
  * Polish rcl arguments implementation (#497 <ros2/rcl#497>)
  * Uncoment some test_graph test cases after fix in rmw_fastrtps (ros2/rmw_fastrtps#316 <ros2/rmw_fastrtps#316>) (#498 <ros2/rcl#498>)
  * Promote special CLI rules to flags (#495 <ros2/rcl#495>)
  * Fail fast on invalid ROS arguments (#493 <ros2/rcl#493>)
  * Enforce -r/--remap flags. (#491 <ros2/rcl#491>)
  * Support parameter overrides and remap rules flags on command line (#483 <ros2/rcl#483>)
  * Allow get_node_names to return result in any order (#488 <ros2/rcl#488>)
  * rosout init and fini marked as RCL_PUBLIC (#479 <ros2/rcl#479>)
  * included header in logging_rosout.c (#478 <ros2/rcl#478>)
  * Migrate to '--ros-args ... [--]'-based ROS args extraction (#477 <ros2/rcl#477>)
  * Improve security error messages  (#480 <ros2/rcl#480>)
  * Add function for getting clients by node (#459 <ros2/rcl#459>)
  * Remove special case check for manual_by_node for rmw_fastrtps (#467 <ros2/rcl#467>)
  * Fix memory leak of 56 bytes in test_graph
  * Change tests to try MANUAL_BY_TOPIC liveliness for FastRTPS (#465 <ros2/rcl#465>)
  * Implement get_actual_qos() for subscriptions (#455 <ros2/rcl#455>)
  * Log warning when remapping to an invalid node name (#454 <ros2/rcl#454>)
  * Use size_t printf format for size_t variable (#453 <ros2/rcl#453>)
  * Contributors: Alberto Soragna, Emerson Knapp, Jacob Perron, M. M, Michel Hidalgo, Mikael Arguedas, Víctor Mayoral Vilches, eboasson, ivanpauno
.
ros-rolling-rcl (0.7.4-1jammy) jammy; urgency=high
.
  * Fix tests now that FastRTPS correctly reports that liveliness is not supported (#452 <ros2/rcl#452>)
  * In test_events, wait for discovery to be complete bidirectionally before moving on (#451 <ros2/rcl#451>)
  * fix leak in test_service (#447 <ros2/rcl#447>)
  * fix leak in test_guard_condition (#446 <ros2/rcl#446>)
  * fix leak in test_get_actual_qos (#445 <ros2/rcl#445>)
  * fix leak in test_expand_topic_name (#444 <ros2/rcl#444>)
  * Contributors: Abby Xu, Emerson Knapp
.
ros-rolling-rcl (0.7.3-1jammy) jammy; urgency=high
.
  * Fixed memory leak in ``test_client`` (#443 <ros2/rcl#443>)
  * Fixed memory leaks in ``test_wait.cpp`` (#439 <ros2/rcl#439>)
  * Fixed memory leak in ``test_context`` (#441 <ros2/rcl#441>)
  * Fixed memory leak in ``test_init`` (#440 <ros2/rcl#440>)
  * Enabled rcl ``test_events`` unit tests on macOS (#433 <ros2/rcl#433>)
  * Enabled deadline tests for FastRTPS (#438 <ros2/rcl#438>)
  * Corrected use of ``launch_testing.assert.assertExitCodes`` (#437 <ros2/rcl#437>)
  * Reverted "Changes the default 3rd party logger from rcl_logging_noop to… (#436 <ros2/rcl#436>)
  * Fixed memory leaks in ``test_security_directory`` (#420 <ros2/rcl#420>)
  * Fixed a memory leak in rcl context fini (#434 <ros2/rcl#434>)
  * Contributors: Abby Xu, Cameron Evans, Chris Lalancette, Dirk Thomas, M. M, ivanpauno
.
ros-rolling-rcl (0.7.2-1jammy) jammy; urgency=high
.
  * Changes the default 3rd party logger from rcl_logging_noop to rcl_logging_log4cxx (#425 <ros2/rcl#425>)
  * fix leak in node.c (#424 <ros2/rcl#424>)
  * Add new RCL_RET_UNSUPPORTED (#432 <ros2/rcl#432>)
  * New interfaces and their implementations for QoS features (#408 <ros2/rcl#408>)
  * Add an allocator to the external logging initialization. (#430 <ros2/rcl#430>)
  * fix buffer overflow in test_security_dir (#423 <ros2/rcl#423>)
  * Rmw preallocate (#428 <ros2/rcl#428>)
  * Use new test interface definitions (#427 <ros2/rcl#427>)
  * Migrate launch tests to new launch_testing features & API (#405 <ros2/rcl#405>)
  * Fix argument passed to logging macros (#421 <ros2/rcl#421>)
  * Make sure to initialize the bool field. (#426 <ros2/rcl#426>)
  * Contributors: Abby Xu, Chris Lalancette, Emerson Knapp, Jacob Perron, M. M, Michael Carroll, Michel Hidalgo, Nick Burek, Thomas Moulard
.
ros-rolling-rcl (0.7.1-1jammy) jammy; urgency=high
.
  * Replaced reinterperet_cast with static_cast. (#410 <ros2/rcl#410>)
  * Fixed leak in __wait_set_clean_up. (#418 <ros2/rcl#418>)
  * Updated initialization of rmw_qos_profile_t struct instances. (#416 <ros2/rcl#416>)
  * Contributors: Dirk Thomas, M. M, jhdcs
.
ros-rolling-rcl (0.7.0-1jammy) jammy; urgency=high
.
  * Added more test cases for graph API + fix bug. (#404 <ros2/rcl#404>)
  * Fixed missing include. (#413 <ros2/rcl#413>)
  * Updated to use pedantic. (#412 <ros2/rcl#412>)
  * Added function to get publisher actual qos settings. (#406 <ros2/rcl#406>)
  * Refactored graph API docs. (#401 <ros2/rcl#401>)
  * Updated to use ament_target_dependencies where possible. (#400 <ros2/rcl#400>)
  * Fixed regression around fully qualified node name. (#402 <ros2/rcl#402>)
  * Added function rcl_names_and_types_init. (#403 <ros2/rcl#403>)
  * Fixed uninitialize sequence number of client. (#395 <ros2/rcl#395>)
  * Added launch along with launch_testing as test dependencies. (#393 <ros2/rcl#393>)
  * Set symbol visibility to hidden for rcl. (#391 <ros2/rcl#391>)
  * Updated to split test_token to avoid compiler note. (#392 <ros2/rcl#392>)
  * Dropped legacy launch API usage. (#387 <ros2/rcl#387>)
  * Improved security directory lookup. (#332 <ros2/rcl#332>)
  * Enforce non-null argv values on rcl_init(). (#388 <ros2/rcl#388>)
  * Removed incorrect argument documentation. (#361 <ros2/rcl#361>)
  * Changed error to warning for multiple loggers. (#384 <ros2/rcl#384>)
  * Added rcl_node_get_fully_qualified_name. (#255 <ros2/rcl#255>)
  * Updated rcl_remap_t to use the PIMPL pattern. (#377 <ros2/rcl#377>)
  * Fixed documentation typo. (#376 <ros2/rcl#376>)
  * Removed test circumvention now that a bug is fixed in rmw_opensplice. (#368 <ros2/rcl#368>)
  * Updated to pass context to wait set, and fini rmw context. (#373 <ros2/rcl#373>)
  * Updated to publish logs to Rosout. (#350 <ros2/rcl#350>)
  * Contributors: AAlon, Dirk Thomas, Jacob Perron, M. M, Michael Carroll, Michel Hidalgo, Mikael Arguedas, Nick Burek, RARvolt, Ross Desmond, Sachin Suresh Bhat, Shane Loretz, William Woodall, ivanpauno
.
ros-rolling-rcl (0.6.4-1jammy) jammy; urgency=high
.
  * Added method for accessing rmw_context from rcl_context (#372 <ros2/rcl#372>)
  * Added guard against bad allocation when calling rcl_arguments_copy() (#367 <ros2/rcl#367>)
  * Updated to ensure that context instance id storage is aligned correctly (#365 <ros2/rcl#365>)
  * Fixed error from uncrustify v0.68 (#364 <ros2/rcl#364>)
  * Contributors: Jacob Perron, William Woodall, sgvandijk
.
ros-rolling-rcl (0.6.3-1jammy) jammy; urgency=high
.
  * Set rmw_wait timeout using ros timers too (#357 <ros2/rcl#357>)
  * Contributors: Shane Loretz
.
ros-rolling-rcl (0.6.2-1jammy) jammy; urgency=high
.
  * Updated docs about possibility of rcl_take not taking (#356 <ros2/rcl#356>)
  * Bugfix: ensure NULL timeout is passed to rmw_wait() when min_timeout is not set
    Otherwise, there is a risk of integer overflow (e.g. in rmw_fastrtps) and rmw_wait() will wake immediately.
  * Contributors: Jacob Perron, William Woodall
.
ros-rolling-rcl (0.6.1-1jammy) jammy; urgency=high
.
  * Added new cli parameters for configuring the logging. (#327 <ros2/rcl#327>)
  * Added node graph api to rcl. (#333 <ros2/rcl#333>)
  * Fixed compiler warning in clang (#345 <ros2/rcl#345>)
  * Refactored init to not be global (#336 <ros2/rcl#336>)
  * Methods to retrieve matched counts on pub/sub. (#326 <ros2/rcl#326>)
  * Updated to output index in container when adding an entity to a wait set. (#335 <ros2/rcl#335>)
  * Contributors: Jacob Perron, Michael Carroll, Nick Burek, Ross Desmond, William Woodall
.
ros-rolling-rcl (0.6.0-1jammy) jammy; urgency=high
.
  * Updated to expand node_secure_root using local_namespace (#300 <ros2/rcl#300>)
  * Moved stdatomic helper to rcutils (#324 <ros2/rcl#324>)
  * Added subfolder argument to the ROSIDL_GET_SRV_TYPE_SUPPORT macro (#322 <ros2/rcl#322>)
  * Updated to use new error handling API from rcutils (#314 <ros2/rcl#314>)
  * Fixed minor documentation issues (#305 <ros2/rcl#305>)
  * Added macro semicolons (#303 <ros2/rcl#303>)
  * Added Rcl timer with ros time (#286 <ros2/rcl#286>)
  * Updated to ensure that timer period is non-negative (#295 <ros2/rcl#295>)
  * Fixed calculation of next timer call (#291 <ros2/rcl#291>)
  * Updated to null deallocated jump callbacks (#294 <ros2/rcl#294>)
  * Included namespaces in get_node_names. (#287 <ros2/rcl#287>)
  * Fixed documentation issues (#288 <ros2/rcl#288>)
  * Updated to check if pointers are null before calling memset (#290 <ros2/rcl#290>)
  * Added multiple time jump callbacks to clock (#284 <ros2/rcl#284>)
  * Consolidated wait set functions (#285 <ros2/rcl#285>)
    * Consolidate functions to clear wait set
    Added rcl_wait_set_clear()
    Added rcl_wait_set_resize()
    Removed
    rcl_wait_set_clear_subscriptions()
    rcl_wait_set_clear_guard_conditions()
    rcl_wait_set_clear_clients()
    rcl_wait_set_clear_services()
    rcl_wait_set_clear_timers()
    rcl_wait_set_resize_subscriptions()
    rcl_wait_set_resize_guard_conditions()
    rcl_wait_set_resize_timers()
    rcl_wait_set_resize_clients()
    rcl_wait_set_resize_services()
  * ROS clock storage initially set to zero (#283 <ros2/rcl#283>)
  * Fixed issue with deallocation of parameter_files (#279 <ros2/rcl#279>)
  * Update to initialize memory before sending a message (#277 <ros2/rcl#277>)
  * Set error message when clock type is not ROS_TIME (#275 <ros2/rcl#275>)
  * Copy allocator passed in to clock init (#274 <ros2/rcl#274>)
  * Update to initialize timer with clock (#272 <ros2/rcl#272>)
  * Updated to use test_msgs instead of std_msgs in tests (#270 <ros2/rcl#270>)
  * Added regression test for node:__ns remapping (#263 <ros2/rcl#263>)
  * Updated to support Uncrustify 0.67 (#266 <ros2/rcl#266>)
  * Contributors: Chris Lalancette, Chris Ye, Dirk Thomas, Jacob Perron, Michael Carroll, Mikael Arguedas, Ruffin, Shane Loretz, William Woodall, dhood
.
ros-rolling-rcl (0.5.0-1jammy) jammy; urgency=high
.
  * Updated code to only use ``rcutils_allocator_t`` and not use system memory functions directly. (#261 <ros2/rcl#261>)
  * Changed code to use ``rcutils_format_string()`` rather than ``malloc`` and ``rcutils_snprintf()`` (#240 <ros2/rcl#240>)
  * Added functions for dealing with serialized messages. (#170 <ros2/rcl#170>)
  * Updated to use ``test_msgs`` instead of ``example_interfaces``. (#259 <ros2/rcl#259>)
  * Added regression test for the Connext specific 'wrong type writer' error. (#257 <ros2/rcl#257>)
  * Added the ability to set the default logger level from command line. (#256 <ros2/rcl#256>)
  * Refactored the ``memory_tools`` testing API to ``osrf_testing_tools_cpp`` (#238 <ros2/rcl#238>)
  * Added support for passing YAML parameter files via the command line arguments.  (#253 <ros2/rcl#253>)
  * Migrated existing uses of ``launch`` to use the same API in it's new API ``launch.legacy``. (#250 <ros2/rcl#250>)
  * Added a printed warning if non-FQN namespace remapping is passed. (#248 <ros2/rcl#248>)
  * Made some changes toward MISRA C compliance. (#229 <ros2/rcl#229>)
  * Changed ``rcl_node_init()`` so that it now copies node options passed into it (#231 <ros2/rcl#231>)
  * Fixed some memory leaks in ``test_arguments`` (#230 <ros2/rcl#230>)
  * Extended static remapping feature with support for the url scheme (#227 <ros2/rcl#227>)
  * Made a change to force ``rcl_arguments_t`` to be zero initialized. (#225 <ros2/rcl#225>)
  * Updated documentation for ``rmw_get_node_names()`` to mention the potential for null values (#214 <ros2/rcl#214>)
  * Fix an issue with signed time difference. (#224 <ros2/rcl#224>)
  * Changed library export order to fix static linking (#216 <ros2/rcl#216>)
  * Implemented static remapping over command line arguments (#217 <ros2/rcl#217> and #221 <ros2/rcl#221>)
  * Added a sized validation function for the topic name as ``rcl_validate_topic_name_with_size()`` (#220 <ros2/rcl#220>)
  * Added a logger name and stored it in the rcl node structure (#212 <ros2/rcl#212>)
  * Changed ``rcutils_time_point_value_t`` type from ``uint64_t`` to ``int64_t`` (#208 <ros2/rcl#208>)
  * Fixed a potential bug by resetting the ``RMWCount`` when using the ``DEALLOC`` macro on rmw storage of a wait set (#209 <ros2/rcl#209> and #211 <ros2/rcl#211>)
    * Signed-off-by: jwang <mailto:jing.j.wang@intel.com>
  * Fixed a potential bug by resetting ``wait_set`` type index in the ``SET_RESIZE`` macro (#207 <ros2/rcl#207>)
    * Signed-off-by: jwang <mailto:jing.j.wang@intel.com>
  * Removed a slash behind ``SET_CLEAR`` MACRO (#206 <ros2/rcl#206>)
    * Signed-off-by: jwang <mailto:jing.j.wang@intel.com>
  * Changed rmw result validation string to not ever return nullptr (#193 <ros2/rcl#193>)
    * Signed-off-by: Ethan Gao <mailto:ethan.gao@linux.intel.com>
  * Clarified that ``rcl_take_response()`` populates the ``request_header`` (#205 <ros2/rcl#205>)
  * Removed a now obsolete connext workaround (#203 <ros2/rcl#203>)
  * Fixed a potential segmentation fault due to a nullptr dereference (#202 <ros2/rcl#202>)
    * Signed-off-by: Ethan Gao <mailto:ethan.gao@linux.intel.com>
  * Contributors: Dirk Thomas, Ethan Gao, Karsten Knese, Michael Carroll, Mikael Arguedas, Shane Loretz, William Woodall, dhood, jwang11, serge-nikulin
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.

None yet

9 participants