Track upstream repository for orocos_kdl#1208
Conversation
|
In general, this seems like a good idea to me. I have a few concerns:
|
|
I want to discuss a few different options. I think for options 1 or 2 below, we need the connected PRs. I opened this PR to run CI to see where we stand.
For both options (1) and (2):
|
|
There is a 4th option, which is to create a That option is nice in that it uses the system package wherever possible, only building it as required. There, I think we'd also need the connected PRs as well. The version downgrade shouldn't be too much of a problem in this case; since it is a "different" package, it can have a different version number. The downside to doing |
If orocos-kdl is suitably available on most of our host platforms then I would absolutely advocate for an explicit vendor package as the way forward. It doesn't seem like RHEL 8 or EPEL8 currently have an orocos-kdl-devel package or similar so we're at 50% availability or 60% if you count macOS, which I have not been anymore. We're working with the RoboStack folks to make conda the primarily supported installation method on Windows and orocos-kdl is packaged on conda-forge so depending on whether we can get the package in EPEL there's a long term possibility for removing the vendor package after a certain point. I'm very in favor of the vendor package approach. If orocos-kdl is one of the packages particularly sensitive to the downsides of ExternalProject_Add then it may be that we allocate some time to the ament_cmake wrapper/alternative which was discussed offline previously. |
This sends shivers down my spine. Is there no way to point it at a system or already-vendored pybind11 installation? |
I'll look into this; I suspect it may require some changes to oroco_kdl upstream. |
|
I've created a vendor package for orocos_kdl (ros2/orocos_kdl_vendor#1). Correct me if I'm wrong, but I think for this to work as desired we should add rosdep keys for I've also proposed a patch upstream to avoid building pybind11 if it is already available on the system (orocos/orocos_kinematics_dynamics#375). |
You have my exquisite gratitude for this. 🙇 🙇 🙇
Yes, the vendor package should declare build and runtime dependencies on the system packages it provides so it can, essentially, re-export those dependencies when they are present and when they're not it should also declare build dependencies on the vendored package's build dependencies so it can be built when the system packages aren't available. |
|
I've updated this PR to switch to the vendor packages, updated other ROS 2 packages depending on orocos_kdl, and triggered CI (see updated ticket description). Seems like the last roadblock is Windows CI, failing to build PyKDL with: @MatthijsBurgh Any insight into this error? |
|
I've opened a PR upstream to fix the CMake warnings: orocos/orocos_kinematics_dynamics#385 |
|
@jacobperron I am not developing any software on Windows. So I can't help you with this one. |
|
Alright, thanks to @sloretz we are now successfully building on Windows 🎉 There are now 22 MSBuild warnings to resolve upstream and a few cmake lint test failures in the vendor package. I should be able to resolve the remaining warnings and test failures. I think we just need reviews on this and the connected PRs (see PR description). @clalancette @nuclearsandwich Is there anything else that we should do and/or do you have any reservations about actually vendoring orocos_kdl (versus just releasing upstream as a ROS 2 package)? |
|
I've opened a PR upstream to try and resolve MSBuild warnings: orocos/orocos_kinematics_dynamics#390 |
Fixes #937 Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
29281f5 to
3cdf4ef
Compare
|
orocos/orocos_kinematics_dynamics#391 addresses another CMake warning. |
|
CI is green except for one Cmake warning coming from pybind11. I'll see if we can quiet the warning in |
Resolve in orocos/orocos_kinematics_dynamics#392 |
Use vendor package instead of upstream source repository Fixes ros2#937 Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Fixes #937
Related to ros2/orocos_kinematics_dynamics#24
Depends on:
Add --recursive option to vcs import ci#599CI: