-
Notifications
You must be signed in to change notification settings - Fork 21
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
Dependency from rmw_cyclonedds_cpp on fastrtps via rmw_dds_common #16
Comments
The graph shows all dependencies considered for the topological order. That includes group dependencies. There is no direct dependency on FastRTPS in this package which you can verify by looking at the package manifest. So you might want to take a step back describing what the problem is you are having and then finding the actual reason for it. |
There is a transitive dependency on FastRTPS. Before ros2/rmw_cyclonedds#145, Afterwards, it was: https://github.com/ros2/rmw_cyclonedds/runs/609354227?check_suite_focus=true#step:4:3049 |
The order comes from the fact that this package contains messages and therefore depends on all type support packages. There is no explicit dependency on FastRTPS. You can easily verify that by building RMW CycloneDDS in a workspace without FastRTPS. |
@rotu it doesn't add a dependency. For that reason, if rosidl_typesupport_fastrtps_c or rosidl_typesupport_fastrtps_cpp is present in your workspace, If you want to avoid building |
Okay. It seems like I'm confusing two concepts: the list of "required dependencies" and the build order in which those packages must be built. What is the proper way to tell whether something is a "required dependency" versus an optional one? @thomas-moulard It seems It also seems |
IIUC, group dependencies (which are marked with I'm not sure of how the ros ci actions can be configured, but having a way of ignoring specific packages/repositories sounds like a good idea. |
That would be a good thing to clarify in https://www.ros.org/reps/rep-0149.html#dependency-groups and/or add an 'optional' flag on dependencies.
I think that makes sense. Right now there's not spot for "additional colcon args" like there is on Travis. For multiple RMW backends, there exists |
This is not something we are planning to implement. The user chooses what they want by what is in a workspace (and not ignored during the build). Since there doesn't seem to be an issue in this repository I am going to close the ticket. Please feel free to continue commenting. |
What's the rationale for allowing building without dynamic RMW selection and why doesn't it apply to typesupports? Oops. I didn't realize that excluding other implementations from
What would be the correct way to tell |
Something like |
That ignores fastrtps and connext, it doesn't filter based on rmw_cyclonedds_cpp's package requirements. In general, it seems like a pretty core feature of a build tool to be able to figure out which packages some package depends on... |
Please feel free to describe how |
A package's required dependencies seems to be the transitive closure of its Dependency tags, excluding its Group dependency tags (which as @ivanpauno said above, are always optional). |
Group dependencies are not necessarily optional. There are cases where you e.g. need at least one of package from the group in order to work properly. That semantic isn't encoded in the manifest because the community wasn't able to reach a consensus when this was proposed (I don't have a link to that discussion at hand). Therefore I don't think an option to just ignore group dependencies is sufficient. |
This is a great point.
The group dependency mentioned above needs AT LEAST one package. I don't think that information can be encapsulated in a |
You're right that my suggested fixes for ros-infrastructure/rep#252 would not fully encode the dependency "at least one of...". It would enable replacing this part of the build process:
with something like:
It is possible to do this today with e.g. You're right that today, the only way to have a minimal build is to delete packages. I don't think we should settle for that status quo. |
FYI: here's the proposed fix in the cyclone rmw. |
I think this created a build mess by introducing a dependency on FastRTPS.
Originally posted by @rotu in ros2/rmw_cyclonedds#145 (comment)
The text was updated successfully, but these errors were encountered: