-
Notifications
You must be signed in to change notification settings - Fork 279
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
Dependecy issues between tf2 and tf2_geometry_msgs #275
Comments
Thanks for replying this quickly Tully, and sorry I missed issue #170. I will locally fix this then by moving functionality from tf2 into tf2_geometry_msgs. Thanks! |
No problem. If you have a clean solution a PR would be appreciated. I think it it's likely that the template specializations in the impl can move to tf2_geometry_msgs and then anyone with that as a dependency could use them the same way they always have. |
* add depend on tf2_geometry_msgs (due to ros/geometry2#275) * add other hidden depends: angles, geometry_msgs, tf2
* add tf2_geometry_msgs (due to ros/geometry2#275) * add missing depends on angles, sensor_msgs, tf2
Actually, this is a workaround for the following bug: ros/geometry2#275
I just ran into this too, and I also solved it by moving the functions that manipulate geometry_msgs types into tf2_geometry_msgs. I can submit my changes as a PR if you'd like, but it's an API change and since I'm only testing against a small part of ROS and I'm not using cmake to build ROS, so I can't confirm that this fix is valid for the rest of the ROS ecosystem. |
@trainman419 If you have the moved implementation could you add a backwards compatible API placeholder that forwards to the new location and gives a deprecation warning? That deprecated API will still cause the dependency issue, but we can remove it in a future rosdistro and we can put a very specific warning that hopefully people will find the workaround quickly if they run into it. |
👍
That rosdistro better be Noetic, since it's the last one! :) |
We got bugged by this in Debian as well: https://bugs.debian.org/916479. |
Looks like my changes didn't end up being necessary for our project, and didn't make it into our repository. I will not be submitting a PR for these changes (I don't have any way to test the changes requested by @tfoote , either). |
Closes: ros#275 This breaks the cycle between tf2 and tf2_geometry_msgs. I didn't add deprecated attributes for functions having tf2_geometry_msgs in the method signature, as they would need to have the right header imported anyhow.
Closes: ros#275 This breaks the cycle between tf2 and tf2_geometry_msgs. I didn't add deprecated attributes for functions having tf2_geometry_msgs in the method signature, as they would need to have the right header imported anyhow.
Closes: ros#275 This breaks the cycle between tf2 and tf2_geometry_msgs. I didn't add deprecated attributes for functions having tf2_geometry_msgs in the method signature, as they would need to have the right header imported anyhow.
The tf2 package depends on headers from this but does not actually list it as a dependency; see ros/geometry2#275
The tf2 package depends on headers from this but does not actually list it as a dependency; see ros/geometry2#275
This is causing one of our dev jobs to fail (though somehow the binary jobs are fine): https://build.ros.org/job/Mdev__tf2_2d__ubuntu_bionic_amd64/1/consoleFull
Since |
Yes, if you include |
Closes: ros#275 This breaks the cycle between tf2 and tf2_geometry_msgs. I didn't add deprecated attributes for functions having tf2_geometry_msgs in the method signature, as they would need to have the right header imported anyhow.
If you look closely, you can see that
tf2/include/tf2/impl/utils.h includes <tf2_geometry_msgs> and
tf2_geometry_msgs/include/tf2_geometry_msgs/tf2_geometry_msgs.h includes
So there is a cycle there.
I am forced to compile these packages via a different build system, and my system dies with a cyclic dependency error.
Also note how tf2 sneakily includes tf2_geometry_msgs without actually requiring the package in CMakeLists or package.xml. I fail to understand how this can build in the first place, but it surely doesn't build for me.
The text was updated successfully, but these errors were encountered: