Open tonynajjar opened 7 months ago
Linting failed an an odd error basically complaining about conflicts with every BT.CPPv4 node?
Linting failed an an odd error basically complaining about conflicts with every BT.CPPv4 node?
I found a couple of build issue that I fixed. The logs were super verbose though, maybe there is something else, let's see
It's still failing, looking at the logs, they contain both /opt/ros/iron/include/behaviortree_cpp_v3
and /opt/ros/iron/include/behaviortree_cpp
, maybe that's a problem? Locally it builds...
On rolling there is only the newer version:
root@tony-xmg-22:/opt/overlay_ws# ls /opt/ros/rolling/include/ | grep behavior
behaviortree_cpp
That is odd - this CI shouldn't have any caching in it (@emersonknapp any caching happen in the ros action ci?) for it to know about BT.CPPv4 if its gone here. Does this cause you issues locally?
Does this cause you issues locally?
Locally on rolling no, I didn't test on iron though, I'm on humble and the devcontainer is only for rolling I believe - setting up iron will be some effort
That is odd - this CI shouldn't have any caching in it (@emersonknapp any caching happen in the ros action ci?) for it to know about BT.CPPv4 if its gone here
@SteveMacenski I'm guessing it knows about BT.CPPv4 because it's using iron. I tried using rolling in this commit but that fails as well because it can't find nav2_util
-> are there no binaries for nav2 on rolling?
There is no Nav2 binaries for rolling, but you could add it in the https://github.com/open-navigation/opennav_coverage/blob/main/.github/deps.repos for use in CI for testing. I'm not sure if you can isolate it to only nav2_utils and its necessary dependencies, but I suppose we could change the Action's colcon build
to include packages-up-to
for the opennav coverage packages, which would include only the parts of Nav2 strictly required. It would though need to build the Nav2 BT libraries which is non-trivial.
-_- action ci tools don't call rosdep, I literally can't believe that
-_- action ci tools don't call rosdep, I literally can't believe that
hmm I think it does
but for some reason it can't find "standard" packages: https://github.com/open-navigation/opennav_coverage/actions/runs/8175554856/job/22352920043?pr=43
I'm wondering if https://discourse.ros.org/t/preparing-ros-2-rolling-for-the-transition-to-ubuntu-24-04/35673/8 could have anything to do with it. It still says Jammy in the CI though No definition of [geometry_msgs] for OS version [jammy]
I'm wondering if https://discourse.ros.org/t/preparing-ros-2-rolling-for-the-transition-to-ubuntu-24-04/35673/8 could have anything to do with it. It still says Jammy in the CI though
No definition of [geometry_msgs] for OS version [jammy]
Now I have a stronger suspicion:
root@tony-xmg-22:/opt/overlay_ws# rosdep resolve geometry_msgs
#apt
ros-rolling-geometry-msgs
root@tony-xmg-22:/opt/overlay_ws# rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Warning: running 'rosdep update' as root is not recommended.
You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Skip end-of-life distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /root/.ros/rosdep/sources.cache
root@tony-xmg-22:/opt/overlay_ws# rosdep resolve geometry_msgs
ERROR: No definition of [geometry_msgs] for OS version [jammy]
No definition of [geometry_msgs] for OS version [jammy]
rosdep key : geometry_msgs
OS name : ubuntu
OS version : jammy
Data:
_is_ros: true
debian:
bookworm:
apt:
packages:
- ros-rolling-geometry-msgs
osx:
homebrew:
packages:
- ros/rolling/common_interfaces
rhel:
'9':
dnf:
packages:
- ros-rolling-geometry-msgs
ubuntu:
noble:
apt:
packages:
- ros-rolling-geometry-msgs
What a timing :smile:
Oh I see that too. So I guess transient during the Rolling migration that's underway, I see the flood of build farm emails with their work to 24.04
. What's the path from here? I think this was just a test to see if it would resolve on rolling since Iron was problematic. Certainly we could move the CI to rolling
too, I could roll with that :wink:
By the way, this is not just a CI problem, I see this locally as well after doing an apt update + upgrade using the BTv4 branch. I actually see the 'all the BT nodes complaining' in opennav_docking as well now after the update which is interesting.
Experimenting now on the odd BT compiling issues. Did you happen to make any progress on it? I'm starting with purging v3 from my computer so its only v4. I suspect that has something to do with it.
Mmm no progress as I didn't setup Iron. On my setup on rolling there wass only BTv4 so I couldn't reproduce locally. You were able to reproduce on iron right?
I don't recall specifically what my setup was when I saw it, I was in the middle of doing something else so I just removed opennav_coverage
and went back to what I was trying to do at the time when I ran into it. Its possible I had nav2
main built on iron base (which could have had btv4 in it) or some other mixed policy. I was poking around alot of projects this week so I can't recall which specifically it was I found it with respect to.
What I know I did right now:
Doesn't happen for one of the projects, I adapted that here as well now too in a separate branch with just the v4 changes and that works too. I'll open a separate PR in a moment with just the v4 updates to see what CI says about that and that I have something working locally.
I'm guessing it has to do with having the v3 and v4 installed next to each other
Ah, in CI
executing command [apt-get install -y ros-iron-nav2-behavior-tree]
That's going to pull in BT.CPPv3. Then we're using v4 that would explain it (in my PR)
Yes and BTv3 is expected in Iron so the simplest solution I see is to port the CI to rolling when rosdep works again... Do you see another option?
Note that you missed adding BTCPP_format="4"
to the BT XML + the inline test XML string which causes a warning on execution. Please add that and I'll close my PR (only difference)
I see is to port the CI to rolling when rosdep works again
I agree. If I'm reading the docs for action-ros-ci
correctly, we can use colcon-extra-args: --packages-up-to <packages in repo>
to automatically only build what is needed from Nav2. Else, we can specify exactly which packages to build with package-name:
, but we'll need to figure out exactly which packages we need to build manually. Which, from a quick look, seems like ~46 packages which would be a pain in the ass to list.
I also filed https://github.com/ros-tooling/setup-ros-docker/issues/68 which is necessary to upgrade the CI to use 24.04 (in case 22.04 is totally messed up permanently, which would be really irritating). I asked for clarity in https://discourse.ros.org/t/preparing-ros-2-rolling-for-the-transition-to-ubuntu-24-04/35673/9?u=smac. I suppose either way we need to update CI to 24.04, so I suppose if that comes, we should just do that anyway.
I think that's the path forward and the contingencies, do you agree? I didn't want to make this your problem so I made sure to look at this today.
Note that you missed adding BTCPP_format="4" to the BT XML + the inline test XML string which causes a warning on execution. Please add that and I'll close my PR (only difference)
Done
ah nice find, there's nothing about it in the readme
I think that's the path forward and the contingencies, do you agree?
yep sounds like a plan. Let's see what they'll answer in the discourse
I'm looking forward to this moving in navigation2 (if that's gonna happen) to manage it more easily and avoid the double work.
Yeah the plan is to move it to Nav2 once the F2C updated features are in F2C & updated to be used here. I still haven't decided if I will rename these to use nav2_
prefix or keep opennav_
, but that's pedantic
I tried again since rolling sync is out but still same issue with rosdep not finding some packages. Unfortunately I don't have the time currently to look further into it, could you maybe ask for a follow up on the issue?
It still failing everywhere, I wouldn't worry about it yet. I still see missing rosdep in Nav2 and tickets on discourse, I don't think anything changed
Fixes:
Improvements: