-
Notifications
You must be signed in to change notification settings - Fork 721
Regression on ROS 2 Buildfarm for Rolling #960
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
Comments
The offending package was likely linking against |
I can submit a PR shortly that adds explicit I'd prefer not to blindly submit a PR, so if @Yadunund (or someone else) could suggest some acceptance criteria that would be great |
I believe you just have to build the package and see that it builds. |
@kevshin2002 unfortunately it builds just fine for me w/o the changes on current rolling (as expected) -- I'm assuming there's a ament[_cmake] change that's in the sync that caused the regression. It looks to me like a transient dep on gtest (as the logs suggest). For example, the package.xml only specifies a dep on I'll PR something shortly with that in mind |
Ah, hold on, I think the issue is a bit more tricky... Note that the error is on line 60 of If this line is being hit, those are both ON/true/1 (whatever) for a vanilla |
what I assume is happening is that this behavior (using the """wrong""" portion of the if/else) is not new, but upstream changes have made it so that the My suspicion is that Regardless, I think the correct fix here is to change the if/else to hit the ROS 2 case properly... somehow |
Hi @sarcasticnature, i'm not sure if this might be the fix, but could you try adding the two line: find_package(ament_cmake_ros)
find_package(gtest_vendor) The root level CMakeLists handles ROS2 build system first before hitting the testing on line 54. |
While that may work, I'm hesitant to throw in dependencies that may not actually be needed -- there's plenty of other packages that don't explicitly depend on those two and still build just fine. That may be the most expedient solution though, I'm now realizing (based on all the failed CI jobs) that the patch maaaaaaay have some unintended consequences... |
Ok, I think that PR will fix things, but I'm not totally sure (I've tried to test it but can't get 4.6.2 to break as-is). |
I think there's some misunderstanding as to how CMake, CTest, and their related macros work in this package. The happy path for plain CMake looks like this: include(CTest)
if(BUILD_TESTING)
add_executable(...)
add_test(...)
endif() The call to For ROS packages, the call to Colcon doesn't touch What changed here is that packages upstream in the rosidl pipeline previously exported a dependency on So the fix here is to use |
As I mentioned in your comment on the PR, I don't disagree with that philosophy, but I don't think it's a quick fix without changing some other (perhaps unexpected) things other than just the testing I can try and make another PR so that things are 'respecting' The issue with just adding a check for BUILD_TESTING in the I could very well be wrong about the above (I will have to do some more investigation to be sure), but again I will need more time to look into it |
I'm totally on board with a small change to mitigate the issue. You guys can do whatever you want in your package, my only intent is to explain how the ROS buildfarm, tooling, and standard CMake practices "expect" things to work. To be clear, though, I don't believe that #961 will unblock the builds on the buildfarm. The error message will go from the previous failure to |
gotcha, that's good to know and I really appreciate the explanation. I know very little about the build farm so I'm flying a bit blind here. I guess the short term fix is actually to just include the deps even though they're not needed? perhaps I was a bit too apprehensive of that approach... I would want to fix it eventually though. I'll try and come up with an actual solution tonight |
Ok, try number 2 is up: #964 |
@Yadunund did this process take down the BT.CPP binaries from Rolling that were already existing? I'm seeing Nav2's docker image update CI job failing due to not being able to find |
just release 4.7.0 Hopefully this should fix the issue |
bwehaviortree_cpp 4.6.2
is failing to build for Rolling on the buildfarm with the error below. This is blocking the announced Rolling sync. We will proceed with the sync which will remove these binaries from Rolling but they will be added once the build is fixed and a new release is bloomed.Detailed logs: https://build.ros2.org/view/Rbin_uN64/job/Rbin_uN64__behaviortree_cpp__ubuntu_noble_amd64__binary/61/consoleFull
The text was updated successfully, but these errors were encountered: