Preparing for Melodic sync 2020-03-12

I’m preparing to do another Melodic sync soon since there are a large number of packages to be released, and Autoware.ai has requested a release to make carla_msgs available.

Currently Melodic has two known regressions and 141 packages ready to sync. I plan on holding packages starting tomorrow, March 13, with a sync next week. The only exception will be fixes for the regression.

Please comment here if there are any outstanding issues I should know about before performing the sync.

Hi @clalancette – my ifm3d_core package was synced into Kinetic for the first time last week. Unfortunately I discovered that my dependency on OpenCV via the libopencv-dev package has some problems on Kinetic (due to OpenCV2 on xenial vs OpenCV3 in kinetic) and that the correct way to depend on OpenCV is via the cv_bridge package.

I think this is less of an issue in melodic since OpenCV3 is the default for both melodic/bionic…nonetheless I have just cut a new release for melodic (https://github.com/ros/rosdistro/pull/24063) which changes the dependency from libopencv-dev to cv_bridge. I’ll leave it up to you to decide if this should get merged in or not.

FWIW, the last sync of this package failed to compile due to user error, so nobody has it yet. Might be a good time to pull this fix in to avoid issues later?

It looks like the last binary build succeeded on Melodic: Mbin_uB64__ifm3d_core__ubuntu_bionic_amd64__binary [Jenkins] . However, you are right that it hasn’t been included in any official sync yet. So I’ll merge your PR, but just be aware that if it fails, I won’t hold up the sync for another fix.

That’s fair. Really appreciate it.

Thanks for setting up the sync, @clalancette!

The sync is out.

Hi,

I’m not sure if the sync is the actual cause, but after I apt-get upgrade, build of some packages fails in my environment.

The problem occurs when a package with parameter files for dynamic_reconfigure (e.g. compressed_image_transport) is already installed via apt-get and also is located on catkin workspace and there is difference between parameter files of the packages.

It looks like g++ looks at header files generated from dynamic reconfigure params on /opt/ros/melodic instead of the current catkin workspace.
I further looked into build logs and found that devel directory is passed to compiler using -isystem instead of -I.

To reproduce the issue:

sudo apt-get install ros-melodic-compressed-image-transport
source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/ros-perception/image_transport_plugins.git -b indigo-devel
cd ~/catkin_ws
catkin config --init
catkin build

Log on environment BEFORE apt-get upgrade:

/usr/bin/c++  -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"compressed_image_transport\" -Dcompressed_image_transport_EXPORTS -I/home/furushchev/catkin_ws/devel/.private/compressed_image_transport/include -I/home/furushchev/catkin_ws/src/image_transport_plugins/compressed_image_transport/include -I/home/furushchev/catkin_ws/src/vision_opencv/cv_bridge/include -I/home/furushchev/catkin_ws/src/image_common/image_transport/include -I/opt/ros/melodic/include -I/opt/ros/melodic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -isystem /usr/include/opencv  -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/compressed_image_transport.dir/src/compressed_publisher.cpp.o -c /home/furushchev/catkin_ws/src/image_transport_plugins/compressed_image_transport/src/compressed_publisher.cpp

Log on environment AFTER apt-get upgrade:

/usr/bin/c++  -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"compressed_image_transport\" -Dcompressed_image_transport_EXPORTS -isystem /home/furushchev/catkin_ws/src/image_transport_plugins/compressed_image_transport/BEFORE -isystem /home/furushchev/catkin_ws/devel/.private/compressed_image_transport/include -I/home/furushchev/catkin_ws/src/image_transport_plugins/compressed_image_transport/include -I/opt/ros/melodic/include -I/opt/ros/melodic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -isystem /usr/include/opencv  -fPIC   -o CMakeFiles/compressed_image_transport.dir/src/compressed_publisher.cpp.o -c /home/furushchev/catkin_ws/src/image_transport_plugins/compressed_image_transport/src/compressed_publisher.cpp

I’m not sure the issue comes from catkin package, so I posted here.
Hope it helps!

2 Likes

@furushchev
I have the same issue too about dynamic_reconfigure and overlaying with catkin workspace.

1 Like

@furushchev Thanks for the detailed analysis. There were updates to catkin, ros, ros_comm, and some other low-level packages for this sync, so I suspect that is the issue. I’d suggest opening an issue against catkin to follow-up with this; we can always move the issue around if it turns out to be in another component.

Actually this turned out to be a bug in dynamic_reconfigure: https://github.com/ros/dynamic_reconfigure/issues/152 . Thanks to @mjcarroll for finding and fixing it. I’ve merged that in; once the buildfarm rebuilds it, and I confirm that we have no additional regressions, I’ll do another Melodic sync soon.

1 Like

FYI, looks like this is one of two issues with the version of dynamic_reconfigure that got released (1.6.1-1bionic.20200306.144628). See also #150. Until another sync is possible, I suppose the workaround is to build dynamic_reconfigure from source?

1 Like

The new update to dynamic_reconfigure solves both, essentially by reverting the problematic patch.

1 Like

Thank you very much for the quick response and releasing the fix!
I confirmed the issue was resolved after upgrading to the latest release version in my environment.