-
Notifications
You must be signed in to change notification settings - Fork 34
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
Allow sharing DomainParticipant with C++ applications #25
Conversation
For some reason, there were a bunch of failures which, from a quick inspection, all seem to be related from that "dreaded" (because unnecessary) exception, thrown by
Almost had a heart attack when I opened the Test Results, but I think we can avoid any coronary attacks if rosidl_typesupport#102 is completed. I had opened a PR about this but closed it after I noticed the other, and also, just removing/downgrading the statement didn't seem to be enough, because there were tests depending on that. Anyway, I have no idea why things would start failing only here and now. I don't see how these small changes might have such catastrophic effects. |
I'm not sure if ros2/rosidl_typesupport#102 is the solution or not. I can also take a closer look tomorrow, but I need some hours to understand what's happening. I can easily reproduce the problems locally.
you will see the same failures that the last CI job (with this PR or not). This didn't happen before because all the The purpose of the "single rmw" jobs in (edit) rephrased some parts, corrected spelling mistakes |
I also typically select only one of the |
A'ight, spongebobgettingupfromchair.jpg I'll be taking a look and report back once I have some idea of what's going on. I'll test with #22 because I expect that to be merged soon. |
Re: failure in |
I don't think we are going to put that PR in for Galactic. While I think it is an improvement, it does change the contract. Given where we are in the release cycle, that would break API (at least in spirit). In general, this looks like a feature, not a bugfix, so I'll say that we shouldn't put it in at this time. What I will say, though, is that it looks like it is ABI and API backwards-compatible, so it is something we can put in for a Galactic patch release. That being said, I'd be OK with reviewing and merging the PRs that restore the test exceptions so we can prepare for this in a Galactic patch release. So I'll go review some of that. |
I personally consider it a bugfix, because I expected this feature to work out of the box. All the failures are not related to this PR, but they were already present and I had failed to detect them because they only occur if That's why several tests are "passing in CI" but actually need some fixes to pass (because they are not actually even running in CI). |
About rosidl_typesupport#102, I think it's ok if it's not merged. I took one out of |
FYI that job is actually working, I saw the yesterdays failure and got confused. |
Right, but it is still a feature. We can't continually put new features into Galactic; otherwise the freeze is meaningless. I still think this should be put in in the first Galactic patch release. |
I didn't see the previous discussion, sorry. This can definetely be included in the first patch release. |
I understand your hesitancy, but I don't believe we have been "continually" adding new features. Everything so far has been trying to address some pretty major problems that unfortunately were discovered only in the last 10 days. It would have been nice to catch #21 a week earlier, but I did my best to file #22 and resolve everything in the most timely fashion to account for the impeding (and now active) freeze. It's also unfortunate that I didn't realize sooner that there were several tests that had not actually run with In the case of this PR, it's a very minor change, which opens up a wide range of new use cases for ROS 2/Connext users that I would really like for If it's still "one bridge too far", then I have no problem waiting for the first patch release, which I'm assuming will be in a few months, but I would appreciate a minor exception if possible. |
Apologies, that comment wasn't meant particularly for you. It's more a general statement of the state of the Galactic release. We're in a pretty good place now, and we want to minimize the disruption to testing from here to the release date on May 23rd. Given that this change is a feature, and does not break an API or ABI, I think it makes sense to wait for the first patch release. Thanks for your understanding. |
No worries, I'm happy #22 made it in, and I think things look pretty good as they are! I have one release-related question to help me better understand the ROS 2 release process (and the workflow for this feature). Once the Is my understanding correct? |
Yep, you have it exactly right. |
Yes, that's exactly the pattern we follow in all the "core" repos. I remember in the past some rmw implementations were maintaining versions for different ROS distros in the same branch, using some version macros that |
I'm happy to revisit the approach in the future, but I think it would have to be introduced as a more general practice to the developer community (e.g. by adopting it also in other core repositories) to avoid increasing the "learning curve" for effective contributions only for this repository. |
Signed-off-by: Andrea Sorbini <[email protected]>
Signed-off-by: Andrea Sorbini <[email protected]>
Signed-off-by: Andrea Sorbini <[email protected]>
0f8390e
to
cb90c7b
Compare
Rebased on top of |
@clalancette @ivanpauno since we are out of galactic freeze, I'm going to merge this PR to I can run a "CI sanity check" (with only Connext enabled) for both PRs before merging, just to verge on the (extremely) safe side, but both PRs should be good to go already. Thoughts? |
I don't see a CI run for #41, but maybe it was run elsewhere. I will suggest doing another CI run with this and #41 just to make sure everything is green, but otherwise we are back to our normal "one approval and green CI to merge to master" rules. |
Started CI for #41. I'll run it again for this PR too, but I'll wait until some plans finish (plans are running for #43 too). |
Failures in |
* Allow sharing DomainParticipant with C++ applications * Add comment about UserObjectQosPolicy * Resolve uncrustify errors Signed-off-by: Andrea Sorbini <[email protected]>
Signed-off-by: Andrea Sorbini <[email protected]>
This PR adjusts an internal Connext QoS policy to enable sharing of the DomainParticipant created by
rmw_connextdds
using the C API, with ROS 2 applications using the Modern C++ API.With this changes, it is possible for the application to access the DomainParticipant and reuse it, e.g. to create endpoints, instead of creating a dedicated participant:
The application must be linked with
-rdynamic
in order to share the DDSDomainParticipantFactory
withrmw_connextdds
. This can be achieved in cmake with:It would be great to include this PR in Galactic, since it's such a trivial change and it enables access to some features which are not yet available in the RMW (e.g. zero copy).
The modified QoS Policy has no effect on the C core, and is only used by other language bindings built around it. I can run CI for this set of changes, but I don't expect any effect to "normal operations".